mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-01 01:06:33 +00:00
73 lines
1.2 KiB
ArmAsm
73 lines
1.2 KiB
ArmAsm
|
;=======================================
|
||
|
; hgr_vertical scroll_down
|
||
|
;=======================================
|
||
|
; scrolls from $6000 to page1
|
||
|
; jumps increments of 8 for speed
|
||
|
;=======================================
|
||
|
|
||
|
hgr_vertical_scroll_down_left:
|
||
|
; lda #0
|
||
|
; beq hgr_vertical_scroll_down_common
|
||
|
hgr_vertical_scroll_down_right:
|
||
|
; lda #20
|
||
|
hgr_vertical_scroll_down_common:
|
||
|
; sta vscroll_down_offset_smc+1
|
||
|
|
||
|
hgr_vertical_scroll_down:
|
||
|
|
||
|
ldx #183 ; start at bottom
|
||
|
|
||
|
outer_vscroll_down_loop:
|
||
|
lda hposn_low,X ; get page1 address
|
||
|
sta INL ; set as output
|
||
|
lda hposn_high,X
|
||
|
sta INH
|
||
|
|
||
|
txa ; get address of X+8
|
||
|
clc ; and set as output
|
||
|
adc #8
|
||
|
tay
|
||
|
lda hposn_low,y
|
||
|
sta OUTL
|
||
|
lda hposn_high,Y
|
||
|
sta OUTH
|
||
|
|
||
|
ldy #29 ; only scroll from 9..29
|
||
|
inner_vscroll_down_loop:
|
||
|
lda (INL),Y
|
||
|
sta (OUTL),Y
|
||
|
dey
|
||
|
cpy #9
|
||
|
bpl inner_vscroll_down_loop
|
||
|
|
||
|
dex
|
||
|
cpx #$FF
|
||
|
bne outer_vscroll_down_loop
|
||
|
|
||
|
|
||
|
;================================
|
||
|
; copy in off screen
|
||
|
; for now assume all white
|
||
|
|
||
|
|
||
|
ldx #7 ; start at top
|
||
|
|
||
|
outer_vscroll_down_loop2:
|
||
|
lda hposn_low,X
|
||
|
sta OUTL
|
||
|
lda hposn_high,X
|
||
|
sta OUTH
|
||
|
|
||
|
ldy #39
|
||
|
lda #$7f
|
||
|
inner_vscroll_down_loop2:
|
||
|
sta (OUTL),Y
|
||
|
dey
|
||
|
bpl inner_vscroll_down_loop2
|
||
|
|
||
|
dex
|
||
|
bpl outer_vscroll_down_loop2
|
||
|
|
||
|
rts
|
||
|
|