restore prefix on exit

This commit is contained in:
Peter Ferrie 2018-04-17 18:47:52 -07:00
parent 6c6b31c2b6
commit fb393d1406
6 changed files with 144 additions and 73 deletions

View File

@ -103,6 +103,8 @@ tmp = $8
sta $28ff, y
dey
bne -
lda $bf30
sta c5_parms+1
sty $1e37
sty $1e5d
@ -186,15 +188,6 @@ brandtext
+version
!byte 0
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
unrelochdd
!pseudopc $2800 {
clc
@ -253,6 +246,21 @@ printer
quit
jsr xclose
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
jsr $bf00
!byte $65
!word quit_parms
@ -390,9 +398,16 @@ ca_parms
!word $ffff
c1_parms
c6_parms
!byte 1
!word scrpname
c5_parms
!byte 2
!byte 0
!word scrpname+1
!byte $d1
cb_parms
quit_parms
!byte 4

View File

@ -103,6 +103,8 @@ tmp = $8
sta $28ff, y
dey
bne -
lda $bf30
sta c5_parms+1
sty $1e05
sty $1e2b
@ -186,15 +188,6 @@ brandtext
+version
!byte 0
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
unrelochdd
!pseudopc $2800 {
clc
@ -253,6 +246,21 @@ printer
quit
jsr xclose
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
jsr $bf00
!byte $65
!word quit_parms
@ -390,9 +398,16 @@ ca_parms
!word $ffff
c1_parms
c6_parms
!byte 1
!word scrpname
c5_parms
!byte 2
!byte 0
!word scrpname+1
!byte $d1
cb_parms
quit_parms
!byte 4

View File

@ -75,6 +75,8 @@ tmp = $8
sta $d10, y
dey
bne -
lda $bf30
sta c5_parms+1
lda $306
eor $305
@ -187,15 +189,6 @@ okay80
jsr closefile
jmp $173d
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
brand
jsr $12f8
lda #$f8
@ -416,6 +409,21 @@ waitkey
quit
jsr xclose
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
jsr $bf00
!byte $65
!word quit_parms
@ -452,9 +460,16 @@ ca_parms
!word $ffff
c1_parms
c6_parms
!byte 1
!word scrpname
c5_parms
!byte 2
!byte 0
!word scrpname+1
!byte $d1
cb_parms
quit_parms
!byte 4

View File

@ -7,7 +7,6 @@
save_name = $2006
read_buffer = $3500 ;512 bytes
file_buffer = $3900 ;$400 bytes, must not overlap with read_buffer, must be page-aligned
record_size = $40
info_buffer = $2000 ;record_size*8 (currently $200) bytes, can be anywhere
zpage_info = $fe ;word
@ -102,7 +101,21 @@ exchange
dex
bne -
quit
rts
lda $bf30
sta c5_parms+1
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
load_page
cmp zp_C0
@ -128,19 +141,10 @@ seekread
seek_ret
rts
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
c8_parms
!byte 3
!word save_name
!word file_buffer
!word $1C00
c8_handle
!byte 0
@ -162,8 +166,16 @@ ca_size
!word $ffff
cc_parms
c6_parms
!byte 1
!byte 0
!byte 2
c5_parms
!byte 2
!byte 0
!word $201
!byte $d1
dump_info
tsx
@ -192,10 +204,6 @@ dump_info
JSR decompress
lda zpage_ptr
!if name_offset>0 {
sec
sbc #name_offset
}
ldy #name_offset
sta (zpage_info),y

View File

@ -7,7 +7,6 @@
save_name = $2006
read_buffer = $3500 ;512 bytes
file_buffer = $3900 ;$400 bytes, must not overlap with read_buffer, must be page-aligned
record_size = $40
info_buffer = $2000 ;record_size*8 (currently $200) bytes, can be anywhere
zpage_info = $fe ;word
@ -95,6 +94,20 @@ fetch_info
!byte $cc ;close file
!word cc_parms
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
exchange
ldx #(zp_E9-zp_91)
- ldy zpage_old-1,x
@ -130,19 +143,10 @@ seekread
seek_ret
rts
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
c8_parms
!byte 3
!word save_name
!word file_buffer
!word $1C00
c8_handle
!byte 0
@ -164,8 +168,16 @@ ca_size
!word $ffff
cc_parms
c6_parms
!byte 1
!byte 0
!byte 2
c5_parms
!byte 2
!byte 0
!word $201
!byte $d1
dump_info
tsx
@ -198,10 +210,6 @@ dump_info
JSR decompress
lda zpage_ptr
!if name_offset>0 {
sec
sbc #name_offset
}
ldy #name_offset
sta (zpage_info),y

View File

@ -7,7 +7,6 @@
save_name = $2006
read_buffer = $3500 ;512 bytes
file_buffer = $3900 ;$400 bytes, must not overlap with read_buffer, must be page-aligned
record_size = $40
info_buffer = $2000 ;record_size*8 (currently $200) bytes, can be anywhere
zpage_info = $fe ;word
@ -134,6 +133,22 @@ nextpos
!byte $cc ;close file
!word cc_parms
lda $bf30
sta c5_parms+1
jsr $bf00
!byte $c5
!word c5_parms
ldx $201
inx
txa
and #$0f
sta $200
lda #$2f
sta $201
jsr $bf00
!byte $c6
!word c6_parms
exchange
ldx #(zp_DC-zp_8C)
- ldy zpage_old-1,x
@ -169,19 +184,10 @@ seekread
seek_ret
rts
c7_parms
!byte 1
!word $200
c5_parms
!byte 2
!byte 0
!word $201
c8_parms
!byte 3
!word save_name
!word file_buffer
!word $1C00
c8_handle
!byte 0
@ -203,8 +209,16 @@ ca_size
!word $ffff
cc_parms
c6_parms
!byte 1
!byte 0
!byte 2
c5_parms
!byte 2
!byte 0
!word $201
!byte $d1
dump_info
tsx
@ -240,10 +254,6 @@ dump_info
JSR decompress
lda zpage_ptr
!if name_offset>0 {
sec
sbc #name_offset
}
ldy #name_offset
sta (zpage_info),y