Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:cpm:autostart [2016/12/06 08:27] – angelegt volkerpz9001:cpm:autostart [2022/05/09 08:30] (aktuell) volkerp
Zeile 1: Zeile 1:
 ====== Autostart ====== ====== Autostart ======
  
-CP/M kann beim Starten automatisch ein Kommando ausführen. Dazu muss das Kommando in den Text-Buffer des CCP geschrieben werden+CP/M kann beim Starten automatisch ein Kommando ausführen. 
 Startkommandos können z.B. sein: Startkommandos können z.B. sein:
  
Zeile 8: Zeile 8:
   SUBMIT AUTORUN.SUB   SUBMIT AUTORUN.SUB
  
-Beim CP/A ü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 die Länge des Autostart-Kommandos, hier ist es leer, die Länge ist 0 Byte.+Das BIOS muss das Autostart-Kommando in den Befehlszeilenpuffer des CCP kopieren und das CCP dann auf Adresse CCP+0 starten. CCP-Quellcode: 
 +<code> 
 +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) 
 +... 
 +</code> 
 + 
 +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.
  
 {{:z9001:cpm:cpm_autostart.gif|}} {{:z9001:cpm:cpm_autostart.gif|}}
Zeile 14: Zeile 27:
 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". 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 die Länge des auszuführenden Befehls einzutragen, danach kommt der Befehl.+Im Feld nach der 7F ist der auszuführenden Befehls einzutragen.
  
 {{:z9001:cpm:cpm_autostart1.gif|}} {{:z9001:cpm:cpm_autostart1.gif|}}
  
 +:!: 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).
 +
 +
 +<code>
 +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
 +</code>
  • z9001/cpm/autostart.1481012858.txt.gz
  • Zuletzt geändert: 2016/12/06 08:27
  • von volkerp