DOS Wedge
Zu den meisten Commodore-Laufwerken gibt es ein kleines Programm namens DOS Wedge, das als kleine BASIC-Erweiterung folgenden Eigenschaften aufweist:
- Der Fehlerstatus des Floppy-Laufwerks kann mit einem einfachen Befehl ausgelesen werden.
- Das Inhaltsverzeichnis einer Diskette kann angezeigt werden, ohne das im Speicher befindliche BASIC-Programm zu zerstören.
- Eine kompakte Befehlssyntax erlaubt das komfortable Absenden von Floppy-Befehlen.
Inhaltsverzeichnis
DOS Wedge für den C64[Bearbeiten]
Die DOS Wedge für den C64 ist ein von Bob Fairbairn geschriebenes Maschinenspracheprogramm, das den Speicherbereich $CC00–$CFFF (52224–53247) belegt.
Laden der Erweiterung[Bearbeiten]
Die DOS Wedge von der Test-/Demodiskette (1541, 1570/1571) wird auf die folgende Weise im C64 aktiviert:
- Laden und Starten des BASIC-Programms "C-64 Wedge"
- C-64 Wedge lädt nun den Maschinenspracheteil in den Speicher ab $CC00 (52224) und startet es, woraufhin die Einschaltmeldung "DOS MANAGER V5.1" erscheint.
Die neuen Befehle[Bearbeiten]
Statt @ kann alternativ immer > genommen werden. Ein Wert in eckigen Klammern ist optional.
@ | Fehlerkanal auslesen (Achtung, Gerät muss bereit sein, sonst hängt der Befehl) |
@$ | Directory verlustfrei anzeigen |
@#gnr | Festlegen der Gerätenummer der anzusprechenden Floppy, z.B. @#8 oder @#9 |
/dateiname | Laden eines BASIC-Programms |
↑dateiname | Laden und Starten eines BASIC-Programms |
%dateiname | Laden eines Maschinenspracheprogramms |
←dateiname | Speichern eines BASIC-Programms |
@diskbefehl | Floppy-Befehl senden, z.B. @N:diskname[,id] - Formatieren (ohne ID Schnellformatieren) einer Diskette (NEW) |
@Q | Wedge deaktivieren |
Anmerkungen[Bearbeiten]
- Syntax
- Wie andere BASIC-Befehle können die neuen Befehle auch eingerückt in eine Zeile geschrieben werden.
- Führende Leerzeichen werden ignoriert.
SYS 52224
schaltet DOS Wedge wieder ein, wenn er mit @Q deaktiviert worden ist.
- Will man die DOS-Befehle auch in Programmen verwenden, so müssen die Namen der Befehle hinter dem jeweiligen ersten Zeichen in Anführungszeichen eingegeben werden, also z.B. @"$", /"DOS*" oder ←"Test".
- Die Befehle der DOS Wedge sind praktisch zu einem Standard geworden und sind z.B. im Befehlsvorrat vieler Floppyspeeder enthalten, teils in erweiterter oder verbesserter Form. Auch manche Maschinensprachemonitore haben die '@'-Syntax in ihren Befehlsschatz aufgenommen.
- DOS Wedge gibt es auch als Teil der BASIC-Erweiterung TSB. Mit dem Befehl INST lädt TSB DOS Wedge nach.
Interna[Bearbeiten]
Die Wedge integriert sich ins BASIC durch einen Patch der CHRGET-Unterroutine im RAM ab $0073 (115). Dabei wird jedes Zeichen geprüft, das der BASIC-Interpreter verarbeitet. Ist es ein Befehl der Wedge, wird die zugehörige DOS-Wedge-Routine aufgerufen.
Die vom geänderte CHRGET-Subroutine als SMON Disassembler-Listing. Rechts im Kommentar die Originalwerte.
,0073 E6 7A INC 7A ,0075 D0 02 BNE 0079 ,0077 E6 7B INC 7B ,0079 AD 08 02 LDA 0208 ,007C 4C F3 CC JMP CCF3 ;,007C C9 3A CMP #3A ,007F 0A ASL ;,007E B0 0A BCS 008A ,0080 C9 20 CMP #20 ,0082 F0 EF BEQ 0073 ,0084 38 SEC ,0085 E9 30 SBC #30 ,0087 38 SEC ,0088 E9 D0 SBC #D0 ,008A 60 RTS
Rücksprung in die CHRGET-Routine:
,CD1E C9 3A CMP #3A ,CD20 B0 03 BCS CD25 ,CD22 4C 80 00 JMP 0080 ; CHRGET Rest ausführen ----------------------------------- ,CD25 4C 8A 00 JMP 008A
Artikel[Bearbeiten]
- "Das DOS 5.1 auf der Demo-Diskette" im 64'er SH05 (1986), S.111 ff.
- Macro Assembler Development System (Kap. 5.0 ff.)
Weblinks[Bearbeiten]
Wikipedia: DOS Wedge ![]() |
- Commodore 64 Reference Guide
PDF
- COMMODORE 64 MACRO ASSEMBLER DEVELOPMENT SYSTEM
siehe Kap. 5.0 ff.
- Commodore DOS Wedges: An Overview
- project64 MAPPING THE Commodore 64
siehe CHRGET
- CBM 2040/3040/4040/8050 Disk Drive Manual (PDF)
(für Doppellaufwerksbefehle)
DOS Wedge erweitern: