        .globl  bpserv,rshow,actbp,ccr,output,debu,rtabend
;
; Subroutine BPSERV:
; Wird bei Erreichen eines Breakpoints angesprungen.
;
bpserv: mov     177776,ccr      ; CCR sichern
        mov     r0,rtab         ; Register sichern
        mov     #rtab+2,r0
        mov     r1,(r0)+
        mov     r2,(r0)+
        mov     r3,(r0)+
        mov     r4,(r0)+
        mov     r5,(r0)+
        mov     sp,(r0)
        add     #2,(r0)         ; SP korrigieren
        mov     (sp)+,actbp     ; Stack korrigieren und Stelle merken
        sub     #4,actbp
        mov     #bptxt1,r2
        mov     actbp,r1
        jsr     pc,octstr
        mov     #bptxt,-(sp)
        jsr     pc,output
        add     #2,sp
        jsr     pc,debu
;
; Subroutine RSHOW:
; Zeigt die Register an.
;
rshow:  mov     #rgtxt+4,r2
        mov     #rtab,r3
        mov     (r3)+,r1
        jsr     pc,octstr       ; R0
        add     #2,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; R1
        add     #2,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; R2
        add     #2,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; R3
        mov     #rgtxt1+4,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; R4
        add     #2,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; R5
        add     #2,r2
        mov     (r3)+,r1
        jsr     pc,octstr       ; SP
        add     #2,r2
        mov     actbp,r1
        jsr     pc,octstr       ; PC
        mov     #rgtxt,-(sp)
        jsr     pc,output
        add     #2,sp
        rts     pc
;
; Subroutine OCTSTR:
; Baut eine Oktalzahl in einen String ein.
; Parameter: R2 - Zeiger auf den String
;            R1 - die Zahl
;
octstr: mov     #6,r4
        clr     r0
        ashc    #1,r0
octlp:  bis     #60,r0
        movb    r0,(r2)+
        clr     r0
        ashc    #3,r0
        sob     r4,octlp
        rts     pc
;
; Datenbereich:
;
bptxt:  .ascii  'break at '
bptxt1: .ascii  '                               '
        .ascii  '                                        '
rgtxt:  .ascii  'r0:                                     '
rgtxt1: .ascii  'r4:                                     '
rtab:   .blkw   7
rtabend:
actbp:  .word   0
ccr:    .word   0
        .end
