Autostart
CP/M kann beim Starten automatisch ein Kommando ausführen1).
Startkommandos können z.B. sein:
CLOCK DIR *.COM SUBMIT AUTORUN.SUB
Das BIOS muss das Autostart-Kommando in den Befehlszeilenpuffer des CCP kopieren und das CCP dann auf Adresse CCP+0 starten. CCP-Quellcode:
CCP: ORG 0CC00h JP CCPSTART ;start ccp with possible initial command JP CCPCLEAR ;clear the command buffer MAXLEN: DB 127 ;max buffer length COMLEN: DB 0 ;command length (filled in by dos) COMBUF: Db 128-($-COMBUF) dup (0) ...
Dazu muss das Kommando in den Text-Buffer des CCP geschrieben werden. Beim CP/A (Rossendorf) übernimmt dies das BIOS. Im Initialisierungsbereich von @CPMZ9.COM ist nach der RAM-Prüfung Platz für eine Kommandozeile. Die markierte Adresse 00 ist der Beginn Autostart-Kommandos, hier ist es leer, die Länge ist 0 Byte.
Das BIOS der robotron-Version des @CPMZ9 unterstützt dieses Verfahren leider nicht! Hier ist kein Autostart möglich.
Die Adressen müssen nicht stimmen! Je nach Version der Datei @CPMZ9.COM sind das andere Adressen. Am einfachsten sucht man z.B. mit POWER nach „RAM-Fehler auf Adresse XXXXH“.
Im Feld nach der 7F ist der auszuführenden Befehls einzutragen.
Im Bild ist das markierte Byte 12 falsch! Dieses ist hier nicht nötig, es geht gleich mit dem Kommando los. Das Rossendorfer CP/M kopiert im BIOS die kompletten 128 Byte. Als Längenbyte wird das vorausgehende 7Fh mitkopiert (nach CCP+7, d.h. COMLEN).
A:>POWER LOAD @CPMZ9.COM 6000 ;Anzahl Sektoren merken und bei SAVE angeben SEARCH 6000 9000 "RAM-Fehler" ;z.B. 8430 DUMPX 8430 8500 ;7F steht auf 8466 DS 8467 .a S U B M I T .h 20 .a A U T O R U N .h 2E .a S U B .. ;Kontrolle DUMPX 8430 8500 ; Anzahl Sektoren von LOAD SAVE @CPMZ9.COM 6000 80