DOS Wedge

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Startmeldung des DOS MANAGER V5.1

Zu den meisten Commodore-Laufwerken gibt es ein kleines Programm DOS Wedge mit den folgenden Eigenschaften:


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:

  1. Laden und Starten des BASIC-Programms "C-64 Wedge"
    LOAD "C-64 WEDGE",8
    RUN
  2. 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.

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]

Weblinks[Bearbeiten]

WP-W11.png Wikipedia: DOS Wedge Sprache:english

DOS Wedge erweitern: