diff --git a/waterfall/waterfall.s b/waterfall/waterfall.s index 8378ad73..184740ac 100644 --- a/waterfall/waterfall.s +++ b/waterfall/waterfall.s @@ -1063,375 +1063,169 @@ ground_loop_three_done: ; we come in already 21 cycles into things ; so the first scanline is a loss (but that's OK) - ; first scanline: 21+ 2 (from ldy) so need to kill 65-23 = 42 - ; second scanline, again kill so 65 killed - display_four: + ; first scanline comes in with 38 + four_first_four_lines: + ; line 0-3 = 65*4 = 260 + ; -38 + ; -2 + ; -2 + ; -25 + ;========================= + ; 193 + lda #193 ; 2 + jsr delay_a ; 25+193 - ; line 0 - ; 38 - ldy #4 ; 2 - - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop ; 2 - - - ; line 1, 65 cycles - - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - - ; line 2, 65 cycles - - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - - ; line 3, 65 cycles - - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 + ldy #4 ; 2 four_twinkle_stars: twinkle_loop_four: - ; line 0 +;=== line 0 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 - ; endfalls - ; delay 21 - nop - nop - ; asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 2 +;=== line 1 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 - ; end falls - ; delay 21 - nop - nop -; asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 3 +;=== line 2 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 - ; end falls - ; delay 21 -; asl DUMMY ; 6 - nop - nop - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 4 + +;=== line 3 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 ; 44 - ; end falls - ; delay 21 - 7 from loop -; asl DUMMY ; 6 - nop - nop - asl DUMMY ; 6 - nop ; 2 ; 58 + lda #27 ; 2 + jsr delay_a ; 25+27 + dey ; 2 - beq twinkle_loop_four_done ; - ; 2 + beq twinkle_loop_four_done ; 3 + ; -1 jmp twinkle_loop_four ; 3 twinkle_loop_four_done: ldy #31 ; 2 falls_loop_four: - ; line 0 +;=== line 0 + bit PAGE0 ; 4 + ; delay 31 + lda #4 ; 2 + jsr delay_a ; 25+4 + + ; delay 11 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 lda YPOS ; 3 + bit PAGE0 ; 4 + + ; delay 19 + nop ; 2 nop ; 2 - nop - ; falls - bit PAGE0 ; 4 - lda YPOS ; 3 - bit PAGE0 ; 4 - ; endfalls - ; delay 21 -; asl DUMMY ; 6 - nop - nop asl DUMMY ; 6 asl DUMMY ; 6 lda YPOS ; 3 - ; line 2 +;=== line 1 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls + ; delay 31 + lda #4 ; 2 + jsr delay_a ; 25+4 + + ; delay 11 bit PAGE1 ; 4 lda YPOS ; 3 bit PAGE0 ; 4 - ; end falls - ; delay 21 - nop - nop -; asl DUMMY ; 6 + + ; delay 19 + nop ; 2 + nop ; 2 asl DUMMY ; 6 asl DUMMY ; 6 lda YPOS ; 3 - ; line 3 +;=== line 2 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls + ; delay 31 + lda #4 ; 2 + jsr delay_a ; 25+4 + + ; delay 11 bit PAGE1 ; 4 lda YPOS ; 3 bit PAGE0 ; 4 - ; end falls - ; delay 21 -; asl DUMMY ; 6 - nop - nop + + ; delay 19 + nop ; 2 + nop ; 2 asl DUMMY ; 6 asl DUMMY ; 6 lda YPOS ; 3 - ; line 4 +;=== line 3 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls + ; delay 31 + lda #4 ; 2 + jsr delay_a ; 25+4 + + ; delay 11 bit PAGE0 ; 4 lda YPOS ; 3 bit PAGE0 ; 4 ; 44 - ; end falls + ; delay 21 - 7 from loop -; asl DUMMY ; 6 - nop - nop + nop ; 2 + nop ; 2 asl DUMMY ; 6 nop ; 2 ; 58 dey ; 2 - beq falls_loop_four_done ; - ; 2 + beq falls_loop_four_done ; 3 + ; -1 jmp falls_loop_four ; 3 falls_loop_four_done: - ; 3 ldy #12 ; 2 ground_loop_four: - ; line 0 +;=== line 0 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE0 ; 4 - lda YPOS ; 3 - bit PAGE0 ; 4 - ; endfalls - ; delay 21 -; asl DUMMY ; 6 - nop - nop - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + ; delay 61 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 2 +;=== line 1 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 - ; end falls - ; delay 21 -; asl DUMMY ; 6 - nop - nop - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + ; delay 61 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 3 +;=== line 2 bit PAGE0 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE0 ; 4 - lda YPOS ; 3 - bit PAGE0 ; 4 - ; end falls - ; delay 21 - nop - nop -; asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 + ; delay 61 + lda #34 ; 2 + jsr delay_a ; 25+34 - ; line 4 + +;=== line 3 bit PAGE1 ; 4 - ; delay 29 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - asl DUMMY ; 6 - lda YPOS ; 3 - nop ; 2 - nop - ; falls - bit PAGE1 ; 4 - lda YPOS ; 3 - bit PAGE1 ; 4 ; 44 - ; end falls - ; delay 21 - 7 from loop - nop - nop -; asl DUMMY ; 6 - asl DUMMY ; 6 - nop ; 2 ; 58 + ; delay 54 + lda #27 ; 2 + jsr delay_a ; 25+27 dey ; 2 - beq ground_loop_four_done ; - ; 2 - jmp ground_loop_four ; 3 + beq ground_loop_four_done ; 3 + ; -1 + jmp ground_loop_four ; 3 ground_loop_four_done: - - - ; 3 nop ; 2 jmp display_loop_return ; 3