]> git.sur5r.net Git - cc65/blobdiff - libsrc/cbm610/break.s
no TGI_ERR_NO_MEM or TGI_ERR_NO_IOCB anymore: replaced by TGI_ERR_NO_RES
[cc65] / libsrc / cbm610 / break.s
index 67e9ca2256652e8da46a70a95bd752166fc11e26..114ecbfdefaa8679140b1f0d2216c0dfae3b88f0 100644 (file)
@@ -7,10 +7,9 @@
 
                .export         _set_brk, _reset_brk
                .export         _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
-       .import         _atexit
+       .import         _atexit, BRKVec
 
-       .include        "zeropage.inc"
-       .include        "page3.inc"
+       .include        "cbm610.inc"
 
 
 .bss
@@ -46,9 +45,9 @@ uservec:      jmp     $FFFF           ; Patched at runtime
        sta     oldvec+1        ; Save the old vector
 
 L1:    lda     #<brk_handler   ; Set the break vector to our routine
+       ldx     #>brk_handler
        sta     BRKVec
-       lda     #>brk_handler
-       sta     BRKVec+1
+       stx     BRKVec+1
        rts
 
 .endproc
@@ -58,11 +57,13 @@ L1: lda     #<brk_handler   ; Set the break vector to our routine
 .proc  _reset_brk
 
        lda     oldvec
-       bne     @L1
-       ldx     oldvec
+       ldx     oldvec+1
        beq     @L9             ; Jump if vector not installed
-@L1:   sta     BRKVec
+       sta     BRKVec
        stx     BRKVec+1
+       lda     #$00
+       sta     oldvec          ; Clear the old vector
+       stx     oldvec+1
 @L9:   rts
 
 .endproc
@@ -73,6 +74,8 @@ L1:   lda     #<brk_handler   ; Set the break vector to our routine
 
 .proc  brk_handler
 
+        pla
+       sta     _brk_01
        pla
        sta     _brk_y
        pla
@@ -89,15 +92,11 @@ L1: lda     #<brk_handler   ; Set the break vector to our routine
        pla                     ; PC high
        sbc     #0
        sta     _brk_pc+1
-       lda     IndReg
-       sta     _brk_01
-       lda     ExecReg
-       sta     IndReg
 
        jsr     uservec         ; Call the user's routine
 
        lda     _brk_01
-       sta     IndReg
+        sta     IndReg
 
        lda     _brk_pc+1
        pha