diff --git a/.gitignore b/.gitignore index 4c40ae8..741d769 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ hgrtest.lst HGR.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate /.DS_Store /hisprite.lst +/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate +/HiSprite.xcodeproj/xcuserdata/qd.xcuserdatad/xcdebugger diff --git a/HiSprite.py b/HiSprite.py index 6a7adf6..80cf581 100755 --- a/HiSprite.py +++ b/HiSprite.py @@ -3,7 +3,7 @@ import sys,os,png class Colors: - black,magenta,green,orange,blue = range(5) + black,magenta,green,orange,blue,white = range(6) @@ -29,16 +29,19 @@ def main(argv): disclaimer() + # Prologue print "%s: ;%d bytes per row" % (niceName,byteWidth) print "\tSAVE_AXY" print "\tldy PARAM0" print "\tldx MOD7_2,y" print "\tjmp (%s_JMP,x)\n" % (niceName) + # Bit-shift jump table print "%s_JMP:" % (niceName) for shift in range(0,7): print "\t.addr %s_SHIFT%d" % (niceName,shift) + # Blitting functions print "\n" for shift in range(0,7): print "%s_SHIFT%d:" % (niceName,shift) @@ -64,23 +67,30 @@ def layoutSpriteChunk(pixeldata,width,height,shift): byteWidth = width/2+1+1 # TODO: Calculate a power of two for this spriteChunks = [["" for y in range(height)] for x in range(byteWidth)] + # Layout rows for row in range(height): pixelRow = bitmap[row] bitStream = "" + # Compute raw bitstream for row from PNG pixels for pixelIndex in range(width): pixel = pixelColor(pixeldata,row,pixelIndex) if pixel == Colors.black: bitStream += "00" else: - if pixel == Colors.green or pixel == Colors.orange: - bitStream += "01" + if pixel == Colors.white: + bitStream += "11" else: - bitStream += "10" - + if pixel == Colors.green or pixel == Colors.orange: + bitStream += "01" + else: + bitStream += "10" + + # Shift bit stream as needed bitStream = shiftStringRight(bitStream,shift) bitStream = bitStream[:byteWidth*8] - + + # Split bitstream into bytes bitPos = 0 byteSplits = [0 for x in range(byteWidth)] @@ -99,26 +109,33 @@ def layoutSpriteChunk(pixeldata,width,height,shift): bitChunk = bitStream[bitPos:bitPos+7] bitChunk = bitChunk[::-1] - + + # Set palette bit as needed. 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: + if pixel == Colors.orange or pixel == Colors.blue or pixel == Colors.white: highBit = "1" byteSplits[byteIndex] = highBit + bitChunk bitPos += 7 - + + # Generate blitting code for chunkIndex in range(len(byteSplits)): - if (not byteSplits[chunkIndex].endswith("0000000")): + + # Store byte into video memory + if (not byteSplits[chunkIndex].endswith("0000000")): # Optimization- don't render all-black bytes spriteChunks[chunkIndex][row] = \ "\tlda #%%%s\n" % byteSplits[chunkIndex] + \ "\tora (SCRATCH0),y\n" + \ "\tsta (SCRATCH0),y\n"; + # Increment indices if chunkIndex == len(byteSplits)-1: spriteChunks[chunkIndex][row] += "\n" else: spriteChunks[chunkIndex][row] += "\tiny" - + + # Finish the row if row0 and b==0: color = Colors.orange - + else: + if r==255 and g==255 and b==255: + color = Colors.white return color @@ -204,7 +223,7 @@ PNG file must not have an alpha channel! def disclaimer(): print ''' -; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; 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. ''' return @@ -212,4 +231,4 @@ def disclaimer(): if __name__ == "__main__": main(sys.argv[1:]) - \ No newline at end of file + diff --git a/HiSprite.xcodeproj/project.pbxproj b/HiSprite.xcodeproj/project.pbxproj index f1c6afa..1329357 100644 --- a/HiSprite.xcodeproj/project.pbxproj +++ b/HiSprite.xcodeproj/project.pbxproj @@ -17,6 +17,8 @@ 701B5E151D84823300E6D330 /* spritegen2.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen2.s; sourceTree = ""; }; 701B5E161D84823300E6D330 /* spritegen3.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen3.s; sourceTree = ""; }; 701B5E171D84824400E6D330 /* hgrtableY.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtableY.s; sourceTree = ""; }; + 701B5E181D849F3800E6D330 /* graphics.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = graphics.s; sourceTree = ""; }; + 70A65D491E0B137D00FB9D02 /* spritegen4.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen4.s; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXGroup section */ @@ -27,12 +29,14 @@ 701B5E111D84817500E6D330 /* HiSprite.py */, 701B5E0E1D84810000E6D330 /* macros.s */, 701B5E101D84813500E6D330 /* hisprite.s */, + 701B5E181D849F3800E6D330 /* graphics.s */, 701B5E121D8481C800E6D330 /* hgrtableX.s */, 701B5E171D84824400E6D330 /* hgrtableY.s */, 701B5E131D84820100E6D330 /* spritegen0.s */, 701B5E141D84823300E6D330 /* spritegen1.s */, 701B5E151D84823300E6D330 /* spritegen2.s */, 701B5E161D84823300E6D330 /* spritegen3.s */, + 70A65D491E0B137D00FB9D02 /* spritegen4.s */, ); sourceTree = ""; }; diff --git a/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate b/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index beaa665..0000000 Binary files a/HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/boxw_mag.png b/boxw_mag.png new file mode 100644 index 0000000..4db790d Binary files /dev/null and b/boxw_mag.png differ diff --git a/boxw_mix.png b/boxw_mix.png new file mode 100644 index 0000000..a321548 Binary files /dev/null and b/boxw_mix.png differ diff --git a/boxw_org.png b/boxw_org.png new file mode 100644 index 0000000..42f1286 Binary files /dev/null and b/boxw_org.png differ diff --git a/graphics.s b/graphics.s new file mode 100644 index 0000000..e4e8c4d --- /dev/null +++ b/graphics.s @@ -0,0 +1,205 @@ +; +; graphics.s +; +; Created by Quinn Dunki on 9/10/16 +; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; EnableHires +; Trashes A +; +EnableHires: + lda TEXT + lda HIRES1 + lda HIRES2 + rts + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; SaveBackground +; PARAM0: X pos +; PARAM1: Y pos +; PARAM2: Storage area (LSB) +; PARAM3: Storage area (MSB) +; +; Assumes 6-byte-wide, 8px-high sprites +; +SaveBackground: + SAVE_AXY + ldy #0 + lda #0 + pha + +saveBackground_loop: + clc + pla + pha + adc PARAM1 ; Calculate Y line + tax + + lda HGRROWS_H,x ; Compute hires row + sta saveBackground_smc0+2 + sta saveBackground_smc1+2 + sta saveBackground_smc2+2 + sta saveBackground_smc3+2 + lda HGRROWS_L,x + sta saveBackground_smc0+1 + sta saveBackground_smc1+1 + sta saveBackground_smc2+1 + sta saveBackground_smc3+1 + + ldx PARAM0 ; Compute hires column + lda DIV7_2,x + tax + +saveBackground_smc0: + lda $2000,x + sta (PARAM2),y + iny + inx +saveBackground_smc1: + lda $2000,x + sta (PARAM2),y + iny + inx +saveBackground_smc2: + lda $2000,x + sta (PARAM2),y + iny + inx +saveBackground_smc3: + lda $2000,x + sta (PARAM2),y + iny + + pla + inc + pha + + cpy #48 + bne saveBackground_loop + + pla + RESTORE_AXY + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; RestoreBackground +; PARAM0: X pos +; PARAM1: Y pos +; PARAM2: Storage area (LSB) +; PARAM3: Storage area (MSB) +; +; Assumes 4-byte-wide, 8px-high sprites +; +RestoreBackground: + SAVE_AXY + ldy #0 + lda #0 + pha + +restoreBackground_loop: + clc + pla + pha + adc PARAM1 ; Calculate Y line + tax + + lda HGRROWS_H,x ; Compute hires row + sta restoreBackground_smc0+2 + sta restoreBackground_smc1+2 + sta restoreBackground_smc2+2 + sta restoreBackground_smc3+2 + lda HGRROWS_L,x + sta restoreBackground_smc0+1 + sta restoreBackground_smc1+1 + sta restoreBackground_smc2+1 + sta restoreBackground_smc3+1 + + ldx PARAM0 ; Compute hires column + lda DIV7_2,x + tax + + lda (PARAM2),y +restoreBackground_smc0: + sta $2000,x + iny + inx + + lda (PARAM2),y +restoreBackground_smc1: + sta $2000,x + iny + inx + + lda (PARAM2),y +restoreBackground_smc2: + sta $2000,x + iny + inx + + lda (PARAM2),y +restoreBackground_smc3: + sta $2000,x + iny + + pla + inc + pha + + cpy #48 + bne restoreBackground_loop + + pla + RESTORE_AXY + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; LinearFill +; A: Byte value to fill +; Trashes all registers +; +LinearFill: + ldx #0 + +linearFill_outer: + pha + lda HGRROWS_H,x + sta linearFill_inner+2 + lda HGRROWS_L,x + sta linearFill_inner+1 + pla + + ldy #39 +linearFill_inner: + sta $2000,y + dey + bpl linearFill_inner + + inx + cpx #192 + bne linearFill_outer + rts + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; VenetianFill +; A: Byte value to fill +; Trashes all registers +; +VenetianFill: + ldx #$3f +venetianFill_outer: + stx venetianFill_inner+2 + ldy #$00 +venetianFill_inner: + sta $2000,y ; Upper byte of address is self-modified + iny + bne venetianFill_inner + dex + cpx #$1f + bne venetianFill_outer + rts + diff --git a/hisprite.dsk b/hisprite.dsk index 99326ec..3501e39 100644 Binary files a/hisprite.dsk and b/hisprite.dsk differ diff --git a/hisprite.s b/hisprite.s index c402ea0..a270089 100644 --- a/hisprite.s +++ b/hisprite.s @@ -1,5 +1,5 @@ ; -; hgrtest.s +; hisprite.s ; ; Created by Quinn Dunki on 7/19/16 ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. @@ -65,98 +65,106 @@ main: jsr EnableHires lda #$00 - jsr LinearFill + jsr VenetianFill ldx #0 +;;;; + stz PARAM0 + stz PARAM1 + jsr BOXW_MAG + + lda #10 + sta PARAM1 + jsr BOXW_MIX + + lda #20 + sta PARAM1 + jsr BOXW_ORG + + rts +;;;; + loop: txa - asl - asl sta PARAM0 lda #0 sta PARAM1 - jsr BOX_MAG - lda #88 - sta PARAM1 - jsr BOX_GRN + lda #bgBuffer + sta PARAM3 + jsr SaveBackground - lda #96 - sta PARAM1 - jsr BOX_ORG + jsr BOXW_MAG + lda #$80 + jsr ROMWAIT - lda #184 - sta PARAM1 - jsr BOX_BLU + jsr RestoreBackground inx - cpx #35 - bne loop - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; EnableHires -; Trashes A -; -EnableHires: - lda TEXT - lda HIRES1 - lda HIRES2 - rts - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; LinearFill -; A: Byte value to fill -; Trashes all registers -; -LinearFill: - ldx #0 - -linearFill_outer: - pha - lda HGRROWS_H,x - sta linearFill_inner+2 - lda HGRROWS_L,x - sta linearFill_inner+1 - pla - - ldy #39 -linearFill_inner: - sta $2000,y - dey - bpl linearFill_inner - - inx - cpx #192 - bne linearFill_outer - rts - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; VenetianFill -; A: Byte value to fill -; Trashes all registers -; -VenetianFill: - ldx #$3f -venetianFill_outer: - stx venetianFill_inner+2 - ldy #$00 -venetianFill_inner: - sta $2000,y ; Upper byte of address is self-modified - iny - bne venetianFill_inner - dex - cpx #$1f - bne venetianFill_outer + cpx #133 +; bne loop rts +bgBuffer: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 +.include "graphics.s" .include "hgrtableX.s" .include "hgrtableY.s" .include "spritegen0.s" .include "spritegen1.s" .include "spritegen2.s" .include "spritegen3.s" +.include "spritegen4.s" ; Suppress some linker warnings - Must be the last thing in the file .SEGMENT "ZPSAVE" diff --git a/spritegen0.s b/spritegen0.s index 7724ad0..9434deb 100644 --- a/spritegen0.s +++ b/spritegen0.s @@ -1,24 +1,24 @@ -; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; 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. -BOX_MAG: ;4 bytes per row +BOXW_MAG: ;6 bytes per row SAVE_AXY ldy PARAM0 ldx MOD7_2,y - jmp (BOX_MAG_JMP,x) + jmp (BOXW_MAG_JMP,x) -BOX_MAG_JMP: - .addr BOX_MAG_SHIFT0 - .addr BOX_MAG_SHIFT1 - .addr BOX_MAG_SHIFT2 - .addr BOX_MAG_SHIFT3 - .addr BOX_MAG_SHIFT4 - .addr BOX_MAG_SHIFT5 - .addr BOX_MAG_SHIFT6 +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 -BOX_MAG_SHIFT0: +BOXW_MAG_SHIFT0: ldy PARAM0 ldx PARAM1 @@ -34,19 +34,11 @@ BOX_MAG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000001 + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -62,7 +54,12 @@ BOX_MAG_SHIFT0: lda DIV7_2,y tay - lda #%01000001 + lda #%00000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -78,7 +75,15 @@ BOX_MAG_SHIFT0: lda DIV7_2,y tay - lda #%01000001 + lda #%01010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -94,7 +99,15 @@ BOX_MAG_SHIFT0: lda DIV7_2,y tay - lda #%01000001 + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -110,7 +123,15 @@ BOX_MAG_SHIFT0: lda DIV7_2,y tay - lda #%01000001 + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -126,7 +147,36 @@ BOX_MAG_SHIFT0: lda DIV7_2,y tay - lda #%01000001 + lda #%01010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -146,6 +196,14 @@ BOX_MAG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny iny iny @@ -154,7 +212,7 @@ BOX_MAG_SHIFT0: -BOX_MAG_SHIFT1: +BOXW_MAG_SHIFT1: ldy PARAM0 ldx PARAM1 @@ -170,10 +228,15 @@ BOX_MAG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00000010 + lda #%00101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%00000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -189,11 +252,109 @@ BOX_MAG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00000010 + iny + lda #%00000100 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny inx lda HGRROWS_H,x @@ -208,85 +369,11 @@ BOX_MAG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #%00000100 ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y iny iny @@ -303,10 +390,15 @@ BOX_MAG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00000010 + lda #%00101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%00000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny RESTORE_AXY @@ -314,7 +406,7 @@ BOX_MAG_SHIFT1: -BOX_MAG_SHIFT2: +BOXW_MAG_SHIFT2: ldy PARAM0 ldx PARAM1 @@ -330,6 +422,593 @@ BOX_MAG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MAG_SHIFT3: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%01000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MAG_SHIFT4: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MAG_SHIFT5: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00101000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny lda #%00001010 ora (SCRATCH0),y sta (SCRATCH0),y @@ -345,7 +1024,33 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -364,7 +1069,12 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -383,7 +1093,12 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -402,7 +1117,12 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -421,10 +1141,12 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00001000 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny lda #%00001000 ora (SCRATCH0),y sta (SCRATCH0),y @@ -440,26 +1162,12 @@ BOX_MAG_SHIFT2: lda DIV7_2,y tay - lda #%00010000 + iny + lda #%00101000 ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01010000 + lda #%01010101 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -474,7 +1182,7 @@ BOX_MAG_SHIFT2: -BOX_MAG_SHIFT3: +BOXW_MAG_SHIFT6: ldy PARAM0 ldx PARAM1 @@ -486,7 +1194,12 @@ BOX_MAG_SHIFT3: lda DIV7_2,y tay - lda #%01000000 + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010101 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -505,10 +1218,12 @@ BOX_MAG_SHIFT3: lda DIV7_2,y tay - lda #%01000000 + iny + lda #%00100000 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny lda #%00100000 ora (SCRATCH0),y sta (SCRATCH0),y @@ -524,10 +1239,108 @@ BOX_MAG_SHIFT3: lda DIV7_2,y tay - lda #%01000000 + iny + lda #%00100000 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%01010100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%01010100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%00100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%00100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny lda #%00100000 ora (SCRATCH0),y sta (SCRATCH0),y @@ -543,83 +1356,12 @@ BOX_MAG_SHIFT3: lda DIV7_2,y tay - lda #%01000000 - ora (SCRATCH0),y - sta (SCRATCH0),y iny lda #%00100000 ora (SCRATCH0),y sta (SCRATCH0),y iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%01000000 + lda #%01010101 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -634,483 +1376,3 @@ BOX_MAG_SHIFT3: -BOX_MAG_SHIFT4: - ldy PARAM0 - - ldx PARAM1 - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - RESTORE_AXY - rts - - - -BOX_MAG_SHIFT5: - ldy PARAM0 - - ldx PARAM1 - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000101 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00001000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00101000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00000101 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - RESTORE_AXY - rts - - - -BOX_MAG_SHIFT6: - ldy PARAM0 - - ldx PARAM1 - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010101 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%00100000 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%00010101 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - RESTORE_AXY - rts - - - diff --git a/spritegen3.s b/spritegen3.s index 24b814c..ccd8a52 100644 --- a/spritegen3.s +++ b/spritegen3.s @@ -1,24 +1,24 @@ -; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; 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. -BOX_ORG: ;4 bytes per row +BOXW_ORG: ;6 bytes per row SAVE_AXY ldy PARAM0 ldx MOD7_2,y - jmp (BOX_ORG_JMP,x) + jmp (BOXW_ORG_JMP,x) -BOX_ORG_JMP: - .addr BOX_ORG_SHIFT0 - .addr BOX_ORG_SHIFT1 - .addr BOX_ORG_SHIFT2 - .addr BOX_ORG_SHIFT3 - .addr BOX_ORG_SHIFT4 - .addr BOX_ORG_SHIFT5 - .addr BOX_ORG_SHIFT6 +BOXW_ORG_JMP: + .addr BOXW_ORG_SHIFT0 + .addr BOXW_ORG_SHIFT1 + .addr BOXW_ORG_SHIFT2 + .addr BOXW_ORG_SHIFT3 + .addr BOXW_ORG_SHIFT4 + .addr BOXW_ORG_SHIFT5 + .addr BOXW_ORG_SHIFT6 -BOX_ORG_SHIFT0: +BOXW_ORG_SHIFT0: ldy PARAM0 ldx PARAM1 @@ -34,10 +34,15 @@ BOX_ORG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000001 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -53,11 +58,109 @@ BOX_ORG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000001 + iny + lda #%10000010 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10010000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny inx lda HGRROWS_H,x @@ -72,85 +175,11 @@ BOX_ORG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000001 - ora (SCRATCH0),y - sta (SCRATCH0),y iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - lda #%10000010 ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000001 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000001 - ora (SCRATCH0),y - sta (SCRATCH0),y iny iny @@ -167,10 +196,15 @@ BOX_ORG_SHIFT0: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000001 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10000010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny RESTORE_AXY @@ -178,7 +212,7 @@ BOX_ORG_SHIFT0: -BOX_ORG_SHIFT1: +BOXW_ORG_SHIFT1: ldy PARAM0 ldx PARAM1 @@ -194,10 +228,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000101 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -213,11 +252,13 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + iny + lda #%10001000 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny inx lda HGRROWS_H,x @@ -232,10 +273,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -251,10 +297,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + lda #%11000001 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -270,10 +321,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + lda #%11000001 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -289,10 +345,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -308,11 +369,13 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000100 + iny + lda #%10001000 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny inx lda HGRROWS_H,x @@ -327,10 +390,15 @@ BOX_ORG_SHIFT1: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000101 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny RESTORE_AXY @@ -338,7 +406,7 @@ BOX_ORG_SHIFT1: -BOX_ORG_SHIFT2: +BOXW_ORG_SHIFT2: ldy PARAM0 ldx PARAM1 @@ -354,10 +422,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010101 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -373,11 +446,13 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + iny + lda #%10100000 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny inx lda HGRROWS_H,x @@ -392,10 +467,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + lda #%11010100 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -411,10 +491,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + lda #%10000100 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -430,10 +515,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + lda #%10000100 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -449,10 +539,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + lda #%11010100 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10100010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny inx @@ -468,11 +563,13 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010000 + iny + lda #%10100000 ora (SCRATCH0),y sta (SCRATCH0),y iny iny + iny inx lda HGRROWS_H,x @@ -487,10 +584,15 @@ BOX_ORG_SHIFT2: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10010101 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny iny RESTORE_AXY @@ -498,7 +600,7 @@ BOX_ORG_SHIFT2: -BOX_ORG_SHIFT3: +BOXW_ORG_SHIFT3: ldy PARAM0 ldx PARAM1 @@ -515,19 +617,11 @@ BOX_ORG_SHIFT3: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%11000001 + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -543,7 +637,12 @@ BOX_ORG_SHIFT3: tay iny - lda #%11000001 + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -559,7 +658,15 @@ BOX_ORG_SHIFT3: tay iny - lda #%11000001 + lda #%11010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -575,7 +682,15 @@ BOX_ORG_SHIFT3: tay iny - lda #%11000001 + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -591,7 +706,15 @@ BOX_ORG_SHIFT3: tay iny - lda #%11000001 + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -607,7 +730,36 @@ BOX_ORG_SHIFT3: tay iny - lda #%11000001 + lda #%11010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000001 ora (SCRATCH0),y sta (SCRATCH0),y iny @@ -627,6 +779,14 @@ BOX_ORG_SHIFT3: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny iny RESTORE_AXY @@ -634,7 +794,7 @@ BOX_ORG_SHIFT3: -BOX_ORG_SHIFT4: +BOXW_ORG_SHIFT4: ldy PARAM0 ldx PARAM1 @@ -651,10 +811,15 @@ BOX_ORG_SHIFT4: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000010 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -670,10 +835,108 @@ BOX_ORG_SHIFT4: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000010 + iny + lda #%10000100 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10101010 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -689,85 +952,11 @@ BOX_ORG_SHIFT4: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - iny lda #%10000100 ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%10000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%10000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%10000100 - ora (SCRATCH0),y - sta (SCRATCH0),y - iny - lda #%10000010 - ora (SCRATCH0),y - sta (SCRATCH0),y iny inx @@ -784,17 +973,22 @@ BOX_ORG_SHIFT4: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10000010 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny RESTORE_AXY rts -BOX_ORG_SHIFT5: +BOXW_ORG_SHIFT5: ldy PARAM0 ldx PARAM1 @@ -811,10 +1005,15 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001010 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -830,10 +1029,12 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + iny + lda #%10010000 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny inx lda HGRROWS_H,x @@ -849,10 +1050,15 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -868,10 +1074,15 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + lda #%10000010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -887,10 +1098,15 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + lda #%10000010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -906,10 +1122,15 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -925,10 +1146,12 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001000 + iny + lda #%10010000 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny inx lda HGRROWS_H,x @@ -944,17 +1167,22 @@ BOX_ORG_SHIFT5: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10001010 + lda #%10101010 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%10010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny RESTORE_AXY rts -BOX_ORG_SHIFT6: +BOXW_ORG_SHIFT6: ldy PARAM0 ldx PARAM1 @@ -975,24 +1203,10 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - - inx - lda HGRROWS_H,x - sta SCRATCH1 - lda HGRROWS_L,x - sta SCRATCH0 - ldy PARAM0 - lda DIV7_2,y - tay - - iny - lda #%11000000 + lda #%11010101 ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 - ora (SCRATCH0),y - sta (SCRATCH0),y iny inx @@ -1009,10 +1223,12 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 + iny + lda #%11000000 ora (SCRATCH0),y sta (SCRATCH0),y iny + iny inx lda HGRROWS_H,x @@ -1028,10 +1244,15 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 + lda #%10101000 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%11000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -1047,10 +1268,15 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 + lda #%10001000 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -1066,10 +1292,15 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 + lda #%10001000 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%11000100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -1085,10 +1316,36 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny - lda #%10100000 + lda #%10101000 ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%11000101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny inx lda HGRROWS_H,x @@ -1108,6 +1365,11 @@ BOX_ORG_SHIFT6: ora (SCRATCH0),y sta (SCRATCH0),y iny + lda #%11010101 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny RESTORE_AXY rts diff --git a/spritegen4.s b/spritegen4.s new file mode 100644 index 0000000..30bce90 --- /dev/null +++ b/spritegen4.s @@ -0,0 +1,1408 @@ + +; 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_MIX: ;6 bytes per row + SAVE_AXY + ldy PARAM0 + ldx MOD7_2,y + jmp (BOXW_MIX_JMP,x) + +BOXW_MIX_JMP: + .addr BOXW_MIX_SHIFT0 + .addr BOXW_MIX_SHIFT1 + .addr BOXW_MIX_SHIFT2 + .addr BOXW_MIX_SHIFT3 + .addr BOXW_MIX_SHIFT4 + .addr BOXW_MIX_SHIFT5 + .addr BOXW_MIX_SHIFT6 + + +BOXW_MIX_SHIFT0: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT1: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11111100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11111100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT2: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT3: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11001111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11001111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + lda #%11000000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT4: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11111110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10110000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10000110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11111110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10000111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT5: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11111000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11000011 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011001 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%10011000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11111000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10011111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts + + + +BOXW_MIX_SHIFT6: + ldy PARAM0 + + ldx PARAM1 + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%10001100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100110 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111100 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11100111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + inx + lda HGRROWS_H,x + sta SCRATCH1 + lda HGRROWS_L,x + sta SCRATCH0 + ldy PARAM0 + lda DIV7_2,y + tay + + iny + lda #%11100000 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + lda #%11111111 + ora (SCRATCH0),y + sta (SCRATCH0),y + iny + iny + + RESTORE_AXY + rts + + +