Bits in BRKFLG | ||
---|---|---|
Bit | Wert | Bedeutung |
0 | 0 | Nur in meinem Eigenbau! Bei Erreichen eines Breakpoints erfolgt die Ausgabe der Unterbrechungsadresse, aber nicht automatisch die Anzeige der Registerinhalte der CPU (ZDS-konform). |
1 | Bei Erreichen eines Breakpoints erfolgt zusätzlich zur Ausgabe der Unterbrechungsadresse automatisch die Anzeige der Registerinhalte der CPU (default bei mir). | |
1 | unbenutzt | |
2 | Nur in meinem Eigenbau! NMI durch Single-Step. |
|
3 | Nur in meinem Eigenbau! NMI bei GO-Kommando nach Start von einem Breakpoint. |
|
4 | unbenutzt | |
5 | 0 | Das QUIT-Kommando des Debuggers ist wirkungslos.
Der Debugger erwartet erneut die Eingabe eines Kommandos. Das ist der Grundzustand, wenn der ROM-Monitor nicht explizit aus einem Anwendungsprogramm aufgerufen wurde. |
1 | Das QUIT-Kommando des Debuggers führt zum Verlassen des Debuggers.
Das Programm wird an der in der Variablen
EXTRET gespeicherten Adresse fortgesetzt. Das ist der Fall, wenn der Debugger aus einem Anwendungsprogramm als Unterfunktion genutzt wird und mit dem QUIT-Kommando eine Rückkehr ins übergeordnete Programm erfolgen soll. (Siehe Codebeispiel) |
|
6 | internal use (intern benutzt) | |
7 | 0 | Bei Erreichen eines Breakpoints wird dieser mit der Debugger-internen Behandlungsroutine bearbeitet. |
1 | Bei Erreichen eines Breakpoints wird dieser mit einer Behandlungsroutine bearbeitet, deren Adresse in der Variablen BRKRTN gespeichert ist. |
Codebeispiel: Aufruf des PROM Debuggers aus einem RIO Dienstprogramm | |
---|---|
Beschreibung | Das Beispiel zeigt eine Subroutine, die aus einem RIO Anwendungsprogramm den ROM-residenten Debugger aufruft. Das QUIT-Kommando des Debuggers bewirkt die Rückkehr ins Anwendungsprogramm. |
external EXTRET, BRKFLG, STACK, PDEBUG global entry entry ... any code ... ; Main routine call calldb ; Call the PROM debugger ... any other code ... ret ; Return to RIO OS ; Subroutine to call the PROM debugger ; Prepare the environment calldb ld (spret),sp ; Save the stackpointer ld sp,STACK ; Use PROM-Monitor's stackpointer for debugger ld hl,retdb ; Returnpoint to this program ld (EXTRET),hl ld hl,BRKFLG set 5,(hl) ; Set flag for return to external program jp PDEBUG ; Go to the PROM debugger ; After the debuggers QUIT command we are here retdb ld sp,(spret) ; Restore program's stackpointer ld hl,BRKFLG res 5,(hl) ; Clear Flag ret ; Return to main routine spret defs 2 ; Space to save program's stackpointer |