Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
homecomputer:ac1:monitor31 [2019/06/06 08:11] – [Erweiterbarkeit] volkerphomecomputer:ac1:monitor31 [2023/01/04 11:37] – [Internes] volkerp
Zeile 220: Zeile 220:
 Im Ergebnis der Testphase haben sich beim Monitorprogramm noch einige Erweiterungen ergeben, die im folgenden aufgeführt sind. Im Ergebnis der Testphase haben sich beim Monitorprogramm noch einige Erweiterungen ergeben, die im folgenden aufgeführt sind.
  
-1. Nach jedem RESET steht in der RSA, die mit dem R-Befehl angezeigt werden kann, die Belegung des gesamten Registersatzes der CPU zum Zeitpunkt des RESET bzw. des Ansprungs der Adresse 0. Das kann bei der Fehlersuche in Programmen, die sich z.B. festgelaufen haben, und nur noch mit einem RESET abgebrochen werden können, hilfreich sein. Aus den Registerbelegungen lassen sich dann meist Schlüsse auf die Fehlerursache ziehen.+1. Nach jedem RESET steht in der RSA ((register save area, Speicherbereich 1861H-187DH)), die mit dem R-Befehl angezeigt werden kann, die Belegung des gesamten Registersatzes der CPU zum Zeitpunkt des RESET bzw. des Ansprungs der Adresse 0. Das kann bei der Fehlersuche in Programmen, die sich z.B. festgelaufen haben, und nur noch mit einem RESET abgebrochen werden können, hilfreich sein. Aus den Registerbelegungen lassen sich dann meist Schlüsse auf die Fehlerursache ziehen.
  
 Im Normalfall erfordert das, daß die RSA nach dem Einschaltreset mit dem I-Befehl zu initialisieren ist. Zumindest ist vor der Benutzung der Befehle E, G und J die Belegung des Stackpointers zu überprüfen. Sollte dieser auf einen nicht real existierenden Kellerspeicher zeigen, wird die Ausführung der oben genannten Testkommandos mit der Ausschrift INIT SP verweigert, da ansonsten die Benutzung dieser Kommandos zum Programmabsturz bzw. zu einer Fehlerausschrift führen würde. Mit dem I-Befehl wird der Stack automatisch auf das vorhandene obere Ende des RAM-Bereiches des Grundmoduls gesetzt. Also auf 2000H bzw. 1C00H, je nachdem, ob der RAM-­Speicher verdoppelt wurde oder nicht. Wird infolge eines Fehlers in einen Speicherbereich gesprungen, der nicht vorhanden oder mit FFH belegt ist, erfolgt die Ausschrift ERROR AT xxxx (xxxx ­ Adresse, auf der der Fehler auftrat). Für den Inhalt der RSA gilt dann das gleiche wie nach dem RESET. Im Normalfall erfordert das, daß die RSA nach dem Einschaltreset mit dem I-Befehl zu initialisieren ist. Zumindest ist vor der Benutzung der Befehle E, G und J die Belegung des Stackpointers zu überprüfen. Sollte dieser auf einen nicht real existierenden Kellerspeicher zeigen, wird die Ausführung der oben genannten Testkommandos mit der Ausschrift INIT SP verweigert, da ansonsten die Benutzung dieser Kommandos zum Programmabsturz bzw. zu einer Fehlerausschrift führen würde. Mit dem I-Befehl wird der Stack automatisch auf das vorhandene obere Ende des RAM-Bereiches des Grundmoduls gesetzt. Also auf 2000H bzw. 1C00H, je nachdem, ob der RAM-­Speicher verdoppelt wurde oder nicht. Wird infolge eines Fehlers in einen Speicherbereich gesprungen, der nicht vorhanden oder mit FFH belegt ist, erfolgt die Ausschrift ERROR AT xxxx (xxxx ­ Adresse, auf der der Fehler auftrat). Für den Inhalt der RSA gilt dann das gleiche wie nach dem RESET.
Zeile 280: Zeile 280:
  
 ===== Versionsunterschiede ===== ===== Versionsunterschiede =====
 +
 +Der Monitor mon_v31_32.bin ist der an 4 Bytes auf den vergrößerten BWS angepasste mon_v31_16.bin. Außerdem wurde die Filenamenslänge auf 16 Zeichen erhöht und der Suchbereich für externe Kommandos erweitert.
  
 <code> <code>
Zeile 289: Zeile 291:
 000398: F9 06*06 2A 00 18 CD 26 | ...*...& | F9 06*10 2A 00 18 CD 26 | ...*...& 000398: F9 06*06 2A 00 18 CD 26 | ...*...& | F9 06*10 2A 00 18 CD 26 | ...*...&
 0007B8: 07*03*78*B1 28 18 18 F5 | ..x.(... | 07*78*B1*03 28 18 18 F5 | .x..(... 0007B8: 07*03*78*B1 28 18 18 F5 | ..x.(... | 07*78*B1*03 28 18 18 F5 | .x..(...
 +</code>
 +
 +Der Quellcode mon_v31_16-as.asm erzeugt auch die Version mon_v31_32.bin, wenn folgende Werte gesetzt werden:
 +
 +<code>
 +LINES equ 32 ; bei 2K BWS
 +NAMELEN equ 16 ; max. Länge des Dateinamens bei LOAD/SAVE
 +RAMEND equ 0FFFDh ; Ende f. Kdo-Suche, auf RAM beschränkt
 +fkopatch equ 1 ; Korrektur in Find-Kommando
 </code> </code>
  
  • homecomputer/ac1/monitor31.txt
  • Zuletzt geändert: 2023/01/04 15:29
  • von volkerp