Laufwerke tauschen mit Freezer?


Laufwerke tauschen mit Freezer?

von Beetle » Do 17. Aug 2006, 10:56
Hallo,

Das SpOS und auch das QMEG haben ja eine "Laufwerkstabelle". Wenn man von Basic oder übers DOS auf D1 zugreift, in der Laufwerkstabelle aber das logische D1 auf das physikalische D3 gemappt ist, greift das Programm auf D3 zu, ohne es zu merken.

Komplizierte Erklärung eines einfachen Ereignisses ;-)

Diese Laufwerkstabelle liegt beim Speeder plus OS auf den Adressen $3f0 bis $3f7, entsprechend physikalisch D1 - D8. Laut Profibuch sind das "für Testzwecke reservierte Bytes".

Lower Nibble: Logisches Laufwerk (ich hoffe, diese Bezeichnung ist so richtig)
Upper Nibble: Laufwerksstatus

Vor dem Booten: 01 02 03 04 05 06 07 08
Nach dem Booten von D1: A1 02 03 04 05 06 07 08 (Laufwerk 1 ist auf High-Speed (SIO2IDE))
(Kaltstart)
D1 und D2 getauscht: 02 01 03 04 05 06 07 08
Von D2 gebootet: 12 01 03 04 05 06 07 08 (Laufwerk 2 ist normale 1050)
Von D1 gelesen: 12 A1 03 04 05 06 07 08
(Kaltstart, 1050 mit Speedy angeschlossen, ist als D3: geschaltet)
D3 und D1 getauscht: 93 02 01 04 05 06 07 08


Fakten: Lowernibble zeigt, als welches logisches Laufwerk das jeweilige Drive agieren soll.
Uppernibble : 0 Laufwerk ungeprüft
1 Laufwerk Normalspeed
A Laufwerk Highspeed Mode "A"
9 Laufwerk Highspeed Mode "9"
usw... wahrscheinlich gibt's auch noch Werte für SIO2PC/Warpspeed/1050 Turbo.
Ist also ganz logisch.

Jetzt wäre ein Freezer-Befehl gut, mit dem man die Tabelle ändern kann. Er sollte aber im Main Menü liegen. Ist das machbar? Eine Routine, die abfragt welche Bytes (Drives) getauscht werden sollen, und dann die entsprechenden Bytes der Tabelle tauscht. Oft möchte man die Laufwerkstabelle ändern, ohne neu zu booten.

Für das QMEG hab ich die Tabelle noch nicht gefunden, aber Dietrich weiss bestimmt wo sie liegt.

Ich habe ein Turbobasic-Progrämmchen geschrieben, das genau diese Aufgabe erfüllt.

Bei Interesse PM, dann schicke ich es zu.

Gruss,
Stefan

Re: Laufwerke tauschen mit Freezer?

von HiassofT » Do 17. Aug 2006, 13:14
Beetle hat geschrieben:Jetzt wäre ein Freezer-Befehl gut, mit dem man die Tabelle ändern kann. Er sollte aber im Main Menü liegen. Ist das machbar?

Machbar wäre das schon, aber meiner Meinung nach ist das zu speziell (funktioniert nur mit einem OS).

Eines der Design-Prinzipien der Freezer Software ist, daß sie sich an die offiziellen Standards hält und damit mit allen Ataris funktioniert. In der Software versuche ich auch nirgendwo irgendwelche Sachen automatisch zu erkennen (zB Ramdisk Bänke). Damit kann auch nichts schiefgehen, der User ist einzig und allein selber dafür verantwortlich was er tut, es "pfuscht" ihm nichts im Hintergrund rein.

Zur Laufwerks-Tabelle: so oft wird man das wohl nicht brauchen, wenn doch wäre es meiner Meinung nach die beste Lösung das OS selber zu erweitern, so daß die Tabelle auch zur Laufzeit geändert werden kann (zB per Tastenkombination). Ansonsten: einfach in den Debugger gehen und "D3F0" und "C3F0<A3,,01" o.ä. eingeben.

so long,

Hias

von Beetle » Do 17. Aug 2006, 23:25
Schade. Aber verständlich. Wieviele Leute haben schon Freezer, SpOS und SIO2IDE?

Gruss,
Stefan

von Dietrich » Mo 18. Sep 2006, 21:07
Beetle hat geschrieben:Für das QMEG hab ich die Tabelle noch nicht gefunden, aber Dietrich weiss bestimmt wo sie liegt.

Dass Du die Tabelle nicht gefunden hast, ist nicht sehr verwunderlich, es gibt nämlich keine! :wink: Das QMEG-OS kann nur D1: mit einer anderem Laufwerk tauschen. Das steht in $3EF (0 = D1:, 1 = D2:, 2 = D3: usw.)

beetle hat geschrieben:Jetzt wäre ein Freezer-Befehl gut, mit dem man die Tabelle ändern kann. Er sollte aber im Main Menü liegen. Ist das machbar?
hais hat geschrieben:Zur Laufwerks-Tabelle: so oft wird man das wohl nicht brauchen, wenn doch wäre es meiner Meinung nach die beste Lösung das OS selber zu erweitern

Stimmt, der Freezer sollte nicht auf Nicht-Standard-Funktionen von irgendwelchen OSsen zugreifen! In meinem neuen OS kann man das Bootlaufwerk per Tastenkombi im laufenden Betrieb ändern.

von Beetle » Di 19. Sep 2006, 15:46
AH! Jetzt weiss ich auch, warum ich es mit dem QMEG nicht hinbekomme, eine Reihenfolge von zB D3, D2, D1 hinzubekommen. Es geht schlicht nicht! Ich war es vom SpOS so gewohnt...

Gruss,
Stefan