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 0000000..9ebb679 Binary files /dev/null and b/hamburger.png differ diff --git a/hisprite.dsk b/hisprite.dsk index 4ed773f..b0f2bc4 100644 Binary files a/hisprite.dsk and b/hisprite.dsk differ 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 0000000..98cf4e3 Binary files /dev/null and b/spaceship.png differ 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.