mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-29 23:55:30 +00:00
8657ed35d4
still not smooth
116 lines
1.5 KiB
ArmAsm
116 lines
1.5 KiB
ArmAsm
.include "zp.inc"
|
|
|
|
|
|
;================================
|
|
; Clear screen and setup graphics
|
|
;================================
|
|
|
|
jsr clear_screens ; clear top/bottom of page 0/1
|
|
jsr set_gr_page0
|
|
|
|
;===============
|
|
; Init Variables
|
|
;===============
|
|
lda #0
|
|
sta DISP_PAGE
|
|
sta ANGLE
|
|
|
|
scroll_loop:
|
|
|
|
ldx #0
|
|
ldy ANGLE
|
|
|
|
lda DISP_PAGE
|
|
beq draw_page2
|
|
|
|
lda #4
|
|
sta sm1+2
|
|
sta sm2+2
|
|
lda #5
|
|
sta sm3+2
|
|
sta sm4+2
|
|
jmp draw_done
|
|
|
|
draw_page2:
|
|
lda #8
|
|
sta sm1+2
|
|
sta sm2+2
|
|
lda #9
|
|
sta sm3+2
|
|
sta sm4+2
|
|
draw_done:
|
|
|
|
draw_loop:
|
|
|
|
lda scroll_row1,Y
|
|
sm1:
|
|
sta $400,X
|
|
|
|
lda scroll_row2,Y
|
|
sm2:
|
|
sta $480,X
|
|
|
|
lda scroll_row3,Y
|
|
sm3:
|
|
sta $500,X
|
|
|
|
lda scroll_row4,Y
|
|
sm4:
|
|
sta $580,X
|
|
|
|
iny
|
|
inx
|
|
cpx #40
|
|
bne draw_loop
|
|
|
|
;==================
|
|
; flip pages
|
|
;==================
|
|
|
|
jsr page_flip ; 6
|
|
|
|
;==================
|
|
; delay
|
|
;==================
|
|
|
|
lda #125
|
|
jsr WAIT
|
|
|
|
|
|
;==================
|
|
; loop forever
|
|
;==================
|
|
clc
|
|
lda ANGLE
|
|
adc #40
|
|
cmp scroll_length
|
|
bne blah
|
|
lda #0
|
|
sta ANGLE
|
|
jmp scroll_loop
|
|
|
|
blah:
|
|
inc ANGLE
|
|
jmp scroll_loop ; 3
|
|
|
|
;===============================================
|
|
; External modules
|
|
;===============================================
|
|
|
|
.include "utils.s"
|
|
|
|
;===============================================
|
|
; Variables
|
|
;===============================================
|
|
|
|
.include "deater_scroll.inc"
|
|
|
|
; waste memory with a lookup table
|
|
; move this to the zeropage?
|
|
|
|
gr_offsets:
|
|
.word $400,$480,$500,$580,$600,$680,$700,$780
|
|
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
|
|
.word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0
|
|
|