Use a destructor instead of atexit
git-svn-id: svn://svn.cc65.org/cc65/trunk@515 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
b46dab6d44
commit
e02b3e91c8
7 changed files with 77 additions and 91 deletions
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "apple2.inc"
|
||||
|
||||
|
@ -43,10 +43,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda BRKVec+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta BRKVec
|
||||
lda #>brk_handler
|
||||
|
@ -60,10 +56,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
|
@ -43,10 +43,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda VBREAK+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta VBREAK
|
||||
lda #>brk_handler
|
||||
|
@ -60,10 +56,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta VBREAK
|
||||
lda oldvec+1
|
||||
sta VBREAK+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta VBREAK
|
||||
stx VBREAK+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
.importzp ptr1
|
||||
|
||||
.include "c128.inc"
|
||||
|
@ -54,10 +54,6 @@ L1: lda brk_stub,y
|
|||
dey
|
||||
bpl L1
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L2: lda #<stub_addr ; Set the break vector to our stub
|
||||
sta BRKVec
|
||||
lda #>stub_addr
|
||||
|
@ -71,10 +67,12 @@ L2: lda #<stub_addr ; Set the break vector to our stub
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "c64.inc"
|
||||
|
||||
|
@ -43,10 +43,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda BRKVec+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta BRKVec
|
||||
lda #>brk_handler
|
||||
|
@ -60,10 +56,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -45,10 +45,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda BRKVec+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta BRKVec
|
||||
lda #>brk_handler
|
||||
|
@ -62,10 +58,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "pet.inc"
|
||||
|
||||
|
@ -43,10 +43,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda BRKVec+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta BRKVec
|
||||
lda #>brk_handler
|
||||
|
@ -60,10 +56,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
;
|
||||
|
||||
.export _set_brk, _reset_brk
|
||||
.destructor _reset_brk
|
||||
.export _brk_a, _brk_x, _brk_y, _brk_sr, _brk_pc
|
||||
.import _atexit
|
||||
|
||||
.include "plus4.inc"
|
||||
|
||||
|
@ -43,10 +43,6 @@ uservec: jmp $FFFF ; Patched at runtime
|
|||
lda BRKVec+1
|
||||
sta oldvec+1 ; Save the old vector
|
||||
|
||||
lda #<_reset_brk
|
||||
ldx #>_reset_brk
|
||||
jsr _atexit ; Install an exit handler
|
||||
|
||||
L1: lda #<brk_handler ; Set the break vector to our routine
|
||||
sta BRKVec
|
||||
lda #>brk_handler
|
||||
|
@ -60,10 +56,12 @@ L1: lda #<brk_handler ; Set the break vector to our routine
|
|||
.proc _reset_brk
|
||||
|
||||
lda oldvec
|
||||
sta BRKVec
|
||||
lda oldvec+1
|
||||
sta BRKVec+1
|
||||
rts
|
||||
bne @L1
|
||||
ldx oldvec
|
||||
beq @L9 ; Jump if vector not installed
|
||||
@L1: sta BRKVec
|
||||
stx BRKVec+1
|
||||
@L9: rts
|
||||
|
||||
.endproc
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue