2024-11-08 01:27:53 -05:00

99 lines
1.4 KiB
ArmAsm

;====================================
; scrolls large font
; right to left, at 168
do_scroll:
lda #0
sta SCROLL_START
do_scroll_again:
ldy #0
lda SCROLL_START
sta SCROLL_OFFSET ; FIXME: SCROLL_OFFSET
do_scroll_loop:
ldx SCROLL_OFFSET
lda scroll_text,X
sec
sbc #'@'
asl
tax
do_scroll_col_loop:
; row1
lda large_font_row0,X
sta $22D0,Y
; row2
lda large_font_row1,X
sta $26D0,Y
; row3
lda large_font_row2,X
sta $2AD0,Y
; row4
lda large_font_row3,X
sta $2ED0,Y
; row5
lda large_font_row4,X
sta $32D0,Y
; row6
lda large_font_row5,X
sta $36D0,Y
; row7
lda large_font_row6,X
sta $3AD0,Y
; row8
lda large_font_row7,X
sta $3ED0,Y
; row9
lda large_font_row8,X
sta $2350,Y
; row10
lda large_font_row9,X
sta $2750,Y
; row11
lda large_font_row10,X
sta $2B50,Y
; row12
lda large_font_row11,X
sta $2F50,Y
; row13
lda large_font_row12,X
sta $3350,Y
; row14
lda large_font_row13,X
sta $3750,Y
; row15
lda large_font_row14,X
sta $3B50,Y
; row16
lda large_font_row15,X
sta $3F50,Y
inx
iny
tya
and #1
bne do_scroll_col_loop
inc SCROLL_OFFSET
cpy #40
bne do_scroll_loop
; FIXME: also check keyboard
lda #200
jsr wait
inc SCROLL_START
lda SCROLL_START
cmp #80
beq do_scroll_done
jmp do_scroll_again
do_scroll_done:
rts
scroll_text: ;0123456789012345678901234567890123456789
.byte "@@@@@@@@@@@@@@@@@@@@\]^_THE@QUICK@BROWN@"
.byte "FOX@JUMPED@OVER@THE@LAZY@DOG@PACK@MY@BOX"
.byte "@WITH@FIVE@DOZEN@LIQOUR@JUGS"