From 6976747a86c812e4e8d9f5965d8c55ddec30a6d7 Mon Sep 17 00:00:00 2001 From: Quinn Dunki Date: Tue, 18 Jul 2017 11:33:57 -0700 Subject: [PATCH] Final KFest demo commit - Added text mode - Added some sprites - Fixed a bug in high-bit detection - High bit detection now smarter --- HiSprite.py | 19 +- graphics.s | 14 +- hamburger.png | Bin 0 -> 192 bytes hisprite.dsk | Bin 143360 -> 143360 bytes hisprite.s | 48 +- spaceship.png | Bin 0 -> 199 bytes spritegen0.s | 2006 ++++++++++++++++++++++++------------------------- spritegen0b.s | 268 +++---- 8 files changed, 1163 insertions(+), 1192 deletions(-) create mode 100644 hamburger.png create mode 100644 spaceship.png diff --git a/HiSprite.py b/HiSprite.py index 1953283..6472063 100755 --- a/HiSprite.py +++ b/HiSprite.py @@ -142,8 +142,7 @@ def byteStreamsFromPixels(pixelData,width,height,shift,bitDelegate,highBitDelega bitChunk = bitChunk[::-1] # Determine palette bit from first pixel on each row - highBit = highBitDelegate(pixelData[row][0]) - + highBit = highBitDelegate(pixelData,row,width) byteSplits[byteIndex] = highBit + bitChunk bitPos += 7 @@ -267,17 +266,19 @@ def bitsForMask(pixel): return "11" -def highBitForColor(pixel): +def highBitForColor(pixelData,rowIndex,width): - # Note that we prefer high-bit white because blue fringe is less noticeable than magenta. - highBit = "0" - if pixel == Colors.orange or pixel == Colors.blue or pixel == Colors.white: - highBit = "1" + for pixelIndex in range(width): + pixel = pixelColor(pixelData,rowIndex,pixelIndex) + + # Note that we prefer high-bit white because blue fringe is less noticeable than magenta. + if pixel == Colors.orange or pixel == Colors.blue or pixel == Colors.white: + return "1" - return highBit + return "0" -def highBitForMask(pixel): +def highBitForMask(pixelData,rowIndex,width): return "1" diff --git a/graphics.s b/graphics.s index 870da73..d6d128c 100644 --- a/graphics.s +++ b/graphics.s @@ -8,12 +8,18 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; EnableHires -; Trashes A ; EnableHires: - lda TEXT - lda HIRES1 - lda HIRES2 + sta TEXT + sta HIRES1 + sta HIRES2 + rts + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; EnableText +; +EnableText: + sta TEXT2 rts ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/hamburger.png b/hamburger.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebb6792bcbd5d57e46cee6fe21d32067ff0cc92 GIT binary patch literal 192 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 diff --git a/hisprite.s b/hisprite.s index 8eb63d2..3af6dd7 100644 --- a/hisprite.s +++ b/hisprite.s @@ -12,6 +12,7 @@ ; Softswitches TEXT = $c050 +TEXT2 = $c051 HIRES1 = $c057 HIRES2 = $c058 @@ -33,7 +34,7 @@ SPRITEPTR_H = $1c MAXSPRITEINDEX = 3 ; Sprite count - 1 MAXPOSX = 127 ; This demo doesn't wanna do 16 bit math MAXPOSY = 127 -MAXLOCALBATCHINDEX = 4 ; Sprites in batch - 1 +MAXLOCALBATCHINDEX = 3 ; Sprites in batch - 1 MAXBATCHINDEX = 0 ; Number of batches - 1 ; Macros @@ -76,7 +77,7 @@ main: jsr VenetianFill mainLoop: - + jsr checkKbd renderLoop: @@ -99,7 +100,7 @@ renderLoop: lda (SPRITEPTR_L),y ; 5 sta PARAM0 ; 3 - jsr BOXW_MAG ; 6 48 cycles overhead to here + jsr SPACESHIP ; 6 48 cycles overhead to here ; Next sprite dec spriteNum ; 6 @@ -232,33 +233,32 @@ batchContinue: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; delayShort -; Sleeps for ~1/30th second +; checkKbd +; Exits app on a keystroke ; -delayShort: - SAVE_AXY +checkKbd: +; rts + lda $c000 + bpl checkKbdDone + sta $c010 - ldy #$06 ; Loop a bit -delayShortOuter: - ldx #$ff -delayShortInner: - nop - nop - nop - nop - nop - nop - nop - dex - bne delayShortInner - dey - bne delayShortOuter + cmp #241 ; 'q' with high bit set + bne checkKbdDone - RESTORE_AXY + jsr EnableText + +; pla ; Pull our own frame off the stack... +; pla +; pla +; pla + pla ; ...four local variables + return address... + pla + rts ; ...so we can quit to ProDOS from here + +checkKbdDone: rts - spriteNum: .byte MAXSPRITEINDEX batchIndex: diff --git a/spaceship.png b/spaceship.png new file mode 100644 index 0000000000000000000000000000000000000000..98cf4e3c2758191acd8f03da9431e6c6a6645f44 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^&H|6fVg?3oVGw3ym^DWND9B#o z>Fdh=kX=YnMPP-yBpXmjHZvrm#5q4VH#M&W$Yo$~E=o--Nlj5G&n(GMaQE~LNYP7W z2a4Nzx;Tb#TrcfC$lGARb0lY3T1#GS4d1P%4I-M)T{;yR6qvkq5|gym^<{Rv_v@3} lwcP*lbH}~*a@nyt40=kB1ek8OhZKTr@O1TaS?83{1OVTYH0%HX literal 0 HcmV?d00001 diff --git a/spritegen0.s b/spritegen0.s index 3f38baa..581e433 100644 --- a/spritegen0.s +++ b/spritegen0.s @@ -2,40 +2,40 @@ ; This file was generated by HiSprite.py, a sprite compiler by Quinn Dunki. ; If you feel the need to modify this file, you are probably doing it wrong. -BOXW_MAG: ;6 bytes per row +SPACESHIP: ;6 bytes per row SAVE_AXY ldy PARAM0 ldx MOD7_2,y .ifpC02 - jmp (BOXW_MAG_JMP,x) + jmp (SPACESHIP_JMP,x) -BOXW_MAG_JMP: - .addr BOXW_MAG_SHIFT0 - .addr BOXW_MAG_SHIFT1 - .addr BOXW_MAG_SHIFT2 - .addr BOXW_MAG_SHIFT3 - .addr BOXW_MAG_SHIFT4 - .addr BOXW_MAG_SHIFT5 - .addr BOXW_MAG_SHIFT6 +SPACESHIP_JMP: + .addr SPACESHIP_SHIFT0 + .addr SPACESHIP_SHIFT1 + .addr SPACESHIP_SHIFT2 + .addr SPACESHIP_SHIFT3 + .addr SPACESHIP_SHIFT4 + .addr SPACESHIP_SHIFT5 + .addr SPACESHIP_SHIFT6 .else - lda BOXW_MAG_JMP+1,x + lda SPACESHIP_JMP+1,x pha - lda BOXW_MAG_JMP,x + lda SPACESHIP_JMP,x pha rts -BOXW_MAG_JMP: - .addr BOXW_MAG_SHIFT0-1 - .addr BOXW_MAG_SHIFT1-1 - .addr BOXW_MAG_SHIFT2-1 - .addr BOXW_MAG_SHIFT3-1 - .addr BOXW_MAG_SHIFT4-1 - .addr BOXW_MAG_SHIFT5-1 - .addr BOXW_MAG_SHIFT6-1 +SPACESHIP_JMP: + .addr SPACESHIP_SHIFT0-1 + .addr SPACESHIP_SHIFT1-1 + .addr SPACESHIP_SHIFT2-1 + .addr SPACESHIP_SHIFT3-1 + .addr SPACESHIP_SHIFT4-1 + .addr SPACESHIP_SHIFT5-1 + .addr SPACESHIP_SHIFT6-1 .endif -BOXW_MAG_SHIFT0: +SPACESHIP_SHIFT0: ldx PARAM1 lda HGRROWS_H1,x sta SCRATCH1 @@ -45,14 +45,132 @@ BOXW_MAG_SHIFT0: lda DIV7_2,y tay + lda #%00010101 + sta (SCRATCH0),y + iny + lda #%00101000 + sta (SCRATCH0),y + iny + lda #%00000001 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010000 + sta (SCRATCH0),y + iny + lda #%10001010 + sta (SCRATCH0),y + iny + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10101000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000001 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11110101 + sta (SCRATCH0),y + iny + lda #%10111010 + sta (SCRATCH0),y + iny + lda #%10000001 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010100 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00101000 + sta (SCRATCH0),y + iny lda #%01010101 sta (SCRATCH0),y iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%00000001 - sta (SCRATCH0),y iny iny iny @@ -66,146 +184,24 @@ BOXW_MAG_SHIFT0: lda DIV7_2,y tay - lda #%00000001 - sta (SCRATCH0),y - iny - iny - lda #%00000001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01010001 - sta (SCRATCH0),y - iny lda #%00001010 sta (SCRATCH0),y iny - lda #%00000001 + lda #%01000000 sta (SCRATCH0),y iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010001 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%00000001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010001 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%00000001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01010001 - sta (SCRATCH0),y - iny - lda #%00001010 - sta (SCRATCH0),y - iny - lda #%00000001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00000001 - sta (SCRATCH0),y - iny - iny - lda #%00000001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%00000001 + lda #%00000010 sta (SCRATCH0),y iny iny iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 481, Optimized 28 rows. -BOXW_MAG_SHIFT1: +SPACESHIP_SHIFT1: ldx PARAM1 lda HGRROWS_H1,x sta SCRATCH1 @@ -218,7 +214,7 @@ BOXW_MAG_SHIFT1: lda #%01010100 sta (SCRATCH0),y iny - lda #%00101010 + lda #%00100000 sta (SCRATCH0),y iny lda #%00000101 @@ -236,11 +232,32 @@ BOXW_MAG_SHIFT1: lda DIV7_2,y tay - lda #%00000100 + lda #%11000000 + sta (SCRATCH0),y + iny + lda #%10101010 sta (SCRATCH0),y iny iny - lda #%00000100 + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10100000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10000010 sta (SCRATCH0),y iny iny @@ -255,13 +272,13 @@ BOXW_MAG_SHIFT1: lda DIV7_2,y tay - lda #%01000100 + lda #%11010100 sta (SCRATCH0),y iny - lda #%00101010 + lda #%10101010 sta (SCRATCH0),y iny - lda #%00000100 + lda #%10000101 sta (SCRATCH0),y iny iny @@ -276,13 +293,55 @@ BOXW_MAG_SHIFT1: lda DIV7_2,y tay - lda #%01000100 + lda #%11010100 sta (SCRATCH0),y iny + lda #%11101011 + sta (SCRATCH0),y + iny + lda #%10000101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000001 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + lda #%00100000 sta (SCRATCH0),y iny - lda #%00000100 + lda #%01010101 + sta (SCRATCH0),y + iny + lda #%00000010 sta (SCRATCH0),y iny iny @@ -297,19 +356,191 @@ BOXW_MAG_SHIFT1: lda DIV7_2,y tay - lda #%01000100 + lda #%00101000 sta (SCRATCH0),y iny + iny + lda #%00001010 + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts ;Cycle count: 497, Optimized 26 rows. + + + +SPACESHIP_SHIFT2: + ldx PARAM1 + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01010000 + sta (SCRATCH0),y + iny + lda #%00000010 + sta (SCRATCH0),y + iny + lda #%00010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000001 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10001010 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11010000 + sta (SCRATCH0),y + iny + lda #%10101110 + sta (SCRATCH0),y + iny + lda #%10010111 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%01010101 + sta (SCRATCH0),y + iny + lda #%00001010 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + lda #%00100000 sta (SCRATCH0),y iny - lda #%00000100 + lda #%00000001 + sta (SCRATCH0),y + iny + lda #%00101000 sta (SCRATCH0),y iny iny iny - inx + RESTORE_AXY + rts ;Cycle count: 489, Optimized 27 rows. + + + +SPACESHIP_SHIFT3: + ldx PARAM1 lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x @@ -318,49 +549,466 @@ BOXW_MAG_SHIFT1: lda DIV7_2,y tay - lda #%01000100 + lda #%01000000 sta (SCRATCH0),y iny - lda #%00101010 + lda #%00001010 sta (SCRATCH0),y iny - lda #%00000100 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00000100 - sta (SCRATCH0),y - iny - iny - lda #%00000100 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #%01010100 sta (SCRATCH0),y iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101000 + sta (SCRATCH0),y + iny + lda #%10000101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11010100 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + sta (SCRATCH0),y + iny + lda #%10111010 + sta (SCRATCH0),y + iny + lda #%11011101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%01010100 + sta (SCRATCH0),y + iny + lda #%00101010 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00000101 + sta (SCRATCH0),y + iny + lda #%00100000 + sta (SCRATCH0),y + iny + lda #%00000001 + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts ;Cycle count: 481, Optimized 28 rows. + + + +SPACESHIP_SHIFT4: + ldx PARAM1 + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00101010 + sta (SCRATCH0),y + iny + lda #%01010000 + sta (SCRATCH0),y + iny + lda #%00000010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10100000 + sta (SCRATCH0),y + iny + lda #%10010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11010000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000001 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10000010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11101010 + sta (SCRATCH0),y + iny + lda #%11110101 + sta (SCRATCH0),y + iny + lda #%10000010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%01010000 + sta (SCRATCH0),y + iny + lda #%00101010 + sta (SCRATCH0),y + iny + lda #%00000001 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00010100 + sta (SCRATCH0),y + iny + iny + lda #%00000101 + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts ;Cycle count: 489, Optimized 27 rows. + + + +SPACESHIP_SHIFT5: + ldx PARAM1 + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00101000 + sta (SCRATCH0),y + iny + lda #%01000001 + sta (SCRATCH0),y + iny + lda #%00001010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny + lda #%11010101 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000000 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10000101 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10001010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10101000 + sta (SCRATCH0),y + iny + lda #%11010111 + sta (SCRATCH0),y + iny + lda #%10001011 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10100000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10000010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%01000000 + sta (SCRATCH0),y + iny lda #%00101010 sta (SCRATCH0),y iny @@ -368,15 +1016,8 @@ BOXW_MAG_SHIFT1: sta (SCRATCH0),y iny iny - iny - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. - - - -BOXW_MAG_SHIFT2: - ldx PARAM1 + inx lda HGRROWS_H1,x sta SCRATCH1 lda HGRROWS_L,x @@ -385,9 +1026,153 @@ BOXW_MAG_SHIFT2: lda DIV7_2,y tay + iny lda #%01010000 sta (SCRATCH0),y iny + iny + lda #%00010100 + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts ;Cycle count: 489, Optimized 27 rows. + + + +SPACESHIP_SHIFT6: + ldx PARAM1 + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100000 + sta (SCRATCH0),y + iny + lda #%00000101 + sta (SCRATCH0),y + iny + lda #%00101010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny + lda #%11010100 + sta (SCRATCH0),y + iny + lda #%10000010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny + lda #%10101010 + sta (SCRATCH0),y + iny + lda #%10010101 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10100000 + sta (SCRATCH0),y + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10101010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10100000 + sta (SCRATCH0),y + iny + lda #%11011101 + sta (SCRATCH0),y + iny + lda #%10101110 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny + lda #%11010101 + sta (SCRATCH0),y + iny + lda #%10001010 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny lda #%00101010 sta (SCRATCH0),y iny @@ -395,7 +1180,6 @@ BOXW_MAG_SHIFT2: sta (SCRATCH0),y iny iny - iny inx lda HGRROWS_H1,x @@ -406,822 +1190,20 @@ BOXW_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 - sta (SCRATCH0),y iny - iny - lda #%00010000 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010000 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%00010001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010000 + lda #%01000000 sta (SCRATCH0),y iny lda #%00000010 sta (SCRATCH0),y iny - lda #%00010001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010000 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - lda #%00010001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010000 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%00010001 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00010000 - sta (SCRATCH0),y - iny - iny - lda #%00010000 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #%01010000 sta (SCRATCH0),y iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%00010101 - sta (SCRATCH0),y - iny - iny iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. - - - -BOXW_MAG_SHIFT3: - ldx PARAM1 - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - iny - lda #%01000000 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00101000 - sta (SCRATCH0),y - iny - lda #%01000101 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01000100 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01000100 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00101000 - sta (SCRATCH0),y - iny - lda #%01000101 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - iny - lda #%01000000 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - iny - iny - - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. - - - -BOXW_MAG_SHIFT4: - ldx PARAM1 - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100010 - sta (SCRATCH0),y - iny - lda #%00010101 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100010 - sta (SCRATCH0),y - iny - lda #%00010000 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100010 - sta (SCRATCH0),y - iny - lda #%00010000 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100010 - sta (SCRATCH0),y - iny - lda #%00010101 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101010 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00000010 - sta (SCRATCH0),y - iny - iny - - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. - - - -BOXW_MAG_SHIFT5: - ldx PARAM1 - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00001010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01000001 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01000001 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - lda #%00001000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00001010 - sta (SCRATCH0),y - iny - iny - - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. - - - -BOXW_MAG_SHIFT6: - ldx PARAM1 - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - iny - lda #%00100000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%01010100 - sta (SCRATCH0),y - iny - lda #%00100010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%00000100 - sta (SCRATCH0),y - iny - lda #%00100010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%00000100 - sta (SCRATCH0),y - iny - lda #%00100010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%01010100 - sta (SCRATCH0),y - iny - lda #%00100010 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - iny - lda #%00100000 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - sta (SCRATCH0),y - iny - lda #%01010101 - sta (SCRATCH0),y - iny - lda #%00101010 - sta (SCRATCH0),y - iny - iny - - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 481, Optimized 28 rows. diff --git a/spritegen0b.s b/spritegen0b.s index 60a6ced..7716d80 100644 --- a/spritegen0b.s +++ b/spritegen0b.s @@ -69,12 +69,31 @@ BLACK_SHIFT0: lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y + iny + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y iny iny iny + iny inx lda HGRROWS_H1,x @@ -133,8 +152,6 @@ BLACK_SHIFT0: lda #0 sta (SCRATCH0),y iny - lda #0 - sta (SCRATCH0),y iny iny iny @@ -154,27 +171,6 @@ BLACK_SHIFT0: lda #0 sta (SCRATCH0),y iny - lda #0 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #0 - sta (SCRATCH0),y - iny - iny - lda #0 - sta (SCRATCH0),y iny iny iny @@ -201,7 +197,7 @@ BLACK_SHIFT0: iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 481, Optimized 28 rows. @@ -239,6 +235,27 @@ BLACK_SHIFT1: lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y + iny + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #0 + sta (SCRATCH0),y + iny + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -349,27 +366,6 @@ BLACK_SHIFT1: iny iny - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #0 - sta (SCRATCH0),y - iny - lda #0 - sta (SCRATCH0),y - iny - lda #0 - sta (SCRATCH0),y - iny - iny - iny - RESTORE_AXY rts ;Cycle count: 497, Optimized 26 rows. @@ -406,9 +402,28 @@ BLACK_SHIFT2: lda DIV7_2,y tay + iny lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -488,8 +503,6 @@ BLACK_SHIFT2: lda DIV7_2,y tay - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -509,25 +522,6 @@ BLACK_SHIFT2: lda DIV7_2,y tay - lda #0 - sta (SCRATCH0),y - iny - iny - lda #0 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #0 sta (SCRATCH0),y iny @@ -541,7 +535,7 @@ BLACK_SHIFT2: iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 489, Optimized 27 rows. @@ -576,9 +570,28 @@ BLACK_SHIFT3: lda DIV7_2,y tay + iny lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -637,8 +650,6 @@ BLACK_SHIFT3: lda DIV7_2,y tay - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -658,8 +669,6 @@ BLACK_SHIFT3: lda DIV7_2,y tay - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -679,25 +688,7 @@ BLACK_SHIFT3: lda DIV7_2,y tay - lda #0 - sta (SCRATCH0),y iny - iny - lda #0 - sta (SCRATCH0),y - iny - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #0 sta (SCRATCH0),y iny @@ -708,10 +699,9 @@ BLACK_SHIFT3: sta (SCRATCH0),y iny iny - iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 481, Optimized 28 rows. @@ -750,11 +740,11 @@ BLACK_SHIFT4: lda #0 sta (SCRATCH0),y iny - iny lda #0 sta (SCRATCH0),y iny iny + iny inx lda HGRROWS_H1,x @@ -835,8 +825,6 @@ BLACK_SHIFT4: lda #0 sta (SCRATCH0),y iny - lda #0 - sta (SCRATCH0),y iny iny @@ -853,6 +841,8 @@ BLACK_SHIFT4: lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -872,8 +862,6 @@ BLACK_SHIFT4: lda #0 sta (SCRATCH0),y iny - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -881,7 +869,7 @@ BLACK_SHIFT4: iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 489, Optimized 27 rows. @@ -916,11 +904,30 @@ BLACK_SHIFT5: lda DIV7_2,y tay + iny iny lda #0 sta (SCRATCH0),y iny iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #0 + sta (SCRATCH0),y + iny + lda #0 + sta (SCRATCH0),y + iny lda #0 sta (SCRATCH0),y iny @@ -1029,29 +1036,8 @@ BLACK_SHIFT5: iny iny - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #0 - sta (SCRATCH0),y - iny - lda #0 - sta (SCRATCH0),y - iny - lda #0 - sta (SCRATCH0),y - iny - iny - RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 489, Optimized 27 rows. @@ -1086,10 +1072,29 @@ BLACK_SHIFT6: lda DIV7_2,y tay + iny iny lda #0 sta (SCRATCH0),y iny + lda #0 + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H1,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + iny + lda #0 + sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -1148,8 +1153,6 @@ BLACK_SHIFT6: tay iny - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -1169,8 +1172,6 @@ BLACK_SHIFT6: tay iny - lda #0 - sta (SCRATCH0),y iny lda #0 sta (SCRATCH0),y @@ -1189,25 +1190,6 @@ BLACK_SHIFT6: lda DIV7_2,y tay - iny - lda #0 - sta (SCRATCH0),y - iny - iny - lda #0 - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H1,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - iny lda #0 sta (SCRATCH0),y @@ -1221,7 +1203,7 @@ BLACK_SHIFT6: iny RESTORE_AXY - rts ;Cycle count: 497, Optimized 26 rows. + rts ;Cycle count: 481, Optimized 28 rows.