From 127f6bf7c2a683bfb09bc008f93e8af9fd38e2ae Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 20 Jul 2018 02:10:45 -0400 Subject: [PATCH] kfest: lots of scrolling going on --- kfest2018/raster.s | 96 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 14 deletions(-) diff --git a/kfest2018/raster.s b/kfest2018/raster.s index 27241f3a..91917fde 100644 --- a/kfest2018/raster.s +++ b/kfest2018/raster.s @@ -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