mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-08 03:31:10 +00:00
bc77ab6f39
tight fit but frees up $6000
47 lines
626 B
ArmAsm
47 lines
626 B
ArmAsm
; copy partial part of screen from $6000 to DRAW_PAGE
|
|
; HGR_X1,HGR_Y1 to HGR_X2,HGR_Y2 source
|
|
; destination = Y at HGR_DEST
|
|
|
|
hgr_partial:
|
|
lda HGR_DEST
|
|
sta dest_y_smc+1
|
|
|
|
ldx HGR_Y1 ; Y1
|
|
hgr_partial_outer_loop:
|
|
lda hposn_low,X
|
|
sta INL
|
|
lda hposn_high,X
|
|
ora #$40 ; convert to $6000
|
|
sta INH
|
|
|
|
txa
|
|
pha
|
|
|
|
dest_y_smc:
|
|
ldx #100 ; DEST_Y
|
|
lda hposn_low,X
|
|
sta OUTL
|
|
lda hposn_high,X
|
|
clc
|
|
adc DRAW_PAGE
|
|
sta OUTH
|
|
|
|
pla
|
|
tax
|
|
|
|
ldy HGR_X1 ; X1
|
|
hgr_partial_inner_loop:
|
|
lda (INL),Y
|
|
sta (OUTL),Y
|
|
iny
|
|
cpy HGR_X2 ; X2
|
|
bne hgr_partial_inner_loop
|
|
|
|
inc dest_y_smc+1
|
|
|
|
inx
|
|
cpx HGR_Y2 ; Y2
|
|
bne hgr_partial_outer_loop
|
|
|
|
rts
|