mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-03-06 18:30:12 +00:00
77 lines
920 B
ArmAsm
77 lines
920 B
ArmAsm
|
;================================
|
||
|
; HGR vscroll
|
||
|
;================================
|
||
|
; image to scroll in is in $A000
|
||
|
|
||
|
hgr_vscroll:
|
||
|
|
||
|
ldx #191
|
||
|
stx SCROLL ; SCROLL = 0
|
||
|
|
||
|
vscroll_loop:
|
||
|
|
||
|
; for x=0 to 192-SCROLL
|
||
|
; write 40 bytes of 00
|
||
|
|
||
|
ldx #0
|
||
|
vscroll_inner:
|
||
|
lda hposn_high,X
|
||
|
sta OUTH
|
||
|
lda hposn_low,X
|
||
|
sta OUTL
|
||
|
|
||
|
ldy #39
|
||
|
lda #0
|
||
|
vscroll_line:
|
||
|
sta (OUTL),Y
|
||
|
dey
|
||
|
bpl vscroll_line
|
||
|
|
||
|
inx
|
||
|
cpx SCROLL
|
||
|
bne vscroll_inner
|
||
|
|
||
|
;====================
|
||
|
; draw bottom part
|
||
|
|
||
|
lda #0
|
||
|
sta SCROLL_OFFSET
|
||
|
vscroll_bottom:
|
||
|
stx XSAVE
|
||
|
|
||
|
ldx SCROLL_OFFSET
|
||
|
lda hposn_high,X
|
||
|
clc
|
||
|
adc #$80 ; ora instead?
|
||
|
sta INH
|
||
|
lda hposn_low,X
|
||
|
sta INL
|
||
|
|
||
|
inc SCROLL_OFFSET
|
||
|
|
||
|
ldx XSAVE
|
||
|
|
||
|
lda hposn_high,X
|
||
|
sta OUTH
|
||
|
lda hposn_low,X
|
||
|
sta OUTL
|
||
|
|
||
|
ldy #39
|
||
|
vscroll_bottom_line:
|
||
|
lda (INL),Y
|
||
|
sta (OUTL),Y
|
||
|
dey
|
||
|
bpl vscroll_bottom_line
|
||
|
|
||
|
inx
|
||
|
cpx #192
|
||
|
bne vscroll_bottom
|
||
|
|
||
|
;=====================
|
||
|
; scroll whole screen
|
||
|
|
||
|
dec SCROLL
|
||
|
bne vscroll_loop
|
||
|
|
||
|
rts
|