mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-04 00:29:17 +00:00
84 lines
1.2 KiB
ArmAsm
84 lines
1.2 KiB
ArmAsm
|
;==============================
|
||
|
; copy_main_aux
|
||
|
;==============================
|
||
|
; A = AUX page start (dest)
|
||
|
; Y = MAIN page start (src)
|
||
|
; X = num pages
|
||
|
|
||
|
copy_main_aux:
|
||
|
|
||
|
; self modify
|
||
|
sta cma_aux_smc+2
|
||
|
sty cma_main_smc+2
|
||
|
|
||
|
; switch to read MAIN/WRITE AUX
|
||
|
sta $C002 ; read MAIN
|
||
|
sta $C005 ; write AUX
|
||
|
|
||
|
copy_main_aux_outer_loop:
|
||
|
|
||
|
ldy #$00
|
||
|
copy_main_aux_inner_loop:
|
||
|
|
||
|
cma_main_smc:
|
||
|
lda $BB00,Y
|
||
|
cma_aux_smc:
|
||
|
sta $AA00,Y
|
||
|
dey
|
||
|
bne copy_main_aux_inner_loop
|
||
|
|
||
|
inc cma_main_smc+2
|
||
|
inc cma_aux_smc+2
|
||
|
dex
|
||
|
bne copy_main_aux_outer_loop
|
||
|
|
||
|
; switch to read MAIN/WRITE MAIN
|
||
|
sta $C002 ; read MAIN
|
||
|
sta $C004 ; write MAIN
|
||
|
|
||
|
rts
|
||
|
|
||
|
|
||
|
|
||
|
;==============================
|
||
|
; copy_aux_main
|
||
|
;==============================
|
||
|
; A = AUX page start (src)
|
||
|
; Y = MAIN page start (dest)
|
||
|
; X = num pages
|
||
|
|
||
|
copy_aux_main:
|
||
|
|
||
|
; self modify
|
||
|
sta cam_aux_smc+2
|
||
|
sty cam_main_smc+2
|
||
|
|
||
|
; switch to read AUX/WRITE MAIN
|
||
|
sta $C003 ; read AUX
|
||
|
sta $C004 ; write MAIN
|
||
|
|
||
|
copy_aux_main_outer_loop:
|
||
|
|
||
|
ldy #$00
|
||
|
copy_aux_main_inner_loop:
|
||
|
|
||
|
cam_aux_smc:
|
||
|
lda $AA00,Y
|
||
|
cam_main_smc:
|
||
|
sta $BB00,Y
|
||
|
|
||
|
dey
|
||
|
bne copy_aux_main_inner_loop
|
||
|
|
||
|
inc cam_main_smc+2
|
||
|
inc cam_aux_smc+2
|
||
|
dex
|
||
|
bne copy_aux_main_outer_loop
|
||
|
|
||
|
; switch to read MAIN/WRITE MAIN
|
||
|
sta $C002 ; read MAIN
|
||
|
sta $C004 ; write MAIN
|
||
|
|
||
|
rts
|
||
|
|