mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-10-01 05:57:20 +00:00
60 lines
823 B
ArmAsm
60 lines
823 B
ArmAsm
|
;=========================================================
|
||
|
; gr_copy_at_offset, 40x48 version
|
||
|
;=========================================================
|
||
|
; copy $1000 + line offset to $c00
|
||
|
; offset is in Y
|
||
|
|
||
|
gr_copy_to_offset:
|
||
|
|
||
|
lda #0
|
||
|
sta TEMPY
|
||
|
|
||
|
gr_copy_offset_outer_loop:
|
||
|
|
||
|
; calculate source
|
||
|
|
||
|
lda gr_offsets_h,Y
|
||
|
clc
|
||
|
adc #$c
|
||
|
sta gr_copy_offset_smc_src+2
|
||
|
lda gr_offsets_l,Y
|
||
|
sta gr_copy_offset_smc_src+1
|
||
|
tya
|
||
|
pha
|
||
|
|
||
|
; calculate destination
|
||
|
|
||
|
lda TEMPY
|
||
|
tay
|
||
|
lda gr_offsets_h,Y
|
||
|
clc
|
||
|
adc #$8
|
||
|
sta gr_copy_offset_smc_dst+2
|
||
|
lda gr_offsets_l,Y
|
||
|
sta gr_copy_offset_smc_dst+1
|
||
|
|
||
|
ldx #0
|
||
|
gr_copy_offset_line_loop:
|
||
|
|
||
|
gr_copy_offset_smc_src:
|
||
|
lda $1000,X
|
||
|
gr_copy_offset_smc_dst:
|
||
|
sta $c00,X
|
||
|
|
||
|
inx
|
||
|
cpx #40
|
||
|
bne gr_copy_offset_line_loop
|
||
|
|
||
|
inc TEMPY
|
||
|
pla
|
||
|
tay
|
||
|
iny
|
||
|
|
||
|
cpy #24
|
||
|
bne gr_copy_offset_outer_loop
|
||
|
|
||
|
rts ; 6
|
||
|
|
||
|
|
||
|
|