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

  • z9001/cpm/autostart.txt
  • Zuletzt geändert: 2024/10/08 13:02
  • von volkerp