From 7eb3f6fdd70d1aac86d1d438f2b9590ec0ca4488 Mon Sep 17 00:00:00 2001 From: Quinn Dunki Date: Wed, 21 Dec 2016 14:03:28 -0800 Subject: [PATCH] Added support for the color white --- .gitignore | 2 + HiSprite.py | 47 +- HiSprite.xcodeproj/project.pbxproj | 4 + .../UserInterfaceState.xcuserstate | Bin 13353 -> 0 bytes boxw_mag.png | Bin 0 -> 205 bytes boxw_mix.png | Bin 0 -> 204 bytes boxw_org.png | Bin 0 -> 206 bytes graphics.s | 205 +++ hisprite.dsk | Bin 143360 -> 143360 bytes hisprite.s | 152 +- spritegen0.s | 1634 ++++++++++------- spritegen3.s | 728 +++++--- spritegen4.s | 1408 ++++++++++++++ 13 files changed, 3175 insertions(+), 1005 deletions(-) delete mode 100644 HiSprite.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 boxw_mag.png create mode 100644 boxw_mix.png create mode 100644 boxw_org.png create mode 100644 graphics.s create mode 100644 spritegen4.s 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 beaa665814b217c4b9f044e4ca3be7a3c4b8196b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13353 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 literal 0 HcmV?d00001 diff --git a/boxw_mix.png b/boxw_mix.png new file mode 100644 index 0000000000000000000000000000000000000000..a321548fa459f33aa2060b2a34696fb9e9426b35 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!`~6$}iSM_r|XBAf*t zk;M!Q+`=Ht$S`Y;1W=H@#M9T6{Q-}th?-GGqf#4CNH#MhqQp5rH#aq}1juDza4t$s zEJ;mKD9TWe18Ic)B=-a9l6#bL3-i;9<=C^Z)d>3*9N%c^(e8Ei9RD p|4N?3p!PND^nwLu%ij3jcxQKoO^8=(Hsdmop`NaOF6*2UngH$)H{k#P literal 0 HcmV?d00001 diff --git a/boxw_org.png b/boxw_org.png new file mode 100644 index 0000000000000000000000000000000000000000..42f1286a8df161748314526687a20f1046c60541 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&pIsM^so(`uS3|bfA!IW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6gTp8aSY+Op8O~NV1sPJ)F1H&4>W0>y>ajW5VV|W=Wt{Y n=95lvON=_!l%r>qaO7zWg8?fyqo?XZUXZb#u6{1-oD!Mt4!p(?fp(v(RWB!d{&{1n)DBhGL_ycBD3@Q~2RE3Ma1c=}$31v`4 zN}0kLqsWaqD0&vQT$sQmAp*@rBd$xTLh?1720WvSrokHLYu%lF~mKkCqKCx6>!$2Vx0#loG9T8Zrxpzi1VO z(Hm>c>4~>3f!UGhyPddXjgBNO&%Fh# zzcJJQOs4E(9St~U_xV6<3TBh2Fe)yuVPV&^1V^sfWT<7U7)-6jRYxUd%bqJN);0K!Gcf-%wMfZ(QdY6<3hA@oiYHHFt-kS%-y3i5sL%sr_k zSh0<4=rLhB177$ph!TpKD1f}{BEfk9ldyg%C+D(b5$jYRw1G(EWeDbKs#t7em`HDX=C2h z;txX?H(uR%>W#ro=Qe-)<_}wbev2Fs6`3No>}#aD*WesSgpLO+oF%xvHrPnxQxN%k zCv`yE?S49d4Z`OvHf5!_c<;e8oA_cXM&r8>ik9E%83c|Q`b7DasnvyB@LJ!`kSJVX(p+n56NWCGh; z-9$AFxO=sArWiB;(+^Qy(|{s9F?rXScy5CIuig)Q#eV2_ zaD9q57CML8wLYNIfoudmsatFC6IB7Qy~epNPW=ffi10nMH05A8!C8Gk-7TgW_APFO zI>WN7sEdk|TaT&BnO;9ip)WP+)rz{qK%jEF`zP6#>&~yc@XC*`URi(QwXZe|y`FQD z;i(^{NHc^f3LkPNJ=Uv4p;wt6sWS(5&&5qr4uRaIh21P>{q~@a{!NdrM>w70>U0#F3^)tB! z#5J4L4*@z$PgF4PmFv&8n{AJ6UB4~8{TfTOKfe>V18}h)#03!TQs~)G7o+0PH>+!H z@d)>QH05AinJVPU7$_ZctRZ6m{D-R`_6XrQfH}Q?NAkD$F%x{O>dLP0tM?pp%uoFx+g$V>i)Ku`@;AsAodH2X@ zKr(8rx$$>_4<&;@{V@gi3+9vI2WH?eV0qGTXc+Y|!Z0r7#t>>4{06vn5JU%rO(+BU z`9}s^kpBWepTDSv(IswnO)w$ykBlf_c;v~he18gdRja|1<{X5tm4lD#gYeI5IQ$)- z0{YUdDh;YGgDT;yKfN64IM#7}*MqyQJwJ8M>RS3v&h!Fp1*1j5RMeV5MVyi{w_tmp z7KS?d_reOk;OXVys>dRXqTAW@-AsLk!PXZJRrAm%3$sC)Lrq5hh2smvtrdZELh(+6 zuRUq!^vA@(F%0CW$R@xMu&CZmX}0Cyg}|L)nFfmBio~V;H(PkFrif)Q-nsY+NkL#& zs4x&uWD#*a5Jf~Bn*_sXiqfRojms~BTU{Xh^H(ogpkGbDK2V#qqT&pOQQxD1hiD2P z*r`lFvv8IV)#z@^q877OuZ)nIZ9SOXRM?j&Ps`Hox$FYQ5WkGO&vrx1NmG^k0GkbJi`o-jysC>Tm_Wd5{NcjZUF>^Aw9(C~W&a(farZ9nkP}xPiUg2ufodLe{;20oiV0glzqt^PD;zLQoJJ<=l z8}eTm7;4v4LQr8;oG|QdaFJlc?@ciGoG_;5V_#|vxcoOTFa!byZ=DB$lYi5Lmn0m# zX`uA@cwvPSSI{uJ#CJpfDU-y#&s^g!{|8(f194CaN-Ye&E)Kvh{!LNVE>KHq426rb zSrtDECdY@X3;LYNaPP$#;=LWmf6OiA&j>hz7sB6-6adcUD2e((O-SZg^>mR{+3meQ wR@p+lhUBnHs3h}aYP`xfl>=}@#hmr(seryDEEh*h1e!~|-hB1w)sm+F0dL)I=>Px# delta 10467 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 R9mBlsS-R!Z&QA@G{2vk`+MfUb 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 + + +