kfest: lots of scrolling going on

This commit is contained in:
Vince Weaver 2018-07-20 02:10:45 -04:00
parent c2d6a35ae6
commit 127f6bf7c2

View File

@ -3,6 +3,7 @@
; Zero Page
DRAW_PAGE = $EE
CURRENT_OFFSET = $EF
OFFSET_GOVERNOR = $F0
; Soft Switches
@ -29,6 +30,7 @@ WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
lda #0
sta DRAW_PAGE
sta CURRENT_OFFSET
sta OFFSET_GOVERNOR
; Clear Page0
lda #$00
@ -194,18 +196,18 @@ page1_loop: ; delay 115+(7 loop)+4 (bit)+4(extra)
; We have 4550 cycles in the vblank, use them wisely
;======================================================
; delay 2737 (4550 +1 from falltrough, -2 for loadup, -1812 for scroll)
; delay 2717 (4550 +1 from falltrough, -2 for loadup, -1832 for scroll)
; Try X=90 Y=6 cycles=2737
; Try X=8 Y=59 cycles=2715
; waste 2 cycles
;lda DRAW_PAGE ; 3
;lda DRAW_PAGE ; 3
; nop ; 2
nop ; 2
ldy #6 ; 2
ldy #59 ; 2
loop5:
ldx #90 ; 2
ldx #8 ; 2
loop6:
dex ; 2
bne loop6 ; 2nt/3
@ -221,8 +223,8 @@ loop6:
;================================
; SCROLL THE TEXT
;================================
; 5+ 40*(36 + 9)+5+3 -1
; 12+40*(45) = 1812
; 5+ 40*(36 + 9)+5+3 -1 + 20
; 12+40*(45) + 19 = 1832
ldy CURRENT_OFFSET ; 3
ldx #0 ; 2
@ -244,10 +246,26 @@ data_loop:
cpx #40 ; 2
bne data_loop ; 2nt/3
inc CURRENT_OFFSET ; 5
inc OFFSET_GOVERNOR ; 5
lda OFFSET_GOVERNOR ; 3
cmp #6 ; 2
bne not_yet ; 2
inc CURRENT_OFFSET ; 5
lda #0 ; 2
sta OFFSET_GOVERNOR ; 3
jmp all_done ; 3
not_yet:
; 1
lda OFFSET_GOVERNOR ; 3
lda OFFSET_GOVERNOR ; 3
lda OFFSET_GOVERNOR ; 3
lda OFFSET_GOVERNOR ; 3
all_done:
; lda #128
; jsr WAIT
jmp display_loop ; 3
@ -295,29 +313,67 @@ words:
.byte $D1,$00,$D1,$00, $D1,$01,$00, $D1,$01,$00, $D1,$D1,$00, $01,$D1,$01,$00
; 1 8 . . .
.byte $00,$D1,$00, $D0,$01,$D0,$00, $00,$00,$00, $00,$00,$00, $00,$00,$00, $00,$00
; H A V E
.byte $D1,$00,$D1,$00, $D0,$01,$D0,$00, $D1,$00,$D1,$00, $D1,$01,$00, $00,$00
; Y O U
.byte $D1,$00,$D1,$00, $D0,$01,$D0,$00, $D1,$00,$D1,$00, $00,$00
; E V E R
.byte $D1,$01,$00, $D1,$00,$D1,$00, $D1,$01,$00, $D1,$01,$D1,$00, $00,$00
; S E E N
.byte $D1,$D1,$00, $D1,$01,$00, $D1,$01,$00, $D1,$00,$D0,$D1,$00, $00,$00
; 4 0 x
.byte $D1,$00,$D1,$00, $D0,$01,$D0,$00, $D0,$00,$D0,$00
; 9 6
.byte $D1,$01,$D1,$00, $D1,$01,$01,$00, $00,$00
; L O R E S
.byte $D1,$00,$00, $D0,$01,$D0,$00, $D1,$01,$D1,$00, $D1,$01,$00, $D1,$D1,$00
.repeat 202
.repeat 100
.byte $0
.endrep
words2:
.byte $24,$04,$24,$00, $24,$20,$00, $24,$20,$00, $24,$20,$00, $04,$20,$04,$00, $00,$00
.byte $24,$04,$20,$00, $24,$00,$00, $24,$20,$00, $20,$24,$00, $00,$24,$00,$00
.byte $00,$24,$00, $04,$20,$04,$00, $20,$20,$00, $20,$20,$00, $20,$20,$00, $00,$00
.repeat 202
.byte $24,$04,$24,$00, $24,$00,$24,$00, $04,$20,$04,$00, $24,$20,$00, $00,$00
.byte $00,$24,$00,$00, $04,$20,$04,$00, $24,$20,$24,$00, $00,$00
.byte $24,$20,$00, $04,$20,$04,$00, $24,$20,$00, $24,$04,$20,$00, $00,$00
.byte $20,$24,$00, $24,$20,$00, $24,$20,$00, $24,$00,$00,$24,$00, $00,$00
.byte $00,$00,$24,$00, $04,$20,$04,$00, $00,$04,$00,$00
.byte $00,$00,$24,$00, $24,$20,$24,$00, $00,$00
.byte $24,$20,$00, $04,$20,$04,$00, $24,$04,$20,$00, $24,$20,$00, $20,$24,$00
.repeat 100
.byte $0
.endrep
words3:
.byte $C9,$C0,$C9,$00, $C9,$C0,$00, $C9,$00,$00, $C9,$00,$00, $C9,$00,$C9,$00, $00,$00
.byte $C9,$C0,$09,$00, $C9,$C0,$00, $C9,$C0,$00, $C9,$C0,$00, $00,$C9,$00,$00
.byte $09,$C9,$00, $09,$C0,$09,$00, $00,$00,$00, $00,$00,$00, $00,$00,$00, $00,$00
.repeat 202
.byte $C9,$C0,$C9,$00, $C9,$C0,$C9,$00, $C9,$00,$C9,$00, $C9,$C0,$00, $00,$00
.byte $09,$C0,$09,$00, $c9,$00,$c9,$00, $C9,$00,$C9,$00, $00,$00
.byte $C9,$C0,$00, $C9,$00,$C9,$00, $C9,$C0,$00, $C9,$C0,$C9,$00, $00,$00
.byte $C9,$C0,$00, $C9,$C0,$00, $C9,$C0,$00, $C9,$09,$00,$C9,$00, $00,$00
.byte $C9,$C0,$C9,$00, $C9,$00,$C9,$00, $00,$C0,$00,$00
.byte $C9,$C0,$C9,$00, $C9,$C0,$C0,$00, $00,$00
.byte $C9,$00,$00, $C9,$00,$C9,$00, $C9,$C0,$C9,$00, $C9,$C0,$00, $C9,$C0,$00
.repeat 100
.byte $0
.endrep
words4:
.byte $06,$00,$06,$00, $06,$00,$00, $06,$00,$00, $06,$00,$00, $06,$00,$06,$00, $00,$00
.byte $06,$00,$06,$00, $06,$00,$00, $06,$00,$00, $00,$06,$00, $00,$06,$00,$00
.byte $00,$06,$00, $06,$00,$06,$00, $06,$06,$00, $06,$06,$00, $06,$06,$00, $00,$00
.repeat 202
.byte $06,$00,$06,$00, $06,$00,$06,$00, $00,$06,$00,$00, $06,$00,$00, $00,$00
.byte $00,$06,$00,$00, $06,$00,$06,$00, $06,$00,$06,$00, $00,$00
.byte $06,$00,$00, $00,$06,$00,$00, $06,$00,$00, $06,$00,$06,$00, $00,$00
.byte $00,$06,$00, $06,$00,$00, $06,$00,$00, $06,$00,$00,$06,$00, $00,$00
.byte $00,$00,$06,$00, $06,$00,$06,$00, $06,$00,$06,$00
.byte $00,$00,$06,$00, $06,$00,$06,$00, $00,$00
.byte $06,$00,$00, $06,$00,$06,$00, $06,$00,$06,$00, $06,$00,$00, $00,$04,$00
.repeat 100
.byte $0
.endrep
@ -326,6 +382,18 @@ words4:
; ?
gr_offsets:
.word $400,$480,$500,$580,$600,$680,$700,$780
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8