mirror of
https://github.com/a2-4am/passport.git
synced 2024-05-28 21:41:27 +00:00
74 lines
1.7 KiB
Plaintext
74 lines
1.7 KiB
Plaintext
|
;-------------------------------
|
||
|
; modify subroutine
|
||
|
; in: A = starting address (high byte)
|
||
|
; X = starting address (low byte)
|
||
|
; Y = string length
|
||
|
; stack = string to set
|
||
|
; out $BASEPAGE buffer changed
|
||
|
; $gPatchCount++
|
||
|
; $modsrc zero page clobbered
|
||
|
; $moddest zero page clobbered
|
||
|
; stack set to return to
|
||
|
; code after string
|
||
|
; all registers clobbered
|
||
|
; all flags clobbered
|
||
|
;-------------------------------
|
||
|
modify
|
||
|
sta gDisplayBytes
|
||
|
clc
|
||
|
adc #BASEPAGE
|
||
|
sta moddest+1
|
||
|
stx moddest
|
||
|
stx gDisplayBytes+1
|
||
|
pla
|
||
|
sta modsrc
|
||
|
pla
|
||
|
sta modsrc+1
|
||
|
tax
|
||
|
tya
|
||
|
clc
|
||
|
adc modsrc
|
||
|
bcc noinc
|
||
|
inx
|
||
|
noinc
|
||
|
sta tmp
|
||
|
txa
|
||
|
pha
|
||
|
lda tmp
|
||
|
pha
|
||
|
sty modtmp
|
||
|
bit gMode
|
||
|
bpl exitnomod ; verify mode -> no modify
|
||
|
bvc exitnomod ; demuffin mode -> no modify
|
||
|
lda #s_modify
|
||
|
jsr PrintByID
|
||
|
ldy #0
|
||
|
dest
|
||
|
lda (moddest),y
|
||
|
jsr PrintByte
|
||
|
iny
|
||
|
cpy modtmp
|
||
|
bne dest
|
||
|
lda #s_modifyto
|
||
|
jsr PrintByID
|
||
|
ldy #0
|
||
|
src
|
||
|
iny
|
||
|
lda (modsrc),y
|
||
|
jsr PrintByte
|
||
|
cpy modtmp
|
||
|
bne src
|
||
|
lda #$8D
|
||
|
jsr PrintA
|
||
|
mod
|
||
|
lda (modsrc),y
|
||
|
dey
|
||
|
bmi modify_exit
|
||
|
sta (moddest),y
|
||
|
clv
|
||
|
bvc mod ; unconditional branch
|
||
|
modify_exit
|
||
|
inc gPatchCount
|
||
|
exitnomod
|
||
|
rts
|