::.. Debugger Interface ..::

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