]> git.sur5r.net Git - cc65/commitdiff
Fixed an error in the reset_brk() routine of all target machines (all the code
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 13 Sep 2001 15:29:13 +0000 (15:29 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 13 Sep 2001 15:29:13 +0000 (15:29 +0000)
was derived from my old C64 code which had an error).

git-svn-id: svn://svn.cc65.org/cc65/trunk@900 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/apple2/break.s
libsrc/atari/break.s
libsrc/c64/break.s
libsrc/cbm610/break.s
libsrc/pet/break.s
libsrc/plus4/break.s

index d9d029805341e91b7c082137105c5cf020f6cd73..b4f44977af6cbaefa9207565611c50333b1251dc 100644 (file)
@@ -44,9 +44,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
@@ -56,11 +56,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
index b1b58c831d3f42c53c511aa62944914bd8651ca0..ebad1cb3d9dfc5ac646d7526e59486cc7ad017a9 100644 (file)
@@ -36,7 +36,7 @@ uservec:      jmp     $FFFF           ; Patched at runtime
 
        lda     oldvec
        ora     oldvec+1        ; Did we save the vector already?
-               bne     L1              ; Jump if we installed the handler already
+       bne     L1              ; Jump if we installed the handler already
 
        lda     VBREAK
        sta     oldvec
@@ -56,12 +56,14 @@ 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     VBREAK
+       sta     VBREAK
        stx     VBREAK+1
-@L9:   rts
+       lda     #$00
+       sta     oldvec          ; Clear the old vector
+       stx     oldvec+1
+@L9:   rts     
 
 .endproc
 
index 345f5e75fc163a394c7b9c056bb2750f668ee61d..76315b7b961ea9222671a7b031ccaebc917c4160 100644 (file)
@@ -44,9 +44,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
@@ -56,11 +56,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
index 67e9ca2256652e8da46a70a95bd752166fc11e26..cf5332a957cf5cb7f7ca11ab3af9647caeee28d3 100644 (file)
@@ -46,9 +46,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 +58,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
index 2c85a49af9583e6065adbb3420e4570589a806f4..7d31c679d70dc91731b75222814ab71b18a40872 100644 (file)
@@ -44,9 +44,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
@@ -56,11 +56,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
index d6f1449770108ef0451662ea70265d6b3b7a1b39..c51cc4b07bb21b2e24ace0df67bf7fb1bd1e00e7 100644 (file)
@@ -44,9 +44,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
@@ -56,11 +56,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