commit 9a4c4b7b8562b950e2f26ecbfab006871f40ad78 Author: Quinn Dunki Date: Sat Sep 10 10:53:34 2016 -0700 Initial commit The sprite generator basically works for the four primary hires colors. The included sample program renders all the sample sprites in various places on screen. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ca42bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/spritedemo.lst +/.DS_Store diff --git a/AppleCommander.jar b/AppleCommander.jar new file mode 100644 index 0000000..f74e7cb Binary files /dev/null and b/AppleCommander.jar differ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e8ac0f4 --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +# +# Makefile +# HGR +# +# Created by Quinn Dunki on 7/19/16 +# One Girl, One Laptop Productions +# http://www.quinndunki.com +# http://www.quinndunki.com/blondihacks +# + + +CL65=cl65 +AC=AppleCommander.jar +ADDR=6000 + +PGM=spritedemo + +all: $(PGM) + + +$(PGM): + @PATH=$(PATH):/usr/local/bin; $(CL65) -t apple2enh --start-addr $(ADDR) -l$(PGM).lst $(PGM).s + java -jar $(AC) -d $(PGM).dsk $(PGM) + java -jar $(AC) -p $(PGM).dsk $(PGM) BIN 0x$(ADDR) < $(PGM) + rm -f $(PGM) + rm -f $(PGM).o + osascript V2Make.scpt $(PROJECT_DIR) $(PGM) + +clean: + rm -f $(PGM) + rm -f $(PGM).o + diff --git a/README.md b/README.md new file mode 100644 index 0000000..94b1757 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# SpriteGen diff --git a/SpriteGen.xcodeproj/project.pbxproj b/SpriteGen.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1b894c3 --- /dev/null +++ b/SpriteGen.xcodeproj/project.pbxproj @@ -0,0 +1,207 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXFileReference section */ + 701B5DF81D8478B500E6D330 /* spritedemo.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritedemo.s; sourceTree = ""; }; + 701B5DF91D847ADA00E6D330 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 701B5DFB1D847B4100E6D330 /* hgrtableY.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtableY.s; sourceTree = ""; }; + 701B5DFC1D847B6D00E6D330 /* SpriteGenerator.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = SpriteGenerator.py; sourceTree = ""; }; + 701B5DFD1D847C3900E6D330 /* spritegen0.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen0.s; sourceTree = ""; }; + 701B5DFE1D847C3900E6D330 /* spritegen1.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen1.s; sourceTree = ""; }; + 701B5DFF1D847C3900E6D330 /* spritegen2.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen2.s; sourceTree = ""; }; + 701B5E001D847C3900E6D330 /* spritegen3.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spritegen3.s; sourceTree = ""; }; + 701B5E011D847D9A00E6D330 /* hgrtableX.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtableX.s; sourceTree = ""; }; + 701B5E021D847ED300E6D330 /* macros.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = macros.s; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 701B5DED1D84788F00E6D330 = { + isa = PBXGroup; + children = ( + 701B5DF91D847ADA00E6D330 /* Makefile */, + 701B5DFC1D847B6D00E6D330 /* SpriteGenerator.py */, + 701B5E021D847ED300E6D330 /* macros.s */, + 701B5DF81D8478B500E6D330 /* spritedemo.s */, + 701B5E011D847D9A00E6D330 /* hgrtableX.s */, + 701B5DFB1D847B4100E6D330 /* hgrtableY.s */, + 701B5DFD1D847C3900E6D330 /* spritegen0.s */, + 701B5DFE1D847C3900E6D330 /* spritegen1.s */, + 701B5DFF1D847C3900E6D330 /* spritegen2.s */, + 701B5E001D847C3900E6D330 /* spritegen3.s */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXLegacyTarget section */ + 701B5DF21D84788F00E6D330 /* SpriteGen */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "$(ACTION)"; + buildConfigurationList = 701B5DF51D84788F00E6D330 /* Build configuration list for PBXLegacyTarget "SpriteGen" */; + buildPhases = ( + ); + buildToolPath = /usr/bin/make; + dependencies = ( + ); + name = SpriteGen; + passBuildSettingsInEnvironment = 1; + productName = SpriteGen; + }; +/* End PBXLegacyTarget section */ + +/* Begin PBXProject section */ + 701B5DEE1D84788F00E6D330 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = "Quinn Dunki"; + TargetAttributes = { + 701B5DF21D84788F00E6D330 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 701B5DF11D84788F00E6D330 /* Build configuration list for PBXProject "SpriteGen" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 701B5DED1D84788F00E6D330; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 701B5DF21D84788F00E6D330 /* SpriteGen */, + ); + }; +/* End PBXProject section */ + +/* Begin XCBuildConfiguration section */ + 701B5DF31D84788F00E6D330 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + }; + name = Debug; + }; + 701B5DF41D84788F00E6D330 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + }; + name = Release; + }; + 701B5DF61D84788F00E6D330 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUGGING_SYMBOLS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 701B5DF71D84788F00E6D330 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 701B5DF11D84788F00E6D330 /* Build configuration list for PBXProject "SpriteGen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 701B5DF31D84788F00E6D330 /* Debug */, + 701B5DF41D84788F00E6D330 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 701B5DF51D84788F00E6D330 /* Build configuration list for PBXLegacyTarget "SpriteGen" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 701B5DF61D84788F00E6D330 /* Debug */, + 701B5DF71D84788F00E6D330 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 701B5DEE1D84788F00E6D330 /* Project object */; +} diff --git a/SpriteGen.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SpriteGen.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..76371e5 --- /dev/null +++ b/SpriteGen.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SpriteGen.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate b/SpriteGen.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..9d292cd Binary files /dev/null and b/SpriteGen.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/SpriteGen.xcscheme b/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/SpriteGen.xcscheme new file mode 100644 index 0000000..4bb114a --- /dev/null +++ b/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/SpriteGen.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/xcschememanagement.plist b/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..3700b2e --- /dev/null +++ b/SpriteGen.xcodeproj/xcuserdata/qd.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + SpriteGen.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 701B5DF21D84788F00E6D330 + + primary + + + + + diff --git a/SpriteGenerator.py b/SpriteGenerator.py new file mode 100755 index 0000000..4eedb45 --- /dev/null +++ b/SpriteGenerator.py @@ -0,0 +1,182 @@ +#!/usr/bin/python + +import sys,os,png + +class Colors: + black,magenta,green,orange,blue = range(5) + + + +def main(argv): + + if len(argv)<1: + printHorzontalLookup() + exit(0) + + pngfile = sys.argv[1] + + reader = png.Reader(pngfile) + try: + pngdata = reader.asRGB8() + except: + usage() + + disclaimer() + + width = pngdata[0] + height = pngdata[1] + pixeldata = pngdata[2] + byteWidth = width/2+1+1 # TODO: Calculate a power of two for this + + for shift in range(0,7): + print "%s_SHIFT%d: ;%d bytes per row" % (os.path.splitext(pngfile)[0].upper(),shift,byteWidth) + + spriteChunks = layoutSpriteChunk(pixeldata,width,height,shift) + + for row in range(height): + for chunkIndex in range(len(spriteChunks)): + print spriteChunks[chunkIndex][row] + + print "\n" + + + + +def layoutSpriteChunk(pixeldata,width,height,shift): + + bitmap = [[0 for x in range(width)] for y in range(height)] + + byteWidth = width/2+1+1 # TODO: Calculate a power of two for this + spriteChunks = [["" for y in range(height)] for x in range(byteWidth)] + + for row in range(height): + pixelRow = bitmap[row] + bitStream = "" + + 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" + else: + bitStream += "10" + + bitStream = shiftStringRight(bitStream,shift) + bitStream = bitStream[:byteWidth*8] + + bitPos = 0 + byteSplits = [0 for x in range(byteWidth)] + + for byteIndex in range(byteWidth): + remainingBits = len(bitStream) - bitPos + + bitChunk = "" + + if remainingBits < 0: + bitChunk = "0000000" + else: + if remainingBits < 7: + bitChunk = bitStream[bitPos:] + bitChunk += fillOutByte(7-remainingBits) + else: + bitChunk = bitStream[bitPos:bitPos+7] + + bitChunk = bitChunk[::-1] + + highBit = "0" + if pixel == Colors.orange or pixel == Colors.blue: + highBit = "1" + + byteSplits[byteIndex] = highBit + bitChunk + bitPos += 7 + + for chunkIndex in range(len(byteSplits)): + spriteChunks[chunkIndex][row] = ".byte %%%s" % byteSplits[chunkIndex] + + return spriteChunks + + + +def fillOutByte(numBits): + filler = "" + for bit in range(numBits): + filler += "0" + + return filler + + +def shiftStringRight(string,shift): + if shift==0: + return string + + shift *=2 + result = "" + + for i in range(shift): + result += "0" + + result += string + return result + + +def pixelColor(pixeldata,row,col): + r = pixeldata[row][col*3] + g = pixeldata[row][col*3+1] + b = pixeldata[row][col*3+2] + color = Colors.black + + if r==255 and g==0 and b==255: + color = Colors.magenta + else: + if r==0 and g==255 and b==0: + color = Colors.green + else: + if r==0 and g==0 and b==255: + color = Colors.blue + else: + if r==255 and g>0 and b==0: + color = Colors.orange + + return color + + +def printHorzontalLookup(): + disclaimer() + + print "HGRROWBYTES:" + for byte in range(40): + pixels = 4 + offset = 0 + if (byte%2): + pixels = 3 + offset = -1 + + for entry in range(pixels): + print "\t.byte $%02x" % (byte + offset) + + print "\nHGRROWBYTES_BITSHIFT:" + for pixel in range(140): + print "\t.byte $%02x" % ((pixel % 7)*32) # 32 = 4 shifts of 8 bytes + + +def usage(): + print ''' +Usage: HiSprite + +PNG file must not have an alpha channel! +''' + sys.exit(2) + + +def disclaimer(): + print ''' +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. +''' + return + +if __name__ == "__main__": + main(sys.argv[1:]) + \ No newline at end of file diff --git a/V2Make.scpt b/V2Make.scpt new file mode 100644 index 0000000..9ad631e Binary files /dev/null and b/V2Make.scpt differ diff --git a/box_blu.png b/box_blu.png new file mode 100644 index 0000000..27c6232 Binary files /dev/null and b/box_blu.png differ diff --git a/box_grn.png b/box_grn.png new file mode 100644 index 0000000..24a4412 Binary files /dev/null and b/box_grn.png differ diff --git a/box_mag.png b/box_mag.png new file mode 100644 index 0000000..910a995 Binary files /dev/null and b/box_mag.png differ diff --git a/box_org.png b/box_org.png new file mode 100644 index 0000000..1b3ba57 Binary files /dev/null and b/box_org.png differ diff --git a/hgrtableX.s b/hgrtableX.s new file mode 100644 index 0000000..9d0a7da --- /dev/null +++ b/hgrtableX.s @@ -0,0 +1,287 @@ + +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. + +HGRROWBYTES: + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $02 + .byte $02 + .byte $02 + .byte $02 + .byte $02 + .byte $02 + .byte $02 + .byte $04 + .byte $04 + .byte $04 + .byte $04 + .byte $04 + .byte $04 + .byte $04 + .byte $06 + .byte $06 + .byte $06 + .byte $06 + .byte $06 + .byte $06 + .byte $06 + .byte $08 + .byte $08 + .byte $08 + .byte $08 + .byte $08 + .byte $08 + .byte $08 + .byte $0a + .byte $0a + .byte $0a + .byte $0a + .byte $0a + .byte $0a + .byte $0a + .byte $0c + .byte $0c + .byte $0c + .byte $0c + .byte $0c + .byte $0c + .byte $0c + .byte $0e + .byte $0e + .byte $0e + .byte $0e + .byte $0e + .byte $0e + .byte $0e + .byte $10 + .byte $10 + .byte $10 + .byte $10 + .byte $10 + .byte $10 + .byte $10 + .byte $12 + .byte $12 + .byte $12 + .byte $12 + .byte $12 + .byte $12 + .byte $12 + .byte $14 + .byte $14 + .byte $14 + .byte $14 + .byte $14 + .byte $14 + .byte $14 + .byte $16 + .byte $16 + .byte $16 + .byte $16 + .byte $16 + .byte $16 + .byte $16 + .byte $18 + .byte $18 + .byte $18 + .byte $18 + .byte $18 + .byte $18 + .byte $18 + .byte $1a + .byte $1a + .byte $1a + .byte $1a + .byte $1a + .byte $1a + .byte $1a + .byte $1c + .byte $1c + .byte $1c + .byte $1c + .byte $1c + .byte $1c + .byte $1c + .byte $1e + .byte $1e + .byte $1e + .byte $1e + .byte $1e + .byte $1e + .byte $1e + .byte $20 + .byte $20 + .byte $20 + .byte $20 + .byte $20 + .byte $20 + .byte $20 + .byte $22 + .byte $22 + .byte $22 + .byte $22 + .byte $22 + .byte $22 + .byte $22 + .byte $24 + .byte $24 + .byte $24 + .byte $24 + .byte $24 + .byte $24 + .byte $24 + .byte $26 + .byte $26 + .byte $26 + .byte $26 + .byte $26 + .byte $26 + .byte $26 + +HGRROWBYTES_BITSHIFT: + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 + .byte $00 + .byte $20 + .byte $40 + .byte $60 + .byte $80 + .byte $a0 + .byte $c0 diff --git a/hgrtableY.s b/hgrtableY.s new file mode 100644 index 0000000..24aed08 --- /dev/null +++ b/hgrtableY.s @@ -0,0 +1,444 @@ +; +; hgrtableY.s +; +; Created by Quinn Dunki on 7/19/16 +; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +; + +HGRROWS_H: + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F +; + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F +;; + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $20 + .byte $24 + .byte $28 + .byte $2C + .byte $30 + .byte $34 + .byte $38 + .byte $3C + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $21 + .byte $25 + .byte $29 + .byte $2D + .byte $31 + .byte $35 + .byte $39 + .byte $3D + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $22 + .byte $26 + .byte $2A + .byte $2E + .byte $32 + .byte $36 + .byte $3A + .byte $3E + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F + + .byte $23 + .byte $27 + .byte $2B + .byte $2F + .byte $33 + .byte $37 + .byte $3B + .byte $3F + + + +HGRROWS_L: + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + .byte $00 + + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 + .byte $80 +; + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + .byte $28 + + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 + .byte $A8 +;; + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + .byte $50 + + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + .byte $D0 + + diff --git a/hgrtest.lst b/hgrtest.lst new file mode 100644 index 0000000..05c7dcf --- /dev/null +++ b/hgrtest.lst @@ -0,0 +1,6535 @@ +ca65 V2.13.3 - (C) Copyright 1998-2012 Ullrich von Bassewitz +Main file : hgrtest.s +Current file: hgrtest.s + +000000r 1 ; +000000r 1 ; hgrtest.s +000000r 1 ; +000000r 1 ; Created by Quinn Dunki on 7/19/16 +000000r 1 ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +000000r 1 ; +000000r 1 +000000r 1 +000000r 1 .org $6000 +006000 1 +006000 1 .include "macros.s" +006000 2 ; +006000 2 ; macros.s +006000 2 ; Generally useful macros for 6502 code +006000 2 ; +006000 2 ; Created by Quinn Dunki on 8/15/14. +006000 2 ; Copyright (c) 2014 One Girl, One Laptop Productions. All rights reserved. +006000 2 ; +006000 2 +006000 2 +006000 2 ; Macros +006000 2 +006000 2 .macro SETSWITCH name ; Sets the named softswitch (assumes write method) +006000 2 sta name +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_AXY ; Saves all registers +006000 2 pha +006000 2 phx +006000 2 phy +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_AXY ; Restores all registers +006000 2 ply +006000 2 plx +006000 2 pla +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_AY ; Saves accumulator and Y index +006000 2 pha +006000 2 phy +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_AY ; Restores accumulator and Y index +006000 2 ply +006000 2 pla +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_AX ; Saves accumulator and X index +006000 2 pha +006000 2 phx +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_AX ; Restores accumulator and X index +006000 2 plx +006000 2 pla +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_XY ; Saves X and Y index +006000 2 phx +006000 2 phy +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_XY ; Restores X and Y index +006000 2 ply +006000 2 plx +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_ZPP ; Saves Zero Page locations we use for parameters +006000 2 lda PARAM0 +006000 2 pha +006000 2 lda PARAM1 +006000 2 pha +006000 2 lda PARAM2 +006000 2 pha +006000 2 lda PARAM3 +006000 2 pha +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_ZPP ; Restores Zero Page locations we use for parameters +006000 2 pla +006000 2 sta PARAM3 +006000 2 pla +006000 2 sta PARAM2 +006000 2 pla +006000 2 sta PARAM1 +006000 2 pla +006000 2 sta PARAM0 +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro SAVE_ZPS ; Saves Zero Page locations we use for scratch +006000 2 lda SCRATCH0 +006000 2 pha +006000 2 lda SCRATCH1 +006000 2 pha +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro RESTORE_ZPS ; Restores Zero Page locations we use for scratch +006000 2 pla +006000 2 sta SCRATCH1 +006000 2 pla +006000 2 sta SCRATCH0 +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro PARAM16 addr +006000 2 lda #addr +006000 2 sta PARAM1 +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro CALL16 func,addr +006000 2 PARAM16 addr +006000 2 jsr func +006000 2 .endmacro +006000 2 +006000 2 +006000 2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +006000 2 ; Rendering macros +006000 2 ; +006000 2 +006000 2 +006000 2 .macro LDY_AVIEW +006000 2 asl ; Find our new view record +006000 2 asl +006000 2 asl +006000 2 asl ; Records are 16 bytes wide +006000 2 tay +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro LDY_ACTIVEVIEW +006000 2 lda WG_ACTIVEVIEW ; Find our new view record +006000 2 LDY_AVIEW +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro LDX_ACTIVEVIEW +006000 2 lda WG_ACTIVEVIEW ; Find our new view record +006000 2 asl +006000 2 asl +006000 2 asl +006000 2 asl ; Records are 16 bytes wide +006000 2 tax +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro LDY_FOCUSVIEW +006000 2 lda WG_FOCUSVIEW ; Find our new view record +006000 2 LDY_AVIEW +006000 2 .endmacro +006000 2 +006000 2 +006000 2 .macro VBL_SYNC ; Synchronize with vertical blanking +006000 2 lda #$80 +006000 2 ;macroWaitVBLToFinish: +006000 2 ; bit RDVBLBAR +006000 2 ; bmi macroWaitVBLToFinish +006000 2 @macroWaitVBLToStart: +006000 2 ; bit RDVBLBAR +006000 2 ; bpl @macroWaitVBLToStart +006000 2 .endmacro +006000 2 +006000 1 +006000 1 ; Softswitches +006000 1 TEXT = $c050 +006000 1 HIRES1 = $c057 +006000 1 HIRES2 = $c058 +006000 1 +006000 1 +006000 1 ; ROM entry points +006000 1 COUT = $fded +006000 1 ROMWAIT = $fca8 +006000 1 +006000 1 ; Zero page locations we use (unused by Monitor, Applesoft, or ProDOS) +006000 1 PARAM0 = $06 +006000 1 PARAM1 = $07 +006000 1 PARAM2 = $08 +006000 1 PARAM3 = $09 +006000 1 SCRATCH0 = $19 +006000 1 SCRATCH1 = $1a +006000 1 +006000 1 ; Macros +006000 1 .macro BLITBYTE xPos,yPos,addr +006000 1 lda #xPos +006000 1 sta PARAM0 +006000 1 lda #yPos +006000 1 sta PARAM1 +006000 1 lda #addr +006000 1 sta PARAM3 +006000 1 jsr BlitSpriteOnByte +006000 1 .endmacro +006000 1 +006000 1 .macro BLIT xPos,yPos,addr +006000 1 lda #xPos +006000 1 sta PARAM0 +006000 1 lda #yPos +006000 1 sta PARAM1 +006000 1 lda #addr +006000 1 sta PARAM3 +006000 1 jsr BlitSprite +006000 1 .endmacro +006000 1 +006000 1 +006000 1 .macro WAIT +006000 1 lda #$80 +006000 1 jsr $fca8 +006000 1 .endmacro +006000 1 +006000 1 +006000 1 +006000 1 main: +006000 1 20 A1 60 jsr EnableHires +006003 1 +006003 1 A9 00 lda #$00 +006005 1 20 AB 60 jsr LinearFill +006008 1 +006008 1 .if 0 +006008 1 stz PARAM0 +006008 1 stz PARAM1 +006008 1 jsr BOX_ORG_SHIFT0 +006008 1 .endif +006008 1 +006008 1 .if 1 +006008 1 +006008 1 A2 00 ldx #0 +00600A 1 loop: +00600A 1 8A txa +00600B 1 0A asl +00600C 1 0A asl +00600D 1 85 06 sta PARAM0 +00600F 1 A9 00 lda #0 +006011 1 85 07 sta PARAM1 +006013 1 20 74 65 jsr BOX_MAG +006016 1 +006016 1 A9 58 lda #88 +006018 1 85 07 sta PARAM1 +00601A 1 20 8E 6C jsr BOX_GRN +00601D 1 +00601D 1 A9 60 lda #96 +00601F 1 85 07 sta PARAM1 +006021 1 20 A8 73 jsr BOX_ORG +006024 1 +006024 1 A9 B8 lda #184 +006026 1 85 07 sta PARAM1 +006028 1 20 C2 7A jsr BOX_BLU +00602B 1 +00602B 1 E8 inx +00602C 1 E0 23 cpx #35 +00602E 1 D0 DA bne loop +006030 1 +006030 1 .endif +006030 1 +006030 1 +006030 1 .if 0 +006030 1 +006030 1 ldx #0 +006030 1 loop: +006030 1 txa +006030 1 asl +006030 1 asl +006030 1 sta PARAM0 +006030 1 lda #0 +006030 1 sta PARAM1 +006030 1 lda #BOX_MAG_SHIFT0 +006030 1 sta PARAM3 +006030 1 jsr BlitSprite +006030 1 +006030 1 lda #88 +006030 1 sta PARAM1 +006030 1 lda #BOX_GRN_SHIFT0 +006030 1 sta PARAM3 +006030 1 jsr BlitSprite +006030 1 +006030 1 lda #96 +006030 1 sta PARAM1 +006030 1 lda #BOX_BLU_SHIFT0 +006030 1 sta PARAM3 +006030 1 jsr BlitSprite +006030 1 +006030 1 lda #184 +006030 1 sta PARAM1 +006030 1 lda #BOX_ORG_SHIFT0 +006030 1 sta PARAM3 +006030 1 jsr BlitSprite +006030 1 +006030 1 ; lda #$ff +006030 1 ; jsr ROMWAIT +006030 1 +006030 1 inx +006030 1 cpx #35 +006030 1 bne loop +006030 1 +006030 1 .endif +006030 1 .if 0 +006030 1 BLITBYTE 0,80,BOX_MAG_SHIFT0_CHUNK0 +006030 1 BLITBYTE 1,80,BOX_MAG_SHIFT0_CHUNK1 +006030 1 BLITBYTE 2,80,BOX_MAG_SHIFT0_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,90,BOX_MAG_SHIFT1_CHUNK0 +006030 1 BLITBYTE 1,90,BOX_MAG_SHIFT1_CHUNK1 +006030 1 BLITBYTE 2,90,BOX_MAG_SHIFT1_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,100,BOX_MAG_SHIFT2_CHUNK0 +006030 1 BLITBYTE 1,100,BOX_MAG_SHIFT2_CHUNK1 +006030 1 BLITBYTE 2,100,BOX_MAG_SHIFT2_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,110,BOX_MAG_SHIFT3_CHUNK0 +006030 1 BLITBYTE 1,110,BOX_MAG_SHIFT3_CHUNK1 +006030 1 BLITBYTE 2,110,BOX_MAG_SHIFT3_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,120,BOX_MAG_SHIFT4_CHUNK0 +006030 1 BLITBYTE 1,120,BOX_MAG_SHIFT4_CHUNK1 +006030 1 BLITBYTE 2,120,BOX_MAG_SHIFT4_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,130,BOX_MAG_SHIFT5_CHUNK0 +006030 1 BLITBYTE 1,130,BOX_MAG_SHIFT5_CHUNK1 +006030 1 BLITBYTE 2,130,BOX_MAG_SHIFT5_CHUNK2 +006030 1 +006030 1 BLITBYTE 0,140,BOX_MAG_SHIFT6_CHUNK0 +006030 1 BLITBYTE 1,140,BOX_MAG_SHIFT6_CHUNK1 +006030 1 BLITBYTE 2,140,BOX_MAG_SHIFT6_CHUNK2 +006030 1 +006030 1 +006030 1 +006030 1 +006030 1 BLITBYTE 4,80,BOX_GRN_SHIFT0_CHUNK0 +006030 1 BLITBYTE 5,80,BOX_GRN_SHIFT0_CHUNK1 +006030 1 BLITBYTE 6,80,BOX_GRN_SHIFT0_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,90,BOX_GRN_SHIFT1_CHUNK0 +006030 1 BLITBYTE 5,90,BOX_GRN_SHIFT1_CHUNK1 +006030 1 BLITBYTE 6,90,BOX_GRN_SHIFT1_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,100,BOX_GRN_SHIFT2_CHUNK0 +006030 1 BLITBYTE 5,100,BOX_GRN_SHIFT2_CHUNK1 +006030 1 BLITBYTE 6,100,BOX_GRN_SHIFT2_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,110,BOX_GRN_SHIFT3_CHUNK0 +006030 1 BLITBYTE 5,110,BOX_GRN_SHIFT3_CHUNK1 +006030 1 BLITBYTE 6,110,BOX_GRN_SHIFT3_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,120,BOX_GRN_SHIFT4_CHUNK0 +006030 1 BLITBYTE 5,120,BOX_GRN_SHIFT4_CHUNK1 +006030 1 BLITBYTE 6,120,BOX_GRN_SHIFT4_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,130,BOX_GRN_SHIFT5_CHUNK0 +006030 1 BLITBYTE 5,130,BOX_GRN_SHIFT5_CHUNK1 +006030 1 BLITBYTE 6,130,BOX_GRN_SHIFT5_CHUNK2 +006030 1 +006030 1 BLITBYTE 4,140,BOX_GRN_SHIFT6_CHUNK0 +006030 1 BLITBYTE 5,140,BOX_GRN_SHIFT6_CHUNK1 +006030 1 BLITBYTE 6,140,BOX_GRN_SHIFT6_CHUNK2 +006030 1 +006030 1 .endif +006030 1 +006030 1 +006030 1 .if 0 +006030 1 BLITBYTE 20,80,MAG0 +006030 1 BLITBYTE 21,80,MAG1 +006030 1 +006030 1 BLITBYTE 20,90,MAG2 +006030 1 BLITBYTE 21,90,MAG3 +006030 1 +006030 1 BLITBYTE 20,100,MAG4 +006030 1 BLITBYTE 21,100,MAG5 +006030 1 +006030 1 BLITBYTE 20,110,MAG6 +006030 1 BLITBYTE 21,110,MAG7 +006030 1 +006030 1 BLITBYTE 21,120,MAG8 +006030 1 BLITBYTE 22,120,MAG9 +006030 1 +006030 1 BLITBYTE 21,130,MAG10 +006030 1 BLITBYTE 22,130,MAG11 +006030 1 +006030 1 BLITBYTE 21,140,MAG12 +006030 1 BLITBYTE 22,140,MAG13 +006030 1 .endif +006030 1 +006030 1 .if 0 +006030 1 +006030 1 BLITBYTE 22,80,GRN0 +006030 1 BLITBYTE 23,80,GRN1 +006030 1 +006030 1 BLITBYTE 22,90,GRN2 +006030 1 BLITBYTE 23,90,GRN3 +006030 1 +006030 1 BLITBYTE 22,100,GRN4 +006030 1 BLITBYTE 23,100,GRN5 +006030 1 +006030 1 BLITBYTE 22,110,GRN6 +006030 1 BLITBYTE 23,110,GRN7 +006030 1 +006030 1 BLITBYTE 23,120,GRN8 +006030 1 BLITBYTE 24,120,GRN9 +006030 1 +006030 1 BLITBYTE 23,130,GRN10 +006030 1 BLITBYTE 24,130,GRN11 +006030 1 +006030 1 BLITBYTE 23,140,GRN12 +006030 1 BLITBYTE 24,140,GRN13 +006030 1 .endif +006030 1 +006030 1 +006030 1 .if 0 +006030 1 BLITBYTE 20,80,BOX_MAG0 +006030 1 BLITBYTE 21,80,BOX_MAG1 +006030 1 +006030 1 BLITBYTE 20,90,BOX_MAG2 +006030 1 BLITBYTE 21,90,BOX_MAG3 +006030 1 +006030 1 BLITBYTE 20,100,BOX_MAG4 +006030 1 BLITBYTE 21,100,BOX_MAG5 +006030 1 +006030 1 BLITBYTE 20,110,BOX_MAG6 +006030 1 BLITBYTE 21,110,BOX_MAG7 +006030 1 +006030 1 BLITBYTE 21,120,BOX_MAG8 +006030 1 BLITBYTE 22,120,BOX_MAG9 +006030 1 +006030 1 BLITBYTE 21,130,BOX_MAG10 +006030 1 BLITBYTE 22,130,BOX_MAG11 +006030 1 +006030 1 BLITBYTE 21,140,BOX_MAG12 +006030 1 BLITBYTE 22,140,BOX_MAG13 +006030 1 .endif +006030 1 +006030 1 .if 0 +006030 1 BLITBYTE 20,80,BOX_GRN0 +006030 1 +006030 1 BLITBYTE 20,90,BOX_GRN1 +006030 1 BLITBYTE 21,90,BOX_GRN2 +006030 1 +006030 1 BLITBYTE 20,100,BOX_GRN3 +006030 1 BLITBYTE 21,100,BOX_GRN4 +006030 1 +006030 1 BLITBYTE 20,110,BOX_GRN5 +006030 1 BLITBYTE 21,110,BOX_GRN6 +006030 1 +006030 1 BLITBYTE 21,120,BOX_GRN7 +006030 1 BLITBYTE 22,120,BOX_GRN8 +006030 1 +006030 1 BLITBYTE 21,130,BOX_GRN9 +006030 1 BLITBYTE 22,130,BOX_GRN10 +006030 1 +006030 1 BLITBYTE 21,140,BOX_GRN11 +006030 1 BLITBYTE 22,140,BOX_GRN12 +006030 1 .endif +006030 1 +006030 1 +006030 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +006030 1 .if 0 +006030 1 BLITBYTE 20,80,BOX0 +006030 1 WAIT +006030 1 BLITBYTE 20,80,BLACK +006030 1 +006030 1 BLITBYTE 20,80,BOX1 +006030 1 BLITBYTE 21,80,BOX2 +006030 1 WAIT +006030 1 BLITBYTE 20,80,BLACK +006030 1 BLITBYTE 21,80,BLACK +006030 1 +006030 1 BLITBYTE 20,80,BOX3 +006030 1 BLITBYTE 21,80,BOX4 +006030 1 WAIT +006030 1 BLITBYTE 20,80,BLACK +006030 1 BLITBYTE 21,80,BLACK +006030 1 +006030 1 BLITBYTE 20,80,BOX5 +006030 1 BLITBYTE 21,80,BOX6 +006030 1 WAIT +006030 1 BLITBYTE 20,80,BLACK +006030 1 BLITBYTE 21,80,BLACK +006030 1 +006030 1 BLITBYTE 21,80,BOX7 +006030 1 BLITBYTE 22,80,BOX8 +006030 1 WAIT +006030 1 BLITBYTE 21,80,BLACK +006030 1 BLITBYTE 22,80,BLACK +006030 1 +006030 1 BLITBYTE 21,80,BOX9 +006030 1 BLITBYTE 22,80,BOX10 +006030 1 WAIT +006030 1 BLITBYTE 21,80,BLACK +006030 1 BLITBYTE 22,80,BLACK +006030 1 +006030 1 BLITBYTE 21,80,BOX11 +006030 1 BLITBYTE 22,80,BOX12 +006030 1 WAIT +006030 1 BLITBYTE 21,80,BLACK +006030 1 BLITBYTE 22,80,BLACK +006030 1 +006030 1 BLITBYTE 22,80,BOX0 +006030 1 WAIT +006030 1 BLITBYTE 22,80,BLACK +006030 1 +006030 1 jmp loop +006030 1 .endif +006030 1 +006030 1 +006030 1 60 rts +006031 1 +006031 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +006031 1 ; BlitSprite +006031 1 ; Trashes everything, including parameters +006031 1 ; PARAM0: X Pos +006031 1 ; PARAM1: Y Pos +006031 1 ; PARAM2: Sprite Ptr LSB +006031 1 ; PARAM3: Sprite Ptr MSB +006031 1 ; +006031 1 BlitSprite: +006031 1 48 DA 5A SAVE_AXY +006034 1 +006034 1 18 clc ; Compute sprite data base 2 +006035 1 A6 06 ldx PARAM0 ; 3 +006037 1 BD E8 62 lda HGRROWS_BITSHIFT_GRN,x ; 4 +00603A 1 65 08 adc PARAM2 ; 3 +00603C 1 85 08 sta PARAM2 ; 3 +00603E 1 A9 00 lda #0 ; 2 +006040 1 65 09 adc PARAM3 ; 3 +006042 1 85 09 sta PARAM3 ; 3 +006044 1 +006044 1 A9 07 lda #7 ; 2 +006046 1 85 19 sta SCRATCH0 ; Tracks row index 3 +006048 1 +006048 1 0A asl ; Multiply by byte width 2 +006049 1 0A asl ; 2 +00604A 1 85 1A sta SCRATCH1 ; Tracks total bytes 3 +00604C 1 A0 00 ldy #0 ; 2 +00604E 1 ; 37 cycles overhead +00604E 1 +00604E 1 blitSprite_Yloop: +00604E 1 18 clc ; Calculate Y line on screen 2 +00604F 1 A5 19 lda SCRATCH0 ; 3 +006051 1 65 07 adc PARAM1 ; 3 +006053 1 AA tax ; 2 +006054 1 +006054 1 BD DC 60 lda HGRROWS_H,x ; Compute hires row 4 +006057 1 8D 70 60 sta blitSprite_smc+2 ; Self-modifying code 4 +00605A 1 8D 73 60 sta blitSprite_smc+5 ; 4 +00605D 1 BD 9C 61 lda HGRROWS_L,x ; 4 +006060 1 8D 6F 60 sta blitSprite_smc+1 ; 4 +006063 1 8D 72 60 sta blitSprite_smc+4 ; 4 +006066 1 +006066 1 A6 06 ldx PARAM0 ; Compute hires horizontal byte 3 +006068 1 BD 5C 62 lda HGRROWS_GRN,x ; 4 +00606B 1 AA tax ; 2 +00606C 1 +00606C 1 blitSprite_Xloop: +00606C 1 B1 08 lda (PARAM2),y ; 5 +00606E 1 +00606E 1 blitSprite_smc: +00606E 1 1D 00 20 ora $2000,x +006071 1 9D 00 20 sta $2000,x ; 5 +006074 1 E8 inx ; 2 +006075 1 C8 iny ; 2 +006076 1 98 tya ; End of row? 2 +006077 1 29 03 and #$03 ; If last two bits are zero, we've wrapped a row 2 +006079 1 D0 F1 bne blitSprite_Xloop ; 2 +00607B 1 +00607B 1 C6 19 dec SCRATCH0 ; 5 +00607D 1 10 CF bpl blitSprite_Yloop ; 3 +00607F 1 ; 71 cycles per row +00607F 1 7A FA 68 RESTORE_AXY +006082 1 60 rts +006083 1 +006083 1 +006083 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +006083 1 ; BlitSpriteOnByte +006083 1 ; Trashes everything +006083 1 ; PARAM0: X Byte +006083 1 ; PARAM1: Y Pos +006083 1 ; PARAM2: Sprite Ptr MSB +006083 1 ; PARAM3: Sprite Ptr LSB +006083 1 ; +006083 1 BlitSpriteOnByte: +006083 1 A0 07 ldy #7 +006085 1 +006085 1 blitSpriteOnByte_loop: +006085 1 18 clc +006086 1 98 tya +006087 1 65 07 adc PARAM1 ; Calculate Y line +006089 1 AA tax +00608A 1 +00608A 1 BD DC 60 lda HGRROWS_H,x ; Compute hires row +00608D 1 8D 9C 60 sta blitSpriteOnByte_smc+2 +006090 1 BD 9C 61 lda HGRROWS_L,x +006093 1 8D 9B 60 sta blitSpriteOnByte_smc+1 +006096 1 +006096 1 A6 06 ldx PARAM0 ; Compute hires column +006098 1 B1 08 lda (PARAM2),y +00609A 1 +00609A 1 blitSpriteOnByte_smc: +00609A 1 9D 00 20 sta $2000,x +00609D 1 88 dey +00609E 1 10 E5 bpl blitSpriteOnByte_loop +0060A0 1 60 rts +0060A1 1 +0060A1 1 +0060A1 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +0060A1 1 ; EnableHires +0060A1 1 ; Trashes A +0060A1 1 ; +0060A1 1 EnableHires: +0060A1 1 AD 50 C0 lda TEXT +0060A4 1 AD 57 C0 lda HIRES1 +0060A7 1 AD 58 C0 lda HIRES2 +0060AA 1 60 rts +0060AB 1 +0060AB 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +0060AB 1 ; LinearFill +0060AB 1 ; A: Byte value to fill +0060AB 1 ; Trashes all registers +0060AB 1 ; +0060AB 1 LinearFill: +0060AB 1 A2 00 ldx #0 +0060AD 1 +0060AD 1 linearFill_outer: +0060AD 1 48 pha +0060AE 1 BD DC 60 lda HGRROWS_H,x +0060B1 1 8D BF 60 sta linearFill_inner+2 +0060B4 1 BD 9C 61 lda HGRROWS_L,x +0060B7 1 8D BE 60 sta linearFill_inner+1 +0060BA 1 68 pla +0060BB 1 +0060BB 1 A0 27 ldy #39 +0060BD 1 linearFill_inner: +0060BD 1 99 00 20 sta $2000,y +0060C0 1 88 dey +0060C1 1 10 FA bpl linearFill_inner +0060C3 1 +0060C3 1 E8 inx +0060C4 1 E0 C0 cpx #192 +0060C6 1 D0 E5 bne linearFill_outer +0060C8 1 60 rts +0060C9 1 +0060C9 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +0060C9 1 ; VenetianFill +0060C9 1 ; A: Byte value to fill +0060C9 1 ; Trashes all registers +0060C9 1 ; +0060C9 1 VenetianFill: +0060C9 1 A2 3F ldx #$3f +0060CB 1 venetianFill_outer: +0060CB 1 8E D2 60 stx venetianFill_inner+2 +0060CE 1 A0 00 ldy #$00 +0060D0 1 venetianFill_inner: +0060D0 1 99 00 20 sta $2000,y ; Upper byte of address is self-modified +0060D3 1 C8 iny +0060D4 1 D0 FA bne venetianFill_inner +0060D6 1 CA dex +0060D7 1 E0 1F cpx #$1f +0060D9 1 D0 F0 bne venetianFill_outer +0060DB 1 60 rts +0060DC 1 +0060DC 1 +0060DC 1 .include "hgrtable.s" +0060DC 2 ; +0060DC 2 ; hgrtable.s +0060DC 2 ; +0060DC 2 ; Created by Quinn Dunki on 7/19/16 +0060DC 2 ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +0060DC 2 ; +0060DC 2 +0060DC 2 HGRROWS_H: +0060DC 2 20 .byte $20 +0060DD 2 24 .byte $24 +0060DE 2 28 .byte $28 +0060DF 2 2C .byte $2C +0060E0 2 30 .byte $30 +0060E1 2 34 .byte $34 +0060E2 2 38 .byte $38 +0060E3 2 3C .byte $3C +0060E4 2 +0060E4 2 20 .byte $20 +0060E5 2 24 .byte $24 +0060E6 2 28 .byte $28 +0060E7 2 2C .byte $2C +0060E8 2 30 .byte $30 +0060E9 2 34 .byte $34 +0060EA 2 38 .byte $38 +0060EB 2 3C .byte $3C +0060EC 2 +0060EC 2 21 .byte $21 +0060ED 2 25 .byte $25 +0060EE 2 29 .byte $29 +0060EF 2 2D .byte $2D +0060F0 2 31 .byte $31 +0060F1 2 35 .byte $35 +0060F2 2 39 .byte $39 +0060F3 2 3D .byte $3D +0060F4 2 +0060F4 2 21 .byte $21 +0060F5 2 25 .byte $25 +0060F6 2 29 .byte $29 +0060F7 2 2D .byte $2D +0060F8 2 31 .byte $31 +0060F9 2 35 .byte $35 +0060FA 2 39 .byte $39 +0060FB 2 3D .byte $3D +0060FC 2 +0060FC 2 22 .byte $22 +0060FD 2 26 .byte $26 +0060FE 2 2A .byte $2A +0060FF 2 2E .byte $2E +006100 2 32 .byte $32 +006101 2 36 .byte $36 +006102 2 3A .byte $3A +006103 2 3E .byte $3E +006104 2 +006104 2 22 .byte $22 +006105 2 26 .byte $26 +006106 2 2A .byte $2A +006107 2 2E .byte $2E +006108 2 32 .byte $32 +006109 2 36 .byte $36 +00610A 2 3A .byte $3A +00610B 2 3E .byte $3E +00610C 2 +00610C 2 23 .byte $23 +00610D 2 27 .byte $27 +00610E 2 2B .byte $2B +00610F 2 2F .byte $2F +006110 2 33 .byte $33 +006111 2 37 .byte $37 +006112 2 3B .byte $3B +006113 2 3F .byte $3F +006114 2 +006114 2 23 .byte $23 +006115 2 27 .byte $27 +006116 2 2B .byte $2B +006117 2 2F .byte $2F +006118 2 33 .byte $33 +006119 2 37 .byte $37 +00611A 2 3B .byte $3B +00611B 2 3F .byte $3F +00611C 2 ; +00611C 2 20 .byte $20 +00611D 2 24 .byte $24 +00611E 2 28 .byte $28 +00611F 2 2C .byte $2C +006120 2 30 .byte $30 +006121 2 34 .byte $34 +006122 2 38 .byte $38 +006123 2 3C .byte $3C +006124 2 +006124 2 20 .byte $20 +006125 2 24 .byte $24 +006126 2 28 .byte $28 +006127 2 2C .byte $2C +006128 2 30 .byte $30 +006129 2 34 .byte $34 +00612A 2 38 .byte $38 +00612B 2 3C .byte $3C +00612C 2 +00612C 2 21 .byte $21 +00612D 2 25 .byte $25 +00612E 2 29 .byte $29 +00612F 2 2D .byte $2D +006130 2 31 .byte $31 +006131 2 35 .byte $35 +006132 2 39 .byte $39 +006133 2 3D .byte $3D +006134 2 +006134 2 21 .byte $21 +006135 2 25 .byte $25 +006136 2 29 .byte $29 +006137 2 2D .byte $2D +006138 2 31 .byte $31 +006139 2 35 .byte $35 +00613A 2 39 .byte $39 +00613B 2 3D .byte $3D +00613C 2 +00613C 2 22 .byte $22 +00613D 2 26 .byte $26 +00613E 2 2A .byte $2A +00613F 2 2E .byte $2E +006140 2 32 .byte $32 +006141 2 36 .byte $36 +006142 2 3A .byte $3A +006143 2 3E .byte $3E +006144 2 +006144 2 22 .byte $22 +006145 2 26 .byte $26 +006146 2 2A .byte $2A +006147 2 2E .byte $2E +006148 2 32 .byte $32 +006149 2 36 .byte $36 +00614A 2 3A .byte $3A +00614B 2 3E .byte $3E +00614C 2 +00614C 2 23 .byte $23 +00614D 2 27 .byte $27 +00614E 2 2B .byte $2B +00614F 2 2F .byte $2F +006150 2 33 .byte $33 +006151 2 37 .byte $37 +006152 2 3B .byte $3B +006153 2 3F .byte $3F +006154 2 +006154 2 23 .byte $23 +006155 2 27 .byte $27 +006156 2 2B .byte $2B +006157 2 2F .byte $2F +006158 2 33 .byte $33 +006159 2 37 .byte $37 +00615A 2 3B .byte $3B +00615B 2 3F .byte $3F +00615C 2 ;; +00615C 2 20 .byte $20 +00615D 2 24 .byte $24 +00615E 2 28 .byte $28 +00615F 2 2C .byte $2C +006160 2 30 .byte $30 +006161 2 34 .byte $34 +006162 2 38 .byte $38 +006163 2 3C .byte $3C +006164 2 +006164 2 20 .byte $20 +006165 2 24 .byte $24 +006166 2 28 .byte $28 +006167 2 2C .byte $2C +006168 2 30 .byte $30 +006169 2 34 .byte $34 +00616A 2 38 .byte $38 +00616B 2 3C .byte $3C +00616C 2 +00616C 2 21 .byte $21 +00616D 2 25 .byte $25 +00616E 2 29 .byte $29 +00616F 2 2D .byte $2D +006170 2 31 .byte $31 +006171 2 35 .byte $35 +006172 2 39 .byte $39 +006173 2 3D .byte $3D +006174 2 +006174 2 21 .byte $21 +006175 2 25 .byte $25 +006176 2 29 .byte $29 +006177 2 2D .byte $2D +006178 2 31 .byte $31 +006179 2 35 .byte $35 +00617A 2 39 .byte $39 +00617B 2 3D .byte $3D +00617C 2 +00617C 2 22 .byte $22 +00617D 2 26 .byte $26 +00617E 2 2A .byte $2A +00617F 2 2E .byte $2E +006180 2 32 .byte $32 +006181 2 36 .byte $36 +006182 2 3A .byte $3A +006183 2 3E .byte $3E +006184 2 +006184 2 22 .byte $22 +006185 2 26 .byte $26 +006186 2 2A .byte $2A +006187 2 2E .byte $2E +006188 2 32 .byte $32 +006189 2 36 .byte $36 +00618A 2 3A .byte $3A +00618B 2 3E .byte $3E +00618C 2 +00618C 2 23 .byte $23 +00618D 2 27 .byte $27 +00618E 2 2B .byte $2B +00618F 2 2F .byte $2F +006190 2 33 .byte $33 +006191 2 37 .byte $37 +006192 2 3B .byte $3B +006193 2 3F .byte $3F +006194 2 +006194 2 23 .byte $23 +006195 2 27 .byte $27 +006196 2 2B .byte $2B +006197 2 2F .byte $2F +006198 2 33 .byte $33 +006199 2 37 .byte $37 +00619A 2 3B .byte $3B +00619B 2 3F .byte $3F +00619C 2 +00619C 2 +00619C 2 +00619C 2 HGRROWS_L: +00619C 2 00 .byte $00 +00619D 2 00 .byte $00 +00619E 2 00 .byte $00 +00619F 2 00 .byte $00 +0061A0 2 00 .byte $00 +0061A1 2 00 .byte $00 +0061A2 2 00 .byte $00 +0061A3 2 00 .byte $00 +0061A4 2 +0061A4 2 80 .byte $80 +0061A5 2 80 .byte $80 +0061A6 2 80 .byte $80 +0061A7 2 80 .byte $80 +0061A8 2 80 .byte $80 +0061A9 2 80 .byte $80 +0061AA 2 80 .byte $80 +0061AB 2 80 .byte $80 +0061AC 2 +0061AC 2 00 .byte $00 +0061AD 2 00 .byte $00 +0061AE 2 00 .byte $00 +0061AF 2 00 .byte $00 +0061B0 2 00 .byte $00 +0061B1 2 00 .byte $00 +0061B2 2 00 .byte $00 +0061B3 2 00 .byte $00 +0061B4 2 +0061B4 2 80 .byte $80 +0061B5 2 80 .byte $80 +0061B6 2 80 .byte $80 +0061B7 2 80 .byte $80 +0061B8 2 80 .byte $80 +0061B9 2 80 .byte $80 +0061BA 2 80 .byte $80 +0061BB 2 80 .byte $80 +0061BC 2 +0061BC 2 00 .byte $00 +0061BD 2 00 .byte $00 +0061BE 2 00 .byte $00 +0061BF 2 00 .byte $00 +0061C0 2 00 .byte $00 +0061C1 2 00 .byte $00 +0061C2 2 00 .byte $00 +0061C3 2 00 .byte $00 +0061C4 2 +0061C4 2 80 .byte $80 +0061C5 2 80 .byte $80 +0061C6 2 80 .byte $80 +0061C7 2 80 .byte $80 +0061C8 2 80 .byte $80 +0061C9 2 80 .byte $80 +0061CA 2 80 .byte $80 +0061CB 2 80 .byte $80 +0061CC 2 +0061CC 2 00 .byte $00 +0061CD 2 00 .byte $00 +0061CE 2 00 .byte $00 +0061CF 2 00 .byte $00 +0061D0 2 00 .byte $00 +0061D1 2 00 .byte $00 +0061D2 2 00 .byte $00 +0061D3 2 00 .byte $00 +0061D4 2 +0061D4 2 80 .byte $80 +0061D5 2 80 .byte $80 +0061D6 2 80 .byte $80 +0061D7 2 80 .byte $80 +0061D8 2 80 .byte $80 +0061D9 2 80 .byte $80 +0061DA 2 80 .byte $80 +0061DB 2 80 .byte $80 +0061DC 2 ; +0061DC 2 28 .byte $28 +0061DD 2 28 .byte $28 +0061DE 2 28 .byte $28 +0061DF 2 28 .byte $28 +0061E0 2 28 .byte $28 +0061E1 2 28 .byte $28 +0061E2 2 28 .byte $28 +0061E3 2 28 .byte $28 +0061E4 2 +0061E4 2 A8 .byte $A8 +0061E5 2 A8 .byte $A8 +0061E6 2 A8 .byte $A8 +0061E7 2 A8 .byte $A8 +0061E8 2 A8 .byte $A8 +0061E9 2 A8 .byte $A8 +0061EA 2 A8 .byte $A8 +0061EB 2 A8 .byte $A8 +0061EC 2 +0061EC 2 28 .byte $28 +0061ED 2 28 .byte $28 +0061EE 2 28 .byte $28 +0061EF 2 28 .byte $28 +0061F0 2 28 .byte $28 +0061F1 2 28 .byte $28 +0061F2 2 28 .byte $28 +0061F3 2 28 .byte $28 +0061F4 2 +0061F4 2 A8 .byte $A8 +0061F5 2 A8 .byte $A8 +0061F6 2 A8 .byte $A8 +0061F7 2 A8 .byte $A8 +0061F8 2 A8 .byte $A8 +0061F9 2 A8 .byte $A8 +0061FA 2 A8 .byte $A8 +0061FB 2 A8 .byte $A8 +0061FC 2 +0061FC 2 28 .byte $28 +0061FD 2 28 .byte $28 +0061FE 2 28 .byte $28 +0061FF 2 28 .byte $28 +006200 2 28 .byte $28 +006201 2 28 .byte $28 +006202 2 28 .byte $28 +006203 2 28 .byte $28 +006204 2 +006204 2 A8 .byte $A8 +006205 2 A8 .byte $A8 +006206 2 A8 .byte $A8 +006207 2 A8 .byte $A8 +006208 2 A8 .byte $A8 +006209 2 A8 .byte $A8 +00620A 2 A8 .byte $A8 +00620B 2 A8 .byte $A8 +00620C 2 +00620C 2 28 .byte $28 +00620D 2 28 .byte $28 +00620E 2 28 .byte $28 +00620F 2 28 .byte $28 +006210 2 28 .byte $28 +006211 2 28 .byte $28 +006212 2 28 .byte $28 +006213 2 28 .byte $28 +006214 2 +006214 2 A8 .byte $A8 +006215 2 A8 .byte $A8 +006216 2 A8 .byte $A8 +006217 2 A8 .byte $A8 +006218 2 A8 .byte $A8 +006219 2 A8 .byte $A8 +00621A 2 A8 .byte $A8 +00621B 2 A8 .byte $A8 +00621C 2 ;; +00621C 2 50 .byte $50 +00621D 2 50 .byte $50 +00621E 2 50 .byte $50 +00621F 2 50 .byte $50 +006220 2 50 .byte $50 +006221 2 50 .byte $50 +006222 2 50 .byte $50 +006223 2 50 .byte $50 +006224 2 +006224 2 D0 .byte $D0 +006225 2 D0 .byte $D0 +006226 2 D0 .byte $D0 +006227 2 D0 .byte $D0 +006228 2 D0 .byte $D0 +006229 2 D0 .byte $D0 +00622A 2 D0 .byte $D0 +00622B 2 D0 .byte $D0 +00622C 2 +00622C 2 50 .byte $50 +00622D 2 50 .byte $50 +00622E 2 50 .byte $50 +00622F 2 50 .byte $50 +006230 2 50 .byte $50 +006231 2 50 .byte $50 +006232 2 50 .byte $50 +006233 2 50 .byte $50 +006234 2 +006234 2 D0 .byte $D0 +006235 2 D0 .byte $D0 +006236 2 D0 .byte $D0 +006237 2 D0 .byte $D0 +006238 2 D0 .byte $D0 +006239 2 D0 .byte $D0 +00623A 2 D0 .byte $D0 +00623B 2 D0 .byte $D0 +00623C 2 +00623C 2 50 .byte $50 +00623D 2 50 .byte $50 +00623E 2 50 .byte $50 +00623F 2 50 .byte $50 +006240 2 50 .byte $50 +006241 2 50 .byte $50 +006242 2 50 .byte $50 +006243 2 50 .byte $50 +006244 2 +006244 2 D0 .byte $D0 +006245 2 D0 .byte $D0 +006246 2 D0 .byte $D0 +006247 2 D0 .byte $D0 +006248 2 D0 .byte $D0 +006249 2 D0 .byte $D0 +00624A 2 D0 .byte $D0 +00624B 2 D0 .byte $D0 +00624C 2 +00624C 2 50 .byte $50 +00624D 2 50 .byte $50 +00624E 2 50 .byte $50 +00624F 2 50 .byte $50 +006250 2 50 .byte $50 +006251 2 50 .byte $50 +006252 2 50 .byte $50 +006253 2 50 .byte $50 +006254 2 +006254 2 D0 .byte $D0 +006255 2 D0 .byte $D0 +006256 2 D0 .byte $D0 +006257 2 D0 .byte $D0 +006258 2 D0 .byte $D0 +006259 2 D0 .byte $D0 +00625A 2 D0 .byte $D0 +00625B 2 D0 .byte $D0 +00625C 2 +00625C 2 +00625C 2 +00625C 1 .include "hgrtable2.s" +00625C 2 HGRROWS_GRN: +00625C 2 00 .byte $00 +00625D 2 00 .byte $00 +00625E 2 00 .byte $00 +00625F 2 00 .byte $00 +006260 2 00 .byte $00 +006261 2 00 .byte $00 +006262 2 00 .byte $00 +006263 2 02 .byte $02 +006264 2 02 .byte $02 +006265 2 02 .byte $02 +006266 2 02 .byte $02 +006267 2 02 .byte $02 +006268 2 02 .byte $02 +006269 2 02 .byte $02 +00626A 2 04 .byte $04 +00626B 2 04 .byte $04 +00626C 2 04 .byte $04 +00626D 2 04 .byte $04 +00626E 2 04 .byte $04 +00626F 2 04 .byte $04 +006270 2 04 .byte $04 +006271 2 06 .byte $06 +006272 2 06 .byte $06 +006273 2 06 .byte $06 +006274 2 06 .byte $06 +006275 2 06 .byte $06 +006276 2 06 .byte $06 +006277 2 06 .byte $06 +006278 2 08 .byte $08 +006279 2 08 .byte $08 +00627A 2 08 .byte $08 +00627B 2 08 .byte $08 +00627C 2 08 .byte $08 +00627D 2 08 .byte $08 +00627E 2 08 .byte $08 +00627F 2 0A .byte $0a +006280 2 0A .byte $0a +006281 2 0A .byte $0a +006282 2 0A .byte $0a +006283 2 0A .byte $0a +006284 2 0A .byte $0a +006285 2 0A .byte $0a +006286 2 0C .byte $0c +006287 2 0C .byte $0c +006288 2 0C .byte $0c +006289 2 0C .byte $0c +00628A 2 0C .byte $0c +00628B 2 0C .byte $0c +00628C 2 0C .byte $0c +00628D 2 0E .byte $0e +00628E 2 0E .byte $0e +00628F 2 0E .byte $0e +006290 2 0E .byte $0e +006291 2 0E .byte $0e +006292 2 0E .byte $0e +006293 2 0E .byte $0e +006294 2 10 .byte $10 +006295 2 10 .byte $10 +006296 2 10 .byte $10 +006297 2 10 .byte $10 +006298 2 10 .byte $10 +006299 2 10 .byte $10 +00629A 2 10 .byte $10 +00629B 2 12 .byte $12 +00629C 2 12 .byte $12 +00629D 2 12 .byte $12 +00629E 2 12 .byte $12 +00629F 2 12 .byte $12 +0062A0 2 12 .byte $12 +0062A1 2 12 .byte $12 +0062A2 2 14 .byte $14 +0062A3 2 14 .byte $14 +0062A4 2 14 .byte $14 +0062A5 2 14 .byte $14 +0062A6 2 14 .byte $14 +0062A7 2 14 .byte $14 +0062A8 2 14 .byte $14 +0062A9 2 16 .byte $16 +0062AA 2 16 .byte $16 +0062AB 2 16 .byte $16 +0062AC 2 16 .byte $16 +0062AD 2 16 .byte $16 +0062AE 2 16 .byte $16 +0062AF 2 16 .byte $16 +0062B0 2 18 .byte $18 +0062B1 2 18 .byte $18 +0062B2 2 18 .byte $18 +0062B3 2 18 .byte $18 +0062B4 2 18 .byte $18 +0062B5 2 18 .byte $18 +0062B6 2 18 .byte $18 +0062B7 2 1A .byte $1a +0062B8 2 1A .byte $1a +0062B9 2 1A .byte $1a +0062BA 2 1A .byte $1a +0062BB 2 1A .byte $1a +0062BC 2 1A .byte $1a +0062BD 2 1A .byte $1a +0062BE 2 1C .byte $1c +0062BF 2 1C .byte $1c +0062C0 2 1C .byte $1c +0062C1 2 1C .byte $1c +0062C2 2 1C .byte $1c +0062C3 2 1C .byte $1c +0062C4 2 1C .byte $1c +0062C5 2 1E .byte $1e +0062C6 2 1E .byte $1e +0062C7 2 1E .byte $1e +0062C8 2 1E .byte $1e +0062C9 2 1E .byte $1e +0062CA 2 1E .byte $1e +0062CB 2 1E .byte $1e +0062CC 2 20 .byte $20 +0062CD 2 20 .byte $20 +0062CE 2 20 .byte $20 +0062CF 2 20 .byte $20 +0062D0 2 20 .byte $20 +0062D1 2 20 .byte $20 +0062D2 2 20 .byte $20 +0062D3 2 22 .byte $22 +0062D4 2 22 .byte $22 +0062D5 2 22 .byte $22 +0062D6 2 22 .byte $22 +0062D7 2 22 .byte $22 +0062D8 2 22 .byte $22 +0062D9 2 22 .byte $22 +0062DA 2 24 .byte $24 +0062DB 2 24 .byte $24 +0062DC 2 24 .byte $24 +0062DD 2 24 .byte $24 +0062DE 2 24 .byte $24 +0062DF 2 24 .byte $24 +0062E0 2 24 .byte $24 +0062E1 2 26 .byte $26 +0062E2 2 26 .byte $26 +0062E3 2 26 .byte $26 +0062E4 2 26 .byte $26 +0062E5 2 26 .byte $26 +0062E6 2 26 .byte $26 +0062E7 2 26 .byte $26 +0062E8 2 +0062E8 2 HGRROWS_BITSHIFT_GRN: +0062E8 2 00 .byte $00 +0062E9 2 20 .byte $20 +0062EA 2 40 .byte $40 +0062EB 2 60 .byte $60 +0062EC 2 80 .byte $80 +0062ED 2 A0 .byte $a0 +0062EE 2 C0 .byte $c0 +0062EF 2 00 .byte $00 +0062F0 2 20 .byte $20 +0062F1 2 40 .byte $40 +0062F2 2 60 .byte $60 +0062F3 2 80 .byte $80 +0062F4 2 A0 .byte $a0 +0062F5 2 C0 .byte $c0 +0062F6 2 00 .byte $00 +0062F7 2 20 .byte $20 +0062F8 2 40 .byte $40 +0062F9 2 60 .byte $60 +0062FA 2 80 .byte $80 +0062FB 2 A0 .byte $a0 +0062FC 2 C0 .byte $c0 +0062FD 2 00 .byte $00 +0062FE 2 20 .byte $20 +0062FF 2 40 .byte $40 +006300 2 60 .byte $60 +006301 2 80 .byte $80 +006302 2 A0 .byte $a0 +006303 2 C0 .byte $c0 +006304 2 00 .byte $00 +006305 2 20 .byte $20 +006306 2 40 .byte $40 +006307 2 60 .byte $60 +006308 2 80 .byte $80 +006309 2 A0 .byte $a0 +00630A 2 C0 .byte $c0 +00630B 2 00 .byte $00 +00630C 2 20 .byte $20 +00630D 2 40 .byte $40 +00630E 2 60 .byte $60 +00630F 2 80 .byte $80 +006310 2 A0 .byte $a0 +006311 2 C0 .byte $c0 +006312 2 00 .byte $00 +006313 2 20 .byte $20 +006314 2 40 .byte $40 +006315 2 60 .byte $60 +006316 2 80 .byte $80 +006317 2 A0 .byte $a0 +006318 2 C0 .byte $c0 +006319 2 00 .byte $00 +00631A 2 20 .byte $20 +00631B 2 40 .byte $40 +00631C 2 60 .byte $60 +00631D 2 80 .byte $80 +00631E 2 A0 .byte $a0 +00631F 2 C0 .byte $c0 +006320 2 00 .byte $00 +006321 2 20 .byte $20 +006322 2 40 .byte $40 +006323 2 60 .byte $60 +006324 2 80 .byte $80 +006325 2 A0 .byte $a0 +006326 2 C0 .byte $c0 +006327 2 00 .byte $00 +006328 2 20 .byte $20 +006329 2 40 .byte $40 +00632A 2 60 .byte $60 +00632B 2 80 .byte $80 +00632C 2 A0 .byte $a0 +00632D 2 C0 .byte $c0 +00632E 2 00 .byte $00 +00632F 2 20 .byte $20 +006330 2 40 .byte $40 +006331 2 60 .byte $60 +006332 2 80 .byte $80 +006333 2 A0 .byte $a0 +006334 2 C0 .byte $c0 +006335 2 00 .byte $00 +006336 2 20 .byte $20 +006337 2 40 .byte $40 +006338 2 60 .byte $60 +006339 2 80 .byte $80 +00633A 2 A0 .byte $a0 +00633B 2 C0 .byte $c0 +00633C 2 00 .byte $00 +00633D 2 20 .byte $20 +00633E 2 40 .byte $40 +00633F 2 60 .byte $60 +006340 2 80 .byte $80 +006341 2 A0 .byte $a0 +006342 2 C0 .byte $c0 +006343 2 00 .byte $00 +006344 2 20 .byte $20 +006345 2 40 .byte $40 +006346 2 60 .byte $60 +006347 2 80 .byte $80 +006348 2 A0 .byte $a0 +006349 2 C0 .byte $c0 +00634A 2 00 .byte $00 +00634B 2 20 .byte $20 +00634C 2 40 .byte $40 +00634D 2 60 .byte $60 +00634E 2 80 .byte $80 +00634F 2 A0 .byte $a0 +006350 2 C0 .byte $c0 +006351 2 00 .byte $00 +006352 2 20 .byte $20 +006353 2 40 .byte $40 +006354 2 60 .byte $60 +006355 2 80 .byte $80 +006356 2 A0 .byte $a0 +006357 2 C0 .byte $c0 +006358 2 00 .byte $00 +006359 2 20 .byte $20 +00635A 2 40 .byte $40 +00635B 2 60 .byte $60 +00635C 2 80 .byte $80 +00635D 2 A0 .byte $a0 +00635E 2 C0 .byte $c0 +00635F 2 00 .byte $00 +006360 2 20 .byte $20 +006361 2 40 .byte $40 +006362 2 60 .byte $60 +006363 2 80 .byte $80 +006364 2 A0 .byte $a0 +006365 2 C0 .byte $c0 +006366 2 00 .byte $00 +006367 2 20 .byte $20 +006368 2 40 .byte $40 +006369 2 60 .byte $60 +00636A 2 80 .byte $80 +00636B 2 A0 .byte $a0 +00636C 2 C0 .byte $c0 +00636D 2 00 .byte $00 +00636E 2 20 .byte $20 +00636F 2 40 .byte $40 +006370 2 60 .byte $60 +006371 2 80 .byte $80 +006372 2 A0 .byte $a0 +006373 2 C0 .byte $c0 +006374 2 +006374 1 .include "hgrtable3.s" +006374 2 DIV7_2: +006374 2 00 .byte $00 +006375 2 00 .byte $00 +006376 2 00 .byte $00 +006377 2 00 .byte $00 +006378 2 00 .byte $00 +006379 2 00 .byte $00 +00637A 2 00 .byte $00 +00637B 2 02 .byte $02 +00637C 2 02 .byte $02 +00637D 2 02 .byte $02 +00637E 2 02 .byte $02 +00637F 2 02 .byte $02 +006380 2 02 .byte $02 +006381 2 02 .byte $02 +006382 2 04 .byte $04 +006383 2 04 .byte $04 +006384 2 04 .byte $04 +006385 2 04 .byte $04 +006386 2 04 .byte $04 +006387 2 04 .byte $04 +006388 2 04 .byte $04 +006389 2 06 .byte $06 +00638A 2 06 .byte $06 +00638B 2 06 .byte $06 +00638C 2 06 .byte $06 +00638D 2 06 .byte $06 +00638E 2 06 .byte $06 +00638F 2 06 .byte $06 +006390 2 08 .byte $08 +006391 2 08 .byte $08 +006392 2 08 .byte $08 +006393 2 08 .byte $08 +006394 2 08 .byte $08 +006395 2 08 .byte $08 +006396 2 08 .byte $08 +006397 2 0A .byte $0a +006398 2 0A .byte $0a +006399 2 0A .byte $0a +00639A 2 0A .byte $0a +00639B 2 0A .byte $0a +00639C 2 0A .byte $0a +00639D 2 0A .byte $0a +00639E 2 0C .byte $0c +00639F 2 0C .byte $0c +0063A0 2 0C .byte $0c +0063A1 2 0C .byte $0c +0063A2 2 0C .byte $0c +0063A3 2 0C .byte $0c +0063A4 2 0C .byte $0c +0063A5 2 0E .byte $0e +0063A6 2 0E .byte $0e +0063A7 2 0E .byte $0e +0063A8 2 0E .byte $0e +0063A9 2 0E .byte $0e +0063AA 2 0E .byte $0e +0063AB 2 0E .byte $0e +0063AC 2 10 .byte $10 +0063AD 2 10 .byte $10 +0063AE 2 10 .byte $10 +0063AF 2 10 .byte $10 +0063B0 2 10 .byte $10 +0063B1 2 10 .byte $10 +0063B2 2 10 .byte $10 +0063B3 2 12 .byte $12 +0063B4 2 12 .byte $12 +0063B5 2 12 .byte $12 +0063B6 2 12 .byte $12 +0063B7 2 12 .byte $12 +0063B8 2 12 .byte $12 +0063B9 2 12 .byte $12 +0063BA 2 14 .byte $14 +0063BB 2 14 .byte $14 +0063BC 2 14 .byte $14 +0063BD 2 14 .byte $14 +0063BE 2 14 .byte $14 +0063BF 2 14 .byte $14 +0063C0 2 14 .byte $14 +0063C1 2 16 .byte $16 +0063C2 2 16 .byte $16 +0063C3 2 16 .byte $16 +0063C4 2 16 .byte $16 +0063C5 2 16 .byte $16 +0063C6 2 16 .byte $16 +0063C7 2 16 .byte $16 +0063C8 2 18 .byte $18 +0063C9 2 18 .byte $18 +0063CA 2 18 .byte $18 +0063CB 2 18 .byte $18 +0063CC 2 18 .byte $18 +0063CD 2 18 .byte $18 +0063CE 2 18 .byte $18 +0063CF 2 1A .byte $1a +0063D0 2 1A .byte $1a +0063D1 2 1A .byte $1a +0063D2 2 1A .byte $1a +0063D3 2 1A .byte $1a +0063D4 2 1A .byte $1a +0063D5 2 1A .byte $1a +0063D6 2 1C .byte $1c +0063D7 2 1C .byte $1c +0063D8 2 1C .byte $1c +0063D9 2 1C .byte $1c +0063DA 2 1C .byte $1c +0063DB 2 1C .byte $1c +0063DC 2 1C .byte $1c +0063DD 2 1E .byte $1e +0063DE 2 1E .byte $1e +0063DF 2 1E .byte $1e +0063E0 2 1E .byte $1e +0063E1 2 1E .byte $1e +0063E2 2 1E .byte $1e +0063E3 2 1E .byte $1e +0063E4 2 20 .byte $20 +0063E5 2 20 .byte $20 +0063E6 2 20 .byte $20 +0063E7 2 20 .byte $20 +0063E8 2 20 .byte $20 +0063E9 2 20 .byte $20 +0063EA 2 20 .byte $20 +0063EB 2 22 .byte $22 +0063EC 2 22 .byte $22 +0063ED 2 22 .byte $22 +0063EE 2 22 .byte $22 +0063EF 2 22 .byte $22 +0063F0 2 22 .byte $22 +0063F1 2 22 .byte $22 +0063F2 2 24 .byte $24 +0063F3 2 24 .byte $24 +0063F4 2 24 .byte $24 +0063F5 2 24 .byte $24 +0063F6 2 24 .byte $24 +0063F7 2 24 .byte $24 +0063F8 2 24 .byte $24 +0063F9 2 26 .byte $26 +0063FA 2 26 .byte $26 +0063FB 2 26 .byte $26 +0063FC 2 26 .byte $26 +0063FD 2 26 .byte $26 +0063FE 2 26 .byte $26 +0063FF 2 26 .byte $26 +006400 2 +006400 2 +006400 2 MOD7_2: +006400 2 00 .byte $00 +006401 2 02 .byte $02 +006402 2 04 .byte $04 +006403 2 06 .byte $06 +006404 2 08 .byte $08 +006405 2 0A .byte $0a +006406 2 0C .byte $0c +006407 2 00 .byte $00 +006408 2 02 .byte $02 +006409 2 04 .byte $04 +00640A 2 06 .byte $06 +00640B 2 08 .byte $08 +00640C 2 0A .byte $0a +00640D 2 0C .byte $0c +00640E 2 00 .byte $00 +00640F 2 02 .byte $02 +006410 2 04 .byte $04 +006411 2 06 .byte $06 +006412 2 08 .byte $08 +006413 2 0A .byte $0a +006414 2 0C .byte $0c +006415 2 00 .byte $00 +006416 2 02 .byte $02 +006417 2 04 .byte $04 +006418 2 06 .byte $06 +006419 2 08 .byte $08 +00641A 2 0A .byte $0a +00641B 2 0C .byte $0c +00641C 2 00 .byte $00 +00641D 2 02 .byte $02 +00641E 2 04 .byte $04 +00641F 2 06 .byte $06 +006420 2 08 .byte $08 +006421 2 0A .byte $0a +006422 2 0C .byte $0c +006423 2 00 .byte $00 +006424 2 02 .byte $02 +006425 2 04 .byte $04 +006426 2 06 .byte $06 +006427 2 08 .byte $08 +006428 2 0A .byte $0a +006429 2 0C .byte $0c +00642A 2 00 .byte $00 +00642B 2 02 .byte $02 +00642C 2 04 .byte $04 +00642D 2 06 .byte $06 +00642E 2 08 .byte $08 +00642F 2 0A .byte $0a +006430 2 0C .byte $0c +006431 2 00 .byte $00 +006432 2 02 .byte $02 +006433 2 04 .byte $04 +006434 2 06 .byte $06 +006435 2 08 .byte $08 +006436 2 0A .byte $0a +006437 2 0C .byte $0c +006438 2 00 .byte $00 +006439 2 02 .byte $02 +00643A 2 04 .byte $04 +00643B 2 06 .byte $06 +00643C 2 08 .byte $08 +00643D 2 0A .byte $0a +00643E 2 0C .byte $0c +00643F 2 00 .byte $00 +006440 2 02 .byte $02 +006441 2 04 .byte $04 +006442 2 06 .byte $06 +006443 2 08 .byte $08 +006444 2 0A .byte $0a +006445 2 0C .byte $0c +006446 2 00 .byte $00 +006447 2 02 .byte $02 +006448 2 04 .byte $04 +006449 2 06 .byte $06 +00644A 2 08 .byte $08 +00644B 2 0A .byte $0a +00644C 2 0C .byte $0c +00644D 2 00 .byte $00 +00644E 2 02 .byte $02 +00644F 2 04 .byte $04 +006450 2 06 .byte $06 +006451 2 08 .byte $08 +006452 2 0A .byte $0a +006453 2 0C .byte $0c +006454 2 00 .byte $00 +006455 2 02 .byte $02 +006456 2 04 .byte $04 +006457 2 06 .byte $06 +006458 2 08 .byte $08 +006459 2 0A .byte $0a +00645A 2 0C .byte $0c +00645B 2 00 .byte $00 +00645C 2 02 .byte $02 +00645D 2 04 .byte $04 +00645E 2 06 .byte $06 +00645F 2 08 .byte $08 +006460 2 0A .byte $0a +006461 2 0C .byte $0c +006462 2 00 .byte $00 +006463 2 02 .byte $02 +006464 2 04 .byte $04 +006465 2 06 .byte $06 +006466 2 08 .byte $08 +006467 2 0A .byte $0a +006468 2 0C .byte $0c +006469 2 00 .byte $00 +00646A 2 02 .byte $02 +00646B 2 04 .byte $04 +00646C 2 06 .byte $06 +00646D 2 08 .byte $08 +00646E 2 0A .byte $0a +00646F 2 0C .byte $0c +006470 2 00 .byte $00 +006471 2 02 .byte $02 +006472 2 04 .byte $04 +006473 2 06 .byte $06 +006474 2 08 .byte $08 +006475 2 0A .byte $0a +006476 2 0C .byte $0c +006477 2 00 .byte $00 +006478 2 02 .byte $02 +006479 2 04 .byte $04 +00647A 2 06 .byte $06 +00647B 2 08 .byte $08 +00647C 2 0A .byte $0a +00647D 2 0C .byte $0c +00647E 2 00 .byte $00 +00647F 2 02 .byte $02 +006480 2 04 .byte $04 +006481 2 06 .byte $06 +006482 2 08 .byte $08 +006483 2 0A .byte $0a +006484 2 0C .byte $0c +006485 2 00 .byte $00 +006486 2 02 .byte $02 +006487 2 04 .byte $04 +006488 2 06 .byte $06 +006489 2 08 .byte $08 +00648A 2 0A .byte $0a +00648B 2 0C .byte $0c +00648C 2 +00648C 1 .include "spritedata0.s" +00648C 2 ; +00648C 2 ; spritedata.s +00648C 2 ; +00648C 2 ; Created by Quinn Dunki on 7/19/16 +00648C 2 ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +00648C 2 ; +00648C 2 +00648C 2 MAG0: +00648C 2 55 .byte %01010101 ; Byte aligned +00648D 2 41 .byte %01000001 ; (reversed) +00648E 2 41 .byte %01000001 +00648F 2 41 .byte %01000001 ;;;;;;;;;;;;;;;;;;;; +006490 2 41 .byte %01000001 +006491 2 41 .byte %01000001 +006492 2 41 .byte %01000001 +006493 2 55 .byte %01010101 +006494 2 +006494 2 MAG1: +006494 2 00 .byte %00000000 ; Byte aligned +006495 2 00 .byte %00000000 ; (2nd byte, reversed) +006496 2 00 .byte %00000000 +006497 2 00 .byte %00000000 +006498 2 00 .byte %00000000 +006499 2 00 .byte %00000000 +00649A 2 00 .byte %00000000 +00649B 2 00 .byte %00000000 +00649C 2 +00649C 2 MAG2: +00649C 2 54 .byte %01010100 ; One pixel shift +00649D 2 04 .byte %00000100 ; (reversed) +00649E 2 04 .byte %00000100 +00649F 2 04 .byte %00000100 +0064A0 2 04 .byte %00000100 +0064A1 2 04 .byte %00000100 +0064A2 2 04 .byte %00000100 +0064A3 2 54 .byte %01010100 +0064A4 2 +0064A4 2 MAG3: +0064A4 2 02 .byte %00000010 ; One pixel shift +0064A5 2 02 .byte %00000010 ; (2nd byte, reversed) +0064A6 2 02 .byte %00000010 +0064A7 2 02 .byte %00000010 +0064A8 2 02 .byte %00000010 +0064A9 2 02 .byte %00000010 +0064AA 2 02 .byte %00000010 +0064AB 2 02 .byte %00000010 +0064AC 2 +0064AC 2 +0064AC 2 MAG4: +0064AC 2 50 .byte %01010000 ; Two pixel shift +0064AD 2 10 .byte %00010000 ; (reversed) +0064AE 2 10 .byte %00010000 +0064AF 2 10 .byte %00010000 +0064B0 2 10 .byte %00010000 +0064B1 2 10 .byte %00010000 +0064B2 2 10 .byte %00010000 +0064B3 2 50 .byte %01010000 +0064B4 2 +0064B4 2 MAG5: +0064B4 2 0A .byte %00001010 ; Two pixel shift +0064B5 2 08 .byte %00001000 ; (2nd byte, reversed) +0064B6 2 08 .byte %00001000 +0064B7 2 08 .byte %00001000 +0064B8 2 08 .byte %00001000 +0064B9 2 08 .byte %00001000 +0064BA 2 08 .byte %00001000 +0064BB 2 0A .byte %00001010 +0064BC 2 +0064BC 2 +0064BC 2 MAG6: +0064BC 2 40 .byte %01000000 ; Three pixel shift +0064BD 2 40 .byte %01000000 ; (reversed) +0064BE 2 40 .byte %01000000 +0064BF 2 40 .byte %01000000 +0064C0 2 40 .byte %01000000 +0064C1 2 40 .byte %01000000 +0064C2 2 40 .byte %01000000 +0064C3 2 40 .byte %01000000 +0064C4 2 +0064C4 2 MAG7: +0064C4 2 2A .byte %00101010 ; Three pixel shift +0064C5 2 20 .byte %00100000 ; (2nd byte, reversed) +0064C6 2 20 .byte %00100000 +0064C7 2 20 .byte %00100000 +0064C8 2 20 .byte %00100000 +0064C9 2 20 .byte %00100000 +0064CA 2 20 .byte %00100000 +0064CB 2 2A .byte %00101010 +0064CC 2 +0064CC 2 +0064CC 2 MAG8: +0064CC 2 2A .byte %00101010 ; Four pixel shift +0064CD 2 02 .byte %00000010 ; (reversed) +0064CE 2 02 .byte %00000010 +0064CF 2 02 .byte %00000010 +0064D0 2 02 .byte %00000010 +0064D1 2 02 .byte %00000010 +0064D2 2 02 .byte %00000010 +0064D3 2 2A .byte %00101010 +0064D4 2 +0064D4 2 MAG9: +0064D4 2 01 .byte %00000001 ; Four pixel shift +0064D5 2 01 .byte %00000001 ; (2nd byte, reversed) +0064D6 2 01 .byte %00000001 +0064D7 2 01 .byte %00000001 +0064D8 2 01 .byte %00000001 +0064D9 2 01 .byte %00000001 +0064DA 2 01 .byte %00000001 +0064DB 2 01 .byte %00000001 +0064DC 2 +0064DC 2 +0064DC 2 MAG10: +0064DC 2 28 .byte %00101000 ; Five pixel shift +0064DD 2 08 .byte %00001000 ; (reversed) +0064DE 2 08 .byte %00001000 +0064DF 2 08 .byte %00001000 +0064E0 2 08 .byte %00001000 +0064E1 2 08 .byte %00001000 +0064E2 2 08 .byte %00001000 +0064E3 2 28 .byte %00101000 +0064E4 2 +0064E4 2 MAG11: +0064E4 2 05 .byte %00000101 ; Five pixel shift +0064E5 2 04 .byte %00000100 ; (2nd byte, reversed) +0064E6 2 04 .byte %00000100 +0064E7 2 04 .byte %00000100 +0064E8 2 04 .byte %00000100 +0064E9 2 04 .byte %00000100 +0064EA 2 04 .byte %00000100 +0064EB 2 05 .byte %00000101 +0064EC 2 +0064EC 2 +0064EC 2 MAG12: +0064EC 2 20 .byte %00100000 ; Six pixel shift +0064ED 2 20 .byte %00100000 ; (2nd byte, reversed) +0064EE 2 20 .byte %00100000 +0064EF 2 20 .byte %00100000 +0064F0 2 20 .byte %00100000 +0064F1 2 20 .byte %00100000 +0064F2 2 20 .byte %00100000 +0064F3 2 20 .byte %00100000 +0064F4 2 +0064F4 2 MAG13: +0064F4 2 15 .byte %00010101 ; Six pixel shift +0064F5 2 10 .byte %00010000 ; (reversed) +0064F6 2 10 .byte %00010000 +0064F7 2 10 .byte %00010000 +0064F8 2 10 .byte %00010000 +0064F9 2 10 .byte %00010000 +0064FA 2 10 .byte %00010000 +0064FB 2 15 .byte %00010101 +0064FC 2 +0064FC 2 +0064FC 2 BLACK: +0064FC 2 00 .byte %00000000 +0064FD 2 00 .byte %00000000 +0064FE 2 00 .byte %00000000 +0064FF 2 00 .byte %00000000 +006500 2 00 .byte %00000000 +006501 2 00 .byte %00000000 +006502 2 00 .byte %00000000 +006503 2 00 .byte %00000000 +006504 2 +006504 1 .include "spritedata1.s" +006504 2 ; +006504 2 ; spritedata.s +006504 2 ; +006504 2 ; Created by Quinn Dunki on 7/19/16 +006504 2 ; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +006504 2 ; +006504 2 +006504 2 GRN0: +006504 2 2A .byte %00101010 ; Byte aligned +006505 2 02 .byte %00000010 ; (reversed) +006506 2 02 .byte %00000010 +006507 2 02 .byte %00000010 +006508 2 02 .byte %00000010 +006509 2 02 .byte %00000010 +00650A 2 02 .byte %00000010 +00650B 2 2A .byte %00101010 +00650C 2 +00650C 2 GRN1: +00650C 2 01 .byte %00000001 ; Byte aligned +00650D 2 01 .byte %00000001 ; (2nd byte, reversed) +00650E 2 01 .byte %00000001 +00650F 2 01 .byte %00000001 +006510 2 01 .byte %00000001 +006511 2 01 .byte %00000001 +006512 2 01 .byte %00000001 +006513 2 01 .byte %00000001 +006514 2 +006514 2 GRN2: +006514 2 28 .byte %00101000 ; One pixel shift +006515 2 08 .byte %00001000 ; (reversed) +006516 2 08 .byte %00001000 +006517 2 08 .byte %00001000 +006518 2 08 .byte %00001000 +006519 2 08 .byte %00001000 +00651A 2 08 .byte %00001000 +00651B 2 28 .byte %00101000 +00651C 2 +00651C 2 GRN3: +00651C 2 05 .byte %00000101 ; One pixel shift +00651D 2 04 .byte %00000100 ; (2nd byte, reversed) +00651E 2 04 .byte %00000100 +00651F 2 04 .byte %00000100 +006520 2 04 .byte %00000100 +006521 2 04 .byte %00000100 +006522 2 04 .byte %00000100 +006523 2 05 .byte %00000101 +006524 2 +006524 2 +006524 2 GRN4: +006524 2 20 .byte %00100000 ; Two pixel shift +006525 2 20 .byte %00100000 ; (reversed) +006526 2 20 .byte %00100000 +006527 2 20 .byte %00100000 +006528 2 20 .byte %00100000 +006529 2 20 .byte %00100000 +00652A 2 20 .byte %00100000 +00652B 2 20 .byte %00100000 +00652C 2 +00652C 2 GRN5: +00652C 2 15 .byte %00010101 ; Two pixel shift +00652D 2 10 .byte %00010000 ; (2nd byte, reversed) +00652E 2 10 .byte %00010000 +00652F 2 10 .byte %00010000 +006530 2 10 .byte %00010000 +006531 2 10 .byte %00010000 +006532 2 10 .byte %00010000 +006533 2 15 .byte %00010101 +006534 2 +006534 2 +006534 2 GRN6: +006534 2 00 .byte %00000000 ; Three pixel shift +006535 2 00 .byte %00000000 ; (reversed) +006536 2 00 .byte %00000000 +006537 2 00 .byte %00000000 +006538 2 00 .byte %00000000 +006539 2 00 .byte %00000000 +00653A 2 00 .byte %00000000 +00653B 2 00 .byte %00000000 +00653C 2 +00653C 2 GRN7: +00653C 2 55 .byte %01010101 ; Three pixel shift +00653D 2 41 .byte %01000001 ; (2nd byte, reversed) +00653E 2 41 .byte %01000001 +00653F 2 41 .byte %01000001 ;;;;;;;;;;;;;;;;;;;; +006540 2 41 .byte %01000001 +006541 2 41 .byte %01000001 +006542 2 41 .byte %01000001 +006543 2 55 .byte %01010101 +006544 2 +006544 2 +006544 2 GRN8: +006544 2 54 .byte %01010100 ; Four pixel shift +006545 2 04 .byte %00000100 ; (reversed) +006546 2 04 .byte %00000100 +006547 2 04 .byte %00000100 +006548 2 04 .byte %00000100 +006549 2 04 .byte %00000100 +00654A 2 04 .byte %00000100 +00654B 2 54 .byte %01010100 +00654C 2 +00654C 2 GRN9: +00654C 2 02 .byte %00000010 ; Four pixel shift +00654D 2 02 .byte %00000010 ; (2nd byte, reversed) +00654E 2 02 .byte %00000010 +00654F 2 02 .byte %00000010 +006550 2 02 .byte %00000010 +006551 2 02 .byte %00000010 +006552 2 02 .byte %00000010 +006553 2 02 .byte %00000010 +006554 2 +006554 2 +006554 2 GRN10: +006554 2 50 .byte %01010000 ; Five pixel shift +006555 2 10 .byte %00010000 ; (reversed) +006556 2 10 .byte %00010000 +006557 2 10 .byte %00010000 +006558 2 10 .byte %00010000 +006559 2 10 .byte %00010000 +00655A 2 10 .byte %00010000 +00655B 2 50 .byte %01010000 +00655C 2 +00655C 2 GRN11: +00655C 2 0A .byte %00001010 ; Five pixel shift +00655D 2 08 .byte %00001000 ; (2nd byte, reversed) +00655E 2 08 .byte %00001000 +00655F 2 08 .byte %00001000 +006560 2 08 .byte %00001000 +006561 2 08 .byte %00001000 +006562 2 08 .byte %00001000 +006563 2 0A .byte %00001010 +006564 2 +006564 2 +006564 2 GRN12: +006564 2 40 .byte %01000000 ; Six pixel shift +006565 2 40 .byte %01000000 ; (2nd byte, reversed) +006566 2 40 .byte %01000000 +006567 2 40 .byte %01000000 +006568 2 40 .byte %01000000 +006569 2 40 .byte %01000000 +00656A 2 40 .byte %01000000 +00656B 2 40 .byte %01000000 +00656C 2 +00656C 2 GRN13: +00656C 2 2A .byte %00101010 ; Six pixel shift +00656D 2 20 .byte %00100000 ; (reversed) +00656E 2 20 .byte %00100000 +00656F 2 20 .byte %00100000 +006570 2 20 .byte %00100000 +006571 2 20 .byte %00100000 +006572 2 20 .byte %00100000 +006573 2 2A .byte %00101010 +006574 2 +006574 2 +006574 1 ;.include "spritegen0.s" +006574 1 ;.include "spritegen1.s" +006574 1 ;.include "spritegen2.s" +006574 1 ;.include "spritegen3.s" +006574 1 .include "spritegen4.s" +006574 2 BOX_MAG: ;4 bytes per row +006574 2 48 DA 5A SAVE_AXY +006577 2 A4 06 ldy PARAM0 +006579 2 BE 00 64 ldx MOD7_2,y +00657C 2 7C 7F 65 jmp (BOX_MAG_JMP,x) +00657F 2 +00657F 2 BOX_MAG_JMP: +00657F 2 8D 65 .addr BOX_MAG_SHIFT0 +006581 2 64 66 .addr BOX_MAG_SHIFT1 +006583 2 6B 67 .addr BOX_MAG_SHIFT2 +006585 2 72 68 .addr BOX_MAG_SHIFT3 +006587 2 79 69 .addr BOX_MAG_SHIFT4 +006589 2 80 6A .addr BOX_MAG_SHIFT5 +00658B 2 87 6B .addr BOX_MAG_SHIFT6 +00658D 2 +00658D 2 +00658D 2 BOX_MAG_SHIFT0: +00658D 2 A4 06 ldy PARAM0 +00658F 2 +00658F 2 A6 07 ldx PARAM1 +006591 2 BD DC 60 lda HGRROWS_H,x +006594 2 85 1A sta SCRATCH1 +006596 2 BD 9C 61 lda HGRROWS_L,x +006599 2 85 19 sta SCRATCH0 +00659B 2 A4 06 ldy PARAM0 +00659D 2 B9 74 63 lda DIV7_2,y +0065A0 2 A8 tay +0065A1 2 +0065A1 2 A9 55 lda #%01010101 +0065A3 2 11 19 ora (SCRATCH0),y +0065A5 2 91 19 sta (SCRATCH0),y +0065A7 2 C8 iny +0065A8 2 C8 iny +0065A9 2 C8 iny +0065AA 2 +0065AA 2 E8 inx +0065AB 2 BD DC 60 lda HGRROWS_H,x +0065AE 2 85 1A sta SCRATCH1 +0065B0 2 BD 9C 61 lda HGRROWS_L,x +0065B3 2 85 19 sta SCRATCH0 +0065B5 2 A4 06 ldy PARAM0 +0065B7 2 B9 74 63 lda DIV7_2,y +0065BA 2 A8 tay +0065BB 2 +0065BB 2 A9 41 lda #%01000001 +0065BD 2 11 19 ora (SCRATCH0),y +0065BF 2 91 19 sta (SCRATCH0),y +0065C1 2 C8 iny +0065C2 2 C8 iny +0065C3 2 C8 iny +0065C4 2 +0065C4 2 E8 inx +0065C5 2 BD DC 60 lda HGRROWS_H,x +0065C8 2 85 1A sta SCRATCH1 +0065CA 2 BD 9C 61 lda HGRROWS_L,x +0065CD 2 85 19 sta SCRATCH0 +0065CF 2 A4 06 ldy PARAM0 +0065D1 2 B9 74 63 lda DIV7_2,y +0065D4 2 A8 tay +0065D5 2 +0065D5 2 A9 41 lda #%01000001 +0065D7 2 11 19 ora (SCRATCH0),y +0065D9 2 91 19 sta (SCRATCH0),y +0065DB 2 C8 iny +0065DC 2 C8 iny +0065DD 2 C8 iny +0065DE 2 +0065DE 2 E8 inx +0065DF 2 BD DC 60 lda HGRROWS_H,x +0065E2 2 85 1A sta SCRATCH1 +0065E4 2 BD 9C 61 lda HGRROWS_L,x +0065E7 2 85 19 sta SCRATCH0 +0065E9 2 A4 06 ldy PARAM0 +0065EB 2 B9 74 63 lda DIV7_2,y +0065EE 2 A8 tay +0065EF 2 +0065EF 2 A9 41 lda #%01000001 +0065F1 2 11 19 ora (SCRATCH0),y +0065F3 2 91 19 sta (SCRATCH0),y +0065F5 2 C8 iny +0065F6 2 C8 iny +0065F7 2 C8 iny +0065F8 2 +0065F8 2 E8 inx +0065F9 2 BD DC 60 lda HGRROWS_H,x +0065FC 2 85 1A sta SCRATCH1 +0065FE 2 BD 9C 61 lda HGRROWS_L,x +006601 2 85 19 sta SCRATCH0 +006603 2 A4 06 ldy PARAM0 +006605 2 B9 74 63 lda DIV7_2,y +006608 2 A8 tay +006609 2 +006609 2 A9 41 lda #%01000001 +00660B 2 11 19 ora (SCRATCH0),y +00660D 2 91 19 sta (SCRATCH0),y +00660F 2 C8 iny +006610 2 C8 iny +006611 2 C8 iny +006612 2 +006612 2 E8 inx +006613 2 BD DC 60 lda HGRROWS_H,x +006616 2 85 1A sta SCRATCH1 +006618 2 BD 9C 61 lda HGRROWS_L,x +00661B 2 85 19 sta SCRATCH0 +00661D 2 A4 06 ldy PARAM0 +00661F 2 B9 74 63 lda DIV7_2,y +006622 2 A8 tay +006623 2 +006623 2 A9 41 lda #%01000001 +006625 2 11 19 ora (SCRATCH0),y +006627 2 91 19 sta (SCRATCH0),y +006629 2 C8 iny +00662A 2 C8 iny +00662B 2 C8 iny +00662C 2 +00662C 2 E8 inx +00662D 2 BD DC 60 lda HGRROWS_H,x +006630 2 85 1A sta SCRATCH1 +006632 2 BD 9C 61 lda HGRROWS_L,x +006635 2 85 19 sta SCRATCH0 +006637 2 A4 06 ldy PARAM0 +006639 2 B9 74 63 lda DIV7_2,y +00663C 2 A8 tay +00663D 2 +00663D 2 A9 41 lda #%01000001 +00663F 2 11 19 ora (SCRATCH0),y +006641 2 91 19 sta (SCRATCH0),y +006643 2 C8 iny +006644 2 C8 iny +006645 2 C8 iny +006646 2 +006646 2 E8 inx +006647 2 BD DC 60 lda HGRROWS_H,x +00664A 2 85 1A sta SCRATCH1 +00664C 2 BD 9C 61 lda HGRROWS_L,x +00664F 2 85 19 sta SCRATCH0 +006651 2 A4 06 ldy PARAM0 +006653 2 B9 74 63 lda DIV7_2,y +006656 2 A8 tay +006657 2 +006657 2 A9 55 lda #%01010101 +006659 2 11 19 ora (SCRATCH0),y +00665B 2 91 19 sta (SCRATCH0),y +00665D 2 C8 iny +00665E 2 C8 iny +00665F 2 C8 iny +006660 2 +006660 2 7A FA 68 RESTORE_AXY +006663 2 60 rts +006664 2 +006664 2 +006664 2 +006664 2 BOX_MAG_SHIFT1: +006664 2 A4 06 ldy PARAM0 +006666 2 +006666 2 A6 07 ldx PARAM1 +006668 2 BD DC 60 lda HGRROWS_H,x +00666B 2 85 1A sta SCRATCH1 +00666D 2 BD 9C 61 lda HGRROWS_L,x +006670 2 85 19 sta SCRATCH0 +006672 2 A4 06 ldy PARAM0 +006674 2 B9 74 63 lda DIV7_2,y +006677 2 A8 tay +006678 2 +006678 2 A9 54 lda #%01010100 +00667A 2 11 19 ora (SCRATCH0),y +00667C 2 91 19 sta (SCRATCH0),y +00667E 2 C8 iny +00667F 2 A9 02 lda #%00000010 +006681 2 11 19 ora (SCRATCH0),y +006683 2 91 19 sta (SCRATCH0),y +006685 2 C8 iny +006686 2 C8 iny +006687 2 +006687 2 E8 inx +006688 2 BD DC 60 lda HGRROWS_H,x +00668B 2 85 1A sta SCRATCH1 +00668D 2 BD 9C 61 lda HGRROWS_L,x +006690 2 85 19 sta SCRATCH0 +006692 2 A4 06 ldy PARAM0 +006694 2 B9 74 63 lda DIV7_2,y +006697 2 A8 tay +006698 2 +006698 2 A9 04 lda #%00000100 +00669A 2 11 19 ora (SCRATCH0),y +00669C 2 91 19 sta (SCRATCH0),y +00669E 2 C8 iny +00669F 2 A9 02 lda #%00000010 +0066A1 2 11 19 ora (SCRATCH0),y +0066A3 2 91 19 sta (SCRATCH0),y +0066A5 2 C8 iny +0066A6 2 C8 iny +0066A7 2 +0066A7 2 E8 inx +0066A8 2 BD DC 60 lda HGRROWS_H,x +0066AB 2 85 1A sta SCRATCH1 +0066AD 2 BD 9C 61 lda HGRROWS_L,x +0066B0 2 85 19 sta SCRATCH0 +0066B2 2 A4 06 ldy PARAM0 +0066B4 2 B9 74 63 lda DIV7_2,y +0066B7 2 A8 tay +0066B8 2 +0066B8 2 A9 04 lda #%00000100 +0066BA 2 11 19 ora (SCRATCH0),y +0066BC 2 91 19 sta (SCRATCH0),y +0066BE 2 C8 iny +0066BF 2 A9 02 lda #%00000010 +0066C1 2 11 19 ora (SCRATCH0),y +0066C3 2 91 19 sta (SCRATCH0),y +0066C5 2 C8 iny +0066C6 2 C8 iny +0066C7 2 +0066C7 2 E8 inx +0066C8 2 BD DC 60 lda HGRROWS_H,x +0066CB 2 85 1A sta SCRATCH1 +0066CD 2 BD 9C 61 lda HGRROWS_L,x +0066D0 2 85 19 sta SCRATCH0 +0066D2 2 A4 06 ldy PARAM0 +0066D4 2 B9 74 63 lda DIV7_2,y +0066D7 2 A8 tay +0066D8 2 +0066D8 2 A9 04 lda #%00000100 +0066DA 2 11 19 ora (SCRATCH0),y +0066DC 2 91 19 sta (SCRATCH0),y +0066DE 2 C8 iny +0066DF 2 A9 02 lda #%00000010 +0066E1 2 11 19 ora (SCRATCH0),y +0066E3 2 91 19 sta (SCRATCH0),y +0066E5 2 C8 iny +0066E6 2 C8 iny +0066E7 2 +0066E7 2 E8 inx +0066E8 2 BD DC 60 lda HGRROWS_H,x +0066EB 2 85 1A sta SCRATCH1 +0066ED 2 BD 9C 61 lda HGRROWS_L,x +0066F0 2 85 19 sta SCRATCH0 +0066F2 2 A4 06 ldy PARAM0 +0066F4 2 B9 74 63 lda DIV7_2,y +0066F7 2 A8 tay +0066F8 2 +0066F8 2 A9 04 lda #%00000100 +0066FA 2 11 19 ora (SCRATCH0),y +0066FC 2 91 19 sta (SCRATCH0),y +0066FE 2 C8 iny +0066FF 2 A9 02 lda #%00000010 +006701 2 11 19 ora (SCRATCH0),y +006703 2 91 19 sta (SCRATCH0),y +006705 2 C8 iny +006706 2 C8 iny +006707 2 +006707 2 E8 inx +006708 2 BD DC 60 lda HGRROWS_H,x +00670B 2 85 1A sta SCRATCH1 +00670D 2 BD 9C 61 lda HGRROWS_L,x +006710 2 85 19 sta SCRATCH0 +006712 2 A4 06 ldy PARAM0 +006714 2 B9 74 63 lda DIV7_2,y +006717 2 A8 tay +006718 2 +006718 2 A9 04 lda #%00000100 +00671A 2 11 19 ora (SCRATCH0),y +00671C 2 91 19 sta (SCRATCH0),y +00671E 2 C8 iny +00671F 2 A9 02 lda #%00000010 +006721 2 11 19 ora (SCRATCH0),y +006723 2 91 19 sta (SCRATCH0),y +006725 2 C8 iny +006726 2 C8 iny +006727 2 +006727 2 E8 inx +006728 2 BD DC 60 lda HGRROWS_H,x +00672B 2 85 1A sta SCRATCH1 +00672D 2 BD 9C 61 lda HGRROWS_L,x +006730 2 85 19 sta SCRATCH0 +006732 2 A4 06 ldy PARAM0 +006734 2 B9 74 63 lda DIV7_2,y +006737 2 A8 tay +006738 2 +006738 2 A9 04 lda #%00000100 +00673A 2 11 19 ora (SCRATCH0),y +00673C 2 91 19 sta (SCRATCH0),y +00673E 2 C8 iny +00673F 2 A9 02 lda #%00000010 +006741 2 11 19 ora (SCRATCH0),y +006743 2 91 19 sta (SCRATCH0),y +006745 2 C8 iny +006746 2 C8 iny +006747 2 +006747 2 E8 inx +006748 2 BD DC 60 lda HGRROWS_H,x +00674B 2 85 1A sta SCRATCH1 +00674D 2 BD 9C 61 lda HGRROWS_L,x +006750 2 85 19 sta SCRATCH0 +006752 2 A4 06 ldy PARAM0 +006754 2 B9 74 63 lda DIV7_2,y +006757 2 A8 tay +006758 2 +006758 2 A9 54 lda #%01010100 +00675A 2 11 19 ora (SCRATCH0),y +00675C 2 91 19 sta (SCRATCH0),y +00675E 2 C8 iny +00675F 2 A9 02 lda #%00000010 +006761 2 11 19 ora (SCRATCH0),y +006763 2 91 19 sta (SCRATCH0),y +006765 2 C8 iny +006766 2 C8 iny +006767 2 +006767 2 7A FA 68 RESTORE_AXY +00676A 2 60 rts +00676B 2 +00676B 2 +00676B 2 +00676B 2 BOX_MAG_SHIFT2: +00676B 2 A4 06 ldy PARAM0 +00676D 2 +00676D 2 A6 07 ldx PARAM1 +00676F 2 BD DC 60 lda HGRROWS_H,x +006772 2 85 1A sta SCRATCH1 +006774 2 BD 9C 61 lda HGRROWS_L,x +006777 2 85 19 sta SCRATCH0 +006779 2 A4 06 ldy PARAM0 +00677B 2 B9 74 63 lda DIV7_2,y +00677E 2 A8 tay +00677F 2 +00677F 2 A9 50 lda #%01010000 +006781 2 11 19 ora (SCRATCH0),y +006783 2 91 19 sta (SCRATCH0),y +006785 2 C8 iny +006786 2 A9 0A lda #%00001010 +006788 2 11 19 ora (SCRATCH0),y +00678A 2 91 19 sta (SCRATCH0),y +00678C 2 C8 iny +00678D 2 C8 iny +00678E 2 +00678E 2 E8 inx +00678F 2 BD DC 60 lda HGRROWS_H,x +006792 2 85 1A sta SCRATCH1 +006794 2 BD 9C 61 lda HGRROWS_L,x +006797 2 85 19 sta SCRATCH0 +006799 2 A4 06 ldy PARAM0 +00679B 2 B9 74 63 lda DIV7_2,y +00679E 2 A8 tay +00679F 2 +00679F 2 A9 10 lda #%00010000 +0067A1 2 11 19 ora (SCRATCH0),y +0067A3 2 91 19 sta (SCRATCH0),y +0067A5 2 C8 iny +0067A6 2 A9 08 lda #%00001000 +0067A8 2 11 19 ora (SCRATCH0),y +0067AA 2 91 19 sta (SCRATCH0),y +0067AC 2 C8 iny +0067AD 2 C8 iny +0067AE 2 +0067AE 2 E8 inx +0067AF 2 BD DC 60 lda HGRROWS_H,x +0067B2 2 85 1A sta SCRATCH1 +0067B4 2 BD 9C 61 lda HGRROWS_L,x +0067B7 2 85 19 sta SCRATCH0 +0067B9 2 A4 06 ldy PARAM0 +0067BB 2 B9 74 63 lda DIV7_2,y +0067BE 2 A8 tay +0067BF 2 +0067BF 2 A9 10 lda #%00010000 +0067C1 2 11 19 ora (SCRATCH0),y +0067C3 2 91 19 sta (SCRATCH0),y +0067C5 2 C8 iny +0067C6 2 A9 08 lda #%00001000 +0067C8 2 11 19 ora (SCRATCH0),y +0067CA 2 91 19 sta (SCRATCH0),y +0067CC 2 C8 iny +0067CD 2 C8 iny +0067CE 2 +0067CE 2 E8 inx +0067CF 2 BD DC 60 lda HGRROWS_H,x +0067D2 2 85 1A sta SCRATCH1 +0067D4 2 BD 9C 61 lda HGRROWS_L,x +0067D7 2 85 19 sta SCRATCH0 +0067D9 2 A4 06 ldy PARAM0 +0067DB 2 B9 74 63 lda DIV7_2,y +0067DE 2 A8 tay +0067DF 2 +0067DF 2 A9 10 lda #%00010000 +0067E1 2 11 19 ora (SCRATCH0),y +0067E3 2 91 19 sta (SCRATCH0),y +0067E5 2 C8 iny +0067E6 2 A9 08 lda #%00001000 +0067E8 2 11 19 ora (SCRATCH0),y +0067EA 2 91 19 sta (SCRATCH0),y +0067EC 2 C8 iny +0067ED 2 C8 iny +0067EE 2 +0067EE 2 E8 inx +0067EF 2 BD DC 60 lda HGRROWS_H,x +0067F2 2 85 1A sta SCRATCH1 +0067F4 2 BD 9C 61 lda HGRROWS_L,x +0067F7 2 85 19 sta SCRATCH0 +0067F9 2 A4 06 ldy PARAM0 +0067FB 2 B9 74 63 lda DIV7_2,y +0067FE 2 A8 tay +0067FF 2 +0067FF 2 A9 10 lda #%00010000 +006801 2 11 19 ora (SCRATCH0),y +006803 2 91 19 sta (SCRATCH0),y +006805 2 C8 iny +006806 2 A9 08 lda #%00001000 +006808 2 11 19 ora (SCRATCH0),y +00680A 2 91 19 sta (SCRATCH0),y +00680C 2 C8 iny +00680D 2 C8 iny +00680E 2 +00680E 2 E8 inx +00680F 2 BD DC 60 lda HGRROWS_H,x +006812 2 85 1A sta SCRATCH1 +006814 2 BD 9C 61 lda HGRROWS_L,x +006817 2 85 19 sta SCRATCH0 +006819 2 A4 06 ldy PARAM0 +00681B 2 B9 74 63 lda DIV7_2,y +00681E 2 A8 tay +00681F 2 +00681F 2 A9 10 lda #%00010000 +006821 2 11 19 ora (SCRATCH0),y +006823 2 91 19 sta (SCRATCH0),y +006825 2 C8 iny +006826 2 A9 08 lda #%00001000 +006828 2 11 19 ora (SCRATCH0),y +00682A 2 91 19 sta (SCRATCH0),y +00682C 2 C8 iny +00682D 2 C8 iny +00682E 2 +00682E 2 E8 inx +00682F 2 BD DC 60 lda HGRROWS_H,x +006832 2 85 1A sta SCRATCH1 +006834 2 BD 9C 61 lda HGRROWS_L,x +006837 2 85 19 sta SCRATCH0 +006839 2 A4 06 ldy PARAM0 +00683B 2 B9 74 63 lda DIV7_2,y +00683E 2 A8 tay +00683F 2 +00683F 2 A9 10 lda #%00010000 +006841 2 11 19 ora (SCRATCH0),y +006843 2 91 19 sta (SCRATCH0),y +006845 2 C8 iny +006846 2 A9 08 lda #%00001000 +006848 2 11 19 ora (SCRATCH0),y +00684A 2 91 19 sta (SCRATCH0),y +00684C 2 C8 iny +00684D 2 C8 iny +00684E 2 +00684E 2 E8 inx +00684F 2 BD DC 60 lda HGRROWS_H,x +006852 2 85 1A sta SCRATCH1 +006854 2 BD 9C 61 lda HGRROWS_L,x +006857 2 85 19 sta SCRATCH0 +006859 2 A4 06 ldy PARAM0 +00685B 2 B9 74 63 lda DIV7_2,y +00685E 2 A8 tay +00685F 2 +00685F 2 A9 50 lda #%01010000 +006861 2 11 19 ora (SCRATCH0),y +006863 2 91 19 sta (SCRATCH0),y +006865 2 C8 iny +006866 2 A9 0A lda #%00001010 +006868 2 11 19 ora (SCRATCH0),y +00686A 2 91 19 sta (SCRATCH0),y +00686C 2 C8 iny +00686D 2 C8 iny +00686E 2 +00686E 2 7A FA 68 RESTORE_AXY +006871 2 60 rts +006872 2 +006872 2 +006872 2 +006872 2 BOX_MAG_SHIFT3: +006872 2 A4 06 ldy PARAM0 +006874 2 +006874 2 A6 07 ldx PARAM1 +006876 2 BD DC 60 lda HGRROWS_H,x +006879 2 85 1A sta SCRATCH1 +00687B 2 BD 9C 61 lda HGRROWS_L,x +00687E 2 85 19 sta SCRATCH0 +006880 2 A4 06 ldy PARAM0 +006882 2 B9 74 63 lda DIV7_2,y +006885 2 A8 tay +006886 2 +006886 2 A9 40 lda #%01000000 +006888 2 11 19 ora (SCRATCH0),y +00688A 2 91 19 sta (SCRATCH0),y +00688C 2 C8 iny +00688D 2 A9 2A lda #%00101010 +00688F 2 11 19 ora (SCRATCH0),y +006891 2 91 19 sta (SCRATCH0),y +006893 2 C8 iny +006894 2 C8 iny +006895 2 +006895 2 E8 inx +006896 2 BD DC 60 lda HGRROWS_H,x +006899 2 85 1A sta SCRATCH1 +00689B 2 BD 9C 61 lda HGRROWS_L,x +00689E 2 85 19 sta SCRATCH0 +0068A0 2 A4 06 ldy PARAM0 +0068A2 2 B9 74 63 lda DIV7_2,y +0068A5 2 A8 tay +0068A6 2 +0068A6 2 A9 40 lda #%01000000 +0068A8 2 11 19 ora (SCRATCH0),y +0068AA 2 91 19 sta (SCRATCH0),y +0068AC 2 C8 iny +0068AD 2 A9 20 lda #%00100000 +0068AF 2 11 19 ora (SCRATCH0),y +0068B1 2 91 19 sta (SCRATCH0),y +0068B3 2 C8 iny +0068B4 2 C8 iny +0068B5 2 +0068B5 2 E8 inx +0068B6 2 BD DC 60 lda HGRROWS_H,x +0068B9 2 85 1A sta SCRATCH1 +0068BB 2 BD 9C 61 lda HGRROWS_L,x +0068BE 2 85 19 sta SCRATCH0 +0068C0 2 A4 06 ldy PARAM0 +0068C2 2 B9 74 63 lda DIV7_2,y +0068C5 2 A8 tay +0068C6 2 +0068C6 2 A9 40 lda #%01000000 +0068C8 2 11 19 ora (SCRATCH0),y +0068CA 2 91 19 sta (SCRATCH0),y +0068CC 2 C8 iny +0068CD 2 A9 20 lda #%00100000 +0068CF 2 11 19 ora (SCRATCH0),y +0068D1 2 91 19 sta (SCRATCH0),y +0068D3 2 C8 iny +0068D4 2 C8 iny +0068D5 2 +0068D5 2 E8 inx +0068D6 2 BD DC 60 lda HGRROWS_H,x +0068D9 2 85 1A sta SCRATCH1 +0068DB 2 BD 9C 61 lda HGRROWS_L,x +0068DE 2 85 19 sta SCRATCH0 +0068E0 2 A4 06 ldy PARAM0 +0068E2 2 B9 74 63 lda DIV7_2,y +0068E5 2 A8 tay +0068E6 2 +0068E6 2 A9 40 lda #%01000000 +0068E8 2 11 19 ora (SCRATCH0),y +0068EA 2 91 19 sta (SCRATCH0),y +0068EC 2 C8 iny +0068ED 2 A9 20 lda #%00100000 +0068EF 2 11 19 ora (SCRATCH0),y +0068F1 2 91 19 sta (SCRATCH0),y +0068F3 2 C8 iny +0068F4 2 C8 iny +0068F5 2 +0068F5 2 E8 inx +0068F6 2 BD DC 60 lda HGRROWS_H,x +0068F9 2 85 1A sta SCRATCH1 +0068FB 2 BD 9C 61 lda HGRROWS_L,x +0068FE 2 85 19 sta SCRATCH0 +006900 2 A4 06 ldy PARAM0 +006902 2 B9 74 63 lda DIV7_2,y +006905 2 A8 tay +006906 2 +006906 2 A9 40 lda #%01000000 +006908 2 11 19 ora (SCRATCH0),y +00690A 2 91 19 sta (SCRATCH0),y +00690C 2 C8 iny +00690D 2 A9 20 lda #%00100000 +00690F 2 11 19 ora (SCRATCH0),y +006911 2 91 19 sta (SCRATCH0),y +006913 2 C8 iny +006914 2 C8 iny +006915 2 +006915 2 E8 inx +006916 2 BD DC 60 lda HGRROWS_H,x +006919 2 85 1A sta SCRATCH1 +00691B 2 BD 9C 61 lda HGRROWS_L,x +00691E 2 85 19 sta SCRATCH0 +006920 2 A4 06 ldy PARAM0 +006922 2 B9 74 63 lda DIV7_2,y +006925 2 A8 tay +006926 2 +006926 2 A9 40 lda #%01000000 +006928 2 11 19 ora (SCRATCH0),y +00692A 2 91 19 sta (SCRATCH0),y +00692C 2 C8 iny +00692D 2 A9 20 lda #%00100000 +00692F 2 11 19 ora (SCRATCH0),y +006931 2 91 19 sta (SCRATCH0),y +006933 2 C8 iny +006934 2 C8 iny +006935 2 +006935 2 E8 inx +006936 2 BD DC 60 lda HGRROWS_H,x +006939 2 85 1A sta SCRATCH1 +00693B 2 BD 9C 61 lda HGRROWS_L,x +00693E 2 85 19 sta SCRATCH0 +006940 2 A4 06 ldy PARAM0 +006942 2 B9 74 63 lda DIV7_2,y +006945 2 A8 tay +006946 2 +006946 2 A9 40 lda #%01000000 +006948 2 11 19 ora (SCRATCH0),y +00694A 2 91 19 sta (SCRATCH0),y +00694C 2 C8 iny +00694D 2 A9 20 lda #%00100000 +00694F 2 11 19 ora (SCRATCH0),y +006951 2 91 19 sta (SCRATCH0),y +006953 2 C8 iny +006954 2 C8 iny +006955 2 +006955 2 E8 inx +006956 2 BD DC 60 lda HGRROWS_H,x +006959 2 85 1A sta SCRATCH1 +00695B 2 BD 9C 61 lda HGRROWS_L,x +00695E 2 85 19 sta SCRATCH0 +006960 2 A4 06 ldy PARAM0 +006962 2 B9 74 63 lda DIV7_2,y +006965 2 A8 tay +006966 2 +006966 2 A9 40 lda #%01000000 +006968 2 11 19 ora (SCRATCH0),y +00696A 2 91 19 sta (SCRATCH0),y +00696C 2 C8 iny +00696D 2 A9 2A lda #%00101010 +00696F 2 11 19 ora (SCRATCH0),y +006971 2 91 19 sta (SCRATCH0),y +006973 2 C8 iny +006974 2 C8 iny +006975 2 +006975 2 7A FA 68 RESTORE_AXY +006978 2 60 rts +006979 2 +006979 2 +006979 2 +006979 2 BOX_MAG_SHIFT4: +006979 2 A4 06 ldy PARAM0 +00697B 2 +00697B 2 A6 07 ldx PARAM1 +00697D 2 BD DC 60 lda HGRROWS_H,x +006980 2 85 1A sta SCRATCH1 +006982 2 BD 9C 61 lda HGRROWS_L,x +006985 2 85 19 sta SCRATCH0 +006987 2 A4 06 ldy PARAM0 +006989 2 B9 74 63 lda DIV7_2,y +00698C 2 A8 tay +00698D 2 +00698D 2 C8 iny +00698E 2 A9 2A lda #%00101010 +006990 2 11 19 ora (SCRATCH0),y +006992 2 91 19 sta (SCRATCH0),y +006994 2 C8 iny +006995 2 A9 01 lda #%00000001 +006997 2 11 19 ora (SCRATCH0),y +006999 2 91 19 sta (SCRATCH0),y +00699B 2 C8 iny +00699C 2 +00699C 2 E8 inx +00699D 2 BD DC 60 lda HGRROWS_H,x +0069A0 2 85 1A sta SCRATCH1 +0069A2 2 BD 9C 61 lda HGRROWS_L,x +0069A5 2 85 19 sta SCRATCH0 +0069A7 2 A4 06 ldy PARAM0 +0069A9 2 B9 74 63 lda DIV7_2,y +0069AC 2 A8 tay +0069AD 2 +0069AD 2 C8 iny +0069AE 2 A9 02 lda #%00000010 +0069B0 2 11 19 ora (SCRATCH0),y +0069B2 2 91 19 sta (SCRATCH0),y +0069B4 2 C8 iny +0069B5 2 A9 01 lda #%00000001 +0069B7 2 11 19 ora (SCRATCH0),y +0069B9 2 91 19 sta (SCRATCH0),y +0069BB 2 C8 iny +0069BC 2 +0069BC 2 E8 inx +0069BD 2 BD DC 60 lda HGRROWS_H,x +0069C0 2 85 1A sta SCRATCH1 +0069C2 2 BD 9C 61 lda HGRROWS_L,x +0069C5 2 85 19 sta SCRATCH0 +0069C7 2 A4 06 ldy PARAM0 +0069C9 2 B9 74 63 lda DIV7_2,y +0069CC 2 A8 tay +0069CD 2 +0069CD 2 C8 iny +0069CE 2 A9 02 lda #%00000010 +0069D0 2 11 19 ora (SCRATCH0),y +0069D2 2 91 19 sta (SCRATCH0),y +0069D4 2 C8 iny +0069D5 2 A9 01 lda #%00000001 +0069D7 2 11 19 ora (SCRATCH0),y +0069D9 2 91 19 sta (SCRATCH0),y +0069DB 2 C8 iny +0069DC 2 +0069DC 2 E8 inx +0069DD 2 BD DC 60 lda HGRROWS_H,x +0069E0 2 85 1A sta SCRATCH1 +0069E2 2 BD 9C 61 lda HGRROWS_L,x +0069E5 2 85 19 sta SCRATCH0 +0069E7 2 A4 06 ldy PARAM0 +0069E9 2 B9 74 63 lda DIV7_2,y +0069EC 2 A8 tay +0069ED 2 +0069ED 2 C8 iny +0069EE 2 A9 02 lda #%00000010 +0069F0 2 11 19 ora (SCRATCH0),y +0069F2 2 91 19 sta (SCRATCH0),y +0069F4 2 C8 iny +0069F5 2 A9 01 lda #%00000001 +0069F7 2 11 19 ora (SCRATCH0),y +0069F9 2 91 19 sta (SCRATCH0),y +0069FB 2 C8 iny +0069FC 2 +0069FC 2 E8 inx +0069FD 2 BD DC 60 lda HGRROWS_H,x +006A00 2 85 1A sta SCRATCH1 +006A02 2 BD 9C 61 lda HGRROWS_L,x +006A05 2 85 19 sta SCRATCH0 +006A07 2 A4 06 ldy PARAM0 +006A09 2 B9 74 63 lda DIV7_2,y +006A0C 2 A8 tay +006A0D 2 +006A0D 2 C8 iny +006A0E 2 A9 02 lda #%00000010 +006A10 2 11 19 ora (SCRATCH0),y +006A12 2 91 19 sta (SCRATCH0),y +006A14 2 C8 iny +006A15 2 A9 01 lda #%00000001 +006A17 2 11 19 ora (SCRATCH0),y +006A19 2 91 19 sta (SCRATCH0),y +006A1B 2 C8 iny +006A1C 2 +006A1C 2 E8 inx +006A1D 2 BD DC 60 lda HGRROWS_H,x +006A20 2 85 1A sta SCRATCH1 +006A22 2 BD 9C 61 lda HGRROWS_L,x +006A25 2 85 19 sta SCRATCH0 +006A27 2 A4 06 ldy PARAM0 +006A29 2 B9 74 63 lda DIV7_2,y +006A2C 2 A8 tay +006A2D 2 +006A2D 2 C8 iny +006A2E 2 A9 02 lda #%00000010 +006A30 2 11 19 ora (SCRATCH0),y +006A32 2 91 19 sta (SCRATCH0),y +006A34 2 C8 iny +006A35 2 A9 01 lda #%00000001 +006A37 2 11 19 ora (SCRATCH0),y +006A39 2 91 19 sta (SCRATCH0),y +006A3B 2 C8 iny +006A3C 2 +006A3C 2 E8 inx +006A3D 2 BD DC 60 lda HGRROWS_H,x +006A40 2 85 1A sta SCRATCH1 +006A42 2 BD 9C 61 lda HGRROWS_L,x +006A45 2 85 19 sta SCRATCH0 +006A47 2 A4 06 ldy PARAM0 +006A49 2 B9 74 63 lda DIV7_2,y +006A4C 2 A8 tay +006A4D 2 +006A4D 2 C8 iny +006A4E 2 A9 02 lda #%00000010 +006A50 2 11 19 ora (SCRATCH0),y +006A52 2 91 19 sta (SCRATCH0),y +006A54 2 C8 iny +006A55 2 A9 01 lda #%00000001 +006A57 2 11 19 ora (SCRATCH0),y +006A59 2 91 19 sta (SCRATCH0),y +006A5B 2 C8 iny +006A5C 2 +006A5C 2 E8 inx +006A5D 2 BD DC 60 lda HGRROWS_H,x +006A60 2 85 1A sta SCRATCH1 +006A62 2 BD 9C 61 lda HGRROWS_L,x +006A65 2 85 19 sta SCRATCH0 +006A67 2 A4 06 ldy PARAM0 +006A69 2 B9 74 63 lda DIV7_2,y +006A6C 2 A8 tay +006A6D 2 +006A6D 2 C8 iny +006A6E 2 A9 2A lda #%00101010 +006A70 2 11 19 ora (SCRATCH0),y +006A72 2 91 19 sta (SCRATCH0),y +006A74 2 C8 iny +006A75 2 A9 01 lda #%00000001 +006A77 2 11 19 ora (SCRATCH0),y +006A79 2 91 19 sta (SCRATCH0),y +006A7B 2 C8 iny +006A7C 2 +006A7C 2 7A FA 68 RESTORE_AXY +006A7F 2 60 rts +006A80 2 +006A80 2 +006A80 2 +006A80 2 BOX_MAG_SHIFT5: +006A80 2 A4 06 ldy PARAM0 +006A82 2 +006A82 2 A6 07 ldx PARAM1 +006A84 2 BD DC 60 lda HGRROWS_H,x +006A87 2 85 1A sta SCRATCH1 +006A89 2 BD 9C 61 lda HGRROWS_L,x +006A8C 2 85 19 sta SCRATCH0 +006A8E 2 A4 06 ldy PARAM0 +006A90 2 B9 74 63 lda DIV7_2,y +006A93 2 A8 tay +006A94 2 +006A94 2 C8 iny +006A95 2 A9 28 lda #%00101000 +006A97 2 11 19 ora (SCRATCH0),y +006A99 2 91 19 sta (SCRATCH0),y +006A9B 2 C8 iny +006A9C 2 A9 05 lda #%00000101 +006A9E 2 11 19 ora (SCRATCH0),y +006AA0 2 91 19 sta (SCRATCH0),y +006AA2 2 C8 iny +006AA3 2 +006AA3 2 E8 inx +006AA4 2 BD DC 60 lda HGRROWS_H,x +006AA7 2 85 1A sta SCRATCH1 +006AA9 2 BD 9C 61 lda HGRROWS_L,x +006AAC 2 85 19 sta SCRATCH0 +006AAE 2 A4 06 ldy PARAM0 +006AB0 2 B9 74 63 lda DIV7_2,y +006AB3 2 A8 tay +006AB4 2 +006AB4 2 C8 iny +006AB5 2 A9 08 lda #%00001000 +006AB7 2 11 19 ora (SCRATCH0),y +006AB9 2 91 19 sta (SCRATCH0),y +006ABB 2 C8 iny +006ABC 2 A9 04 lda #%00000100 +006ABE 2 11 19 ora (SCRATCH0),y +006AC0 2 91 19 sta (SCRATCH0),y +006AC2 2 C8 iny +006AC3 2 +006AC3 2 E8 inx +006AC4 2 BD DC 60 lda HGRROWS_H,x +006AC7 2 85 1A sta SCRATCH1 +006AC9 2 BD 9C 61 lda HGRROWS_L,x +006ACC 2 85 19 sta SCRATCH0 +006ACE 2 A4 06 ldy PARAM0 +006AD0 2 B9 74 63 lda DIV7_2,y +006AD3 2 A8 tay +006AD4 2 +006AD4 2 C8 iny +006AD5 2 A9 08 lda #%00001000 +006AD7 2 11 19 ora (SCRATCH0),y +006AD9 2 91 19 sta (SCRATCH0),y +006ADB 2 C8 iny +006ADC 2 A9 04 lda #%00000100 +006ADE 2 11 19 ora (SCRATCH0),y +006AE0 2 91 19 sta (SCRATCH0),y +006AE2 2 C8 iny +006AE3 2 +006AE3 2 E8 inx +006AE4 2 BD DC 60 lda HGRROWS_H,x +006AE7 2 85 1A sta SCRATCH1 +006AE9 2 BD 9C 61 lda HGRROWS_L,x +006AEC 2 85 19 sta SCRATCH0 +006AEE 2 A4 06 ldy PARAM0 +006AF0 2 B9 74 63 lda DIV7_2,y +006AF3 2 A8 tay +006AF4 2 +006AF4 2 C8 iny +006AF5 2 A9 08 lda #%00001000 +006AF7 2 11 19 ora (SCRATCH0),y +006AF9 2 91 19 sta (SCRATCH0),y +006AFB 2 C8 iny +006AFC 2 A9 04 lda #%00000100 +006AFE 2 11 19 ora (SCRATCH0),y +006B00 2 91 19 sta (SCRATCH0),y +006B02 2 C8 iny +006B03 2 +006B03 2 E8 inx +006B04 2 BD DC 60 lda HGRROWS_H,x +006B07 2 85 1A sta SCRATCH1 +006B09 2 BD 9C 61 lda HGRROWS_L,x +006B0C 2 85 19 sta SCRATCH0 +006B0E 2 A4 06 ldy PARAM0 +006B10 2 B9 74 63 lda DIV7_2,y +006B13 2 A8 tay +006B14 2 +006B14 2 C8 iny +006B15 2 A9 08 lda #%00001000 +006B17 2 11 19 ora (SCRATCH0),y +006B19 2 91 19 sta (SCRATCH0),y +006B1B 2 C8 iny +006B1C 2 A9 04 lda #%00000100 +006B1E 2 11 19 ora (SCRATCH0),y +006B20 2 91 19 sta (SCRATCH0),y +006B22 2 C8 iny +006B23 2 +006B23 2 E8 inx +006B24 2 BD DC 60 lda HGRROWS_H,x +006B27 2 85 1A sta SCRATCH1 +006B29 2 BD 9C 61 lda HGRROWS_L,x +006B2C 2 85 19 sta SCRATCH0 +006B2E 2 A4 06 ldy PARAM0 +006B30 2 B9 74 63 lda DIV7_2,y +006B33 2 A8 tay +006B34 2 +006B34 2 C8 iny +006B35 2 A9 08 lda #%00001000 +006B37 2 11 19 ora (SCRATCH0),y +006B39 2 91 19 sta (SCRATCH0),y +006B3B 2 C8 iny +006B3C 2 A9 04 lda #%00000100 +006B3E 2 11 19 ora (SCRATCH0),y +006B40 2 91 19 sta (SCRATCH0),y +006B42 2 C8 iny +006B43 2 +006B43 2 E8 inx +006B44 2 BD DC 60 lda HGRROWS_H,x +006B47 2 85 1A sta SCRATCH1 +006B49 2 BD 9C 61 lda HGRROWS_L,x +006B4C 2 85 19 sta SCRATCH0 +006B4E 2 A4 06 ldy PARAM0 +006B50 2 B9 74 63 lda DIV7_2,y +006B53 2 A8 tay +006B54 2 +006B54 2 C8 iny +006B55 2 A9 08 lda #%00001000 +006B57 2 11 19 ora (SCRATCH0),y +006B59 2 91 19 sta (SCRATCH0),y +006B5B 2 C8 iny +006B5C 2 A9 04 lda #%00000100 +006B5E 2 11 19 ora (SCRATCH0),y +006B60 2 91 19 sta (SCRATCH0),y +006B62 2 C8 iny +006B63 2 +006B63 2 E8 inx +006B64 2 BD DC 60 lda HGRROWS_H,x +006B67 2 85 1A sta SCRATCH1 +006B69 2 BD 9C 61 lda HGRROWS_L,x +006B6C 2 85 19 sta SCRATCH0 +006B6E 2 A4 06 ldy PARAM0 +006B70 2 B9 74 63 lda DIV7_2,y +006B73 2 A8 tay +006B74 2 +006B74 2 C8 iny +006B75 2 A9 28 lda #%00101000 +006B77 2 11 19 ora (SCRATCH0),y +006B79 2 91 19 sta (SCRATCH0),y +006B7B 2 C8 iny +006B7C 2 A9 05 lda #%00000101 +006B7E 2 11 19 ora (SCRATCH0),y +006B80 2 91 19 sta (SCRATCH0),y +006B82 2 C8 iny +006B83 2 +006B83 2 7A FA 68 RESTORE_AXY +006B86 2 60 rts +006B87 2 +006B87 2 +006B87 2 +006B87 2 BOX_MAG_SHIFT6: +006B87 2 A4 06 ldy PARAM0 +006B89 2 +006B89 2 A6 07 ldx PARAM1 +006B8B 2 BD DC 60 lda HGRROWS_H,x +006B8E 2 85 1A sta SCRATCH1 +006B90 2 BD 9C 61 lda HGRROWS_L,x +006B93 2 85 19 sta SCRATCH0 +006B95 2 A4 06 ldy PARAM0 +006B97 2 B9 74 63 lda DIV7_2,y +006B9A 2 A8 tay +006B9B 2 +006B9B 2 C8 iny +006B9C 2 A9 20 lda #%00100000 +006B9E 2 11 19 ora (SCRATCH0),y +006BA0 2 91 19 sta (SCRATCH0),y +006BA2 2 C8 iny +006BA3 2 A9 15 lda #%00010101 +006BA5 2 11 19 ora (SCRATCH0),y +006BA7 2 91 19 sta (SCRATCH0),y +006BA9 2 C8 iny +006BAA 2 +006BAA 2 E8 inx +006BAB 2 BD DC 60 lda HGRROWS_H,x +006BAE 2 85 1A sta SCRATCH1 +006BB0 2 BD 9C 61 lda HGRROWS_L,x +006BB3 2 85 19 sta SCRATCH0 +006BB5 2 A4 06 ldy PARAM0 +006BB7 2 B9 74 63 lda DIV7_2,y +006BBA 2 A8 tay +006BBB 2 +006BBB 2 C8 iny +006BBC 2 A9 20 lda #%00100000 +006BBE 2 11 19 ora (SCRATCH0),y +006BC0 2 91 19 sta (SCRATCH0),y +006BC2 2 C8 iny +006BC3 2 A9 10 lda #%00010000 +006BC5 2 11 19 ora (SCRATCH0),y +006BC7 2 91 19 sta (SCRATCH0),y +006BC9 2 C8 iny +006BCA 2 +006BCA 2 E8 inx +006BCB 2 BD DC 60 lda HGRROWS_H,x +006BCE 2 85 1A sta SCRATCH1 +006BD0 2 BD 9C 61 lda HGRROWS_L,x +006BD3 2 85 19 sta SCRATCH0 +006BD5 2 A4 06 ldy PARAM0 +006BD7 2 B9 74 63 lda DIV7_2,y +006BDA 2 A8 tay +006BDB 2 +006BDB 2 C8 iny +006BDC 2 A9 20 lda #%00100000 +006BDE 2 11 19 ora (SCRATCH0),y +006BE0 2 91 19 sta (SCRATCH0),y +006BE2 2 C8 iny +006BE3 2 A9 10 lda #%00010000 +006BE5 2 11 19 ora (SCRATCH0),y +006BE7 2 91 19 sta (SCRATCH0),y +006BE9 2 C8 iny +006BEA 2 +006BEA 2 E8 inx +006BEB 2 BD DC 60 lda HGRROWS_H,x +006BEE 2 85 1A sta SCRATCH1 +006BF0 2 BD 9C 61 lda HGRROWS_L,x +006BF3 2 85 19 sta SCRATCH0 +006BF5 2 A4 06 ldy PARAM0 +006BF7 2 B9 74 63 lda DIV7_2,y +006BFA 2 A8 tay +006BFB 2 +006BFB 2 C8 iny +006BFC 2 A9 20 lda #%00100000 +006BFE 2 11 19 ora (SCRATCH0),y +006C00 2 91 19 sta (SCRATCH0),y +006C02 2 C8 iny +006C03 2 A9 10 lda #%00010000 +006C05 2 11 19 ora (SCRATCH0),y +006C07 2 91 19 sta (SCRATCH0),y +006C09 2 C8 iny +006C0A 2 +006C0A 2 E8 inx +006C0B 2 BD DC 60 lda HGRROWS_H,x +006C0E 2 85 1A sta SCRATCH1 +006C10 2 BD 9C 61 lda HGRROWS_L,x +006C13 2 85 19 sta SCRATCH0 +006C15 2 A4 06 ldy PARAM0 +006C17 2 B9 74 63 lda DIV7_2,y +006C1A 2 A8 tay +006C1B 2 +006C1B 2 C8 iny +006C1C 2 A9 20 lda #%00100000 +006C1E 2 11 19 ora (SCRATCH0),y +006C20 2 91 19 sta (SCRATCH0),y +006C22 2 C8 iny +006C23 2 A9 10 lda #%00010000 +006C25 2 11 19 ora (SCRATCH0),y +006C27 2 91 19 sta (SCRATCH0),y +006C29 2 C8 iny +006C2A 2 +006C2A 2 E8 inx +006C2B 2 BD DC 60 lda HGRROWS_H,x +006C2E 2 85 1A sta SCRATCH1 +006C30 2 BD 9C 61 lda HGRROWS_L,x +006C33 2 85 19 sta SCRATCH0 +006C35 2 A4 06 ldy PARAM0 +006C37 2 B9 74 63 lda DIV7_2,y +006C3A 2 A8 tay +006C3B 2 +006C3B 2 C8 iny +006C3C 2 A9 20 lda #%00100000 +006C3E 2 11 19 ora (SCRATCH0),y +006C40 2 91 19 sta (SCRATCH0),y +006C42 2 C8 iny +006C43 2 A9 10 lda #%00010000 +006C45 2 11 19 ora (SCRATCH0),y +006C47 2 91 19 sta (SCRATCH0),y +006C49 2 C8 iny +006C4A 2 +006C4A 2 E8 inx +006C4B 2 BD DC 60 lda HGRROWS_H,x +006C4E 2 85 1A sta SCRATCH1 +006C50 2 BD 9C 61 lda HGRROWS_L,x +006C53 2 85 19 sta SCRATCH0 +006C55 2 A4 06 ldy PARAM0 +006C57 2 B9 74 63 lda DIV7_2,y +006C5A 2 A8 tay +006C5B 2 +006C5B 2 C8 iny +006C5C 2 A9 20 lda #%00100000 +006C5E 2 11 19 ora (SCRATCH0),y +006C60 2 91 19 sta (SCRATCH0),y +006C62 2 C8 iny +006C63 2 A9 10 lda #%00010000 +006C65 2 11 19 ora (SCRATCH0),y +006C67 2 91 19 sta (SCRATCH0),y +006C69 2 C8 iny +006C6A 2 +006C6A 2 E8 inx +006C6B 2 BD DC 60 lda HGRROWS_H,x +006C6E 2 85 1A sta SCRATCH1 +006C70 2 BD 9C 61 lda HGRROWS_L,x +006C73 2 85 19 sta SCRATCH0 +006C75 2 A4 06 ldy PARAM0 +006C77 2 B9 74 63 lda DIV7_2,y +006C7A 2 A8 tay +006C7B 2 +006C7B 2 C8 iny +006C7C 2 A9 20 lda #%00100000 +006C7E 2 11 19 ora (SCRATCH0),y +006C80 2 91 19 sta (SCRATCH0),y +006C82 2 C8 iny +006C83 2 A9 15 lda #%00010101 +006C85 2 11 19 ora (SCRATCH0),y +006C87 2 91 19 sta (SCRATCH0),y +006C89 2 C8 iny +006C8A 2 +006C8A 2 7A FA 68 RESTORE_AXY +006C8D 2 60 rts +006C8E 2 +006C8E 2 +006C8E 2 +006C8E 2 +006C8E 1 .include "spritegen5.s" +006C8E 2 BOX_GRN: ;4 bytes per row +006C8E 2 48 DA 5A SAVE_AXY +006C91 2 A4 06 ldy PARAM0 +006C93 2 BE 00 64 ldx MOD7_2,y +006C96 2 7C 99 6C jmp (BOX_GRN_JMP,x) +006C99 2 +006C99 2 BOX_GRN_JMP: +006C99 2 A7 6C .addr BOX_GRN_SHIFT0 +006C9B 2 AE 6D .addr BOX_GRN_SHIFT1 +006C9D 2 B5 6E .addr BOX_GRN_SHIFT2 +006C9F 2 BC 6F .addr BOX_GRN_SHIFT3 +006CA1 2 93 70 .addr BOX_GRN_SHIFT4 +006CA3 2 9A 71 .addr BOX_GRN_SHIFT5 +006CA5 2 A1 72 .addr BOX_GRN_SHIFT6 +006CA7 2 +006CA7 2 +006CA7 2 BOX_GRN_SHIFT0: +006CA7 2 A4 06 ldy PARAM0 +006CA9 2 +006CA9 2 A6 07 ldx PARAM1 +006CAB 2 BD DC 60 lda HGRROWS_H,x +006CAE 2 85 1A sta SCRATCH1 +006CB0 2 BD 9C 61 lda HGRROWS_L,x +006CB3 2 85 19 sta SCRATCH0 +006CB5 2 A4 06 ldy PARAM0 +006CB7 2 B9 74 63 lda DIV7_2,y +006CBA 2 A8 tay +006CBB 2 +006CBB 2 A9 2A lda #%00101010 +006CBD 2 11 19 ora (SCRATCH0),y +006CBF 2 91 19 sta (SCRATCH0),y +006CC1 2 C8 iny +006CC2 2 A9 01 lda #%00000001 +006CC4 2 11 19 ora (SCRATCH0),y +006CC6 2 91 19 sta (SCRATCH0),y +006CC8 2 C8 iny +006CC9 2 C8 iny +006CCA 2 +006CCA 2 E8 inx +006CCB 2 BD DC 60 lda HGRROWS_H,x +006CCE 2 85 1A sta SCRATCH1 +006CD0 2 BD 9C 61 lda HGRROWS_L,x +006CD3 2 85 19 sta SCRATCH0 +006CD5 2 A4 06 ldy PARAM0 +006CD7 2 B9 74 63 lda DIV7_2,y +006CDA 2 A8 tay +006CDB 2 +006CDB 2 A9 02 lda #%00000010 +006CDD 2 11 19 ora (SCRATCH0),y +006CDF 2 91 19 sta (SCRATCH0),y +006CE1 2 C8 iny +006CE2 2 A9 01 lda #%00000001 +006CE4 2 11 19 ora (SCRATCH0),y +006CE6 2 91 19 sta (SCRATCH0),y +006CE8 2 C8 iny +006CE9 2 C8 iny +006CEA 2 +006CEA 2 E8 inx +006CEB 2 BD DC 60 lda HGRROWS_H,x +006CEE 2 85 1A sta SCRATCH1 +006CF0 2 BD 9C 61 lda HGRROWS_L,x +006CF3 2 85 19 sta SCRATCH0 +006CF5 2 A4 06 ldy PARAM0 +006CF7 2 B9 74 63 lda DIV7_2,y +006CFA 2 A8 tay +006CFB 2 +006CFB 2 A9 02 lda #%00000010 +006CFD 2 11 19 ora (SCRATCH0),y +006CFF 2 91 19 sta (SCRATCH0),y +006D01 2 C8 iny +006D02 2 A9 01 lda #%00000001 +006D04 2 11 19 ora (SCRATCH0),y +006D06 2 91 19 sta (SCRATCH0),y +006D08 2 C8 iny +006D09 2 C8 iny +006D0A 2 +006D0A 2 E8 inx +006D0B 2 BD DC 60 lda HGRROWS_H,x +006D0E 2 85 1A sta SCRATCH1 +006D10 2 BD 9C 61 lda HGRROWS_L,x +006D13 2 85 19 sta SCRATCH0 +006D15 2 A4 06 ldy PARAM0 +006D17 2 B9 74 63 lda DIV7_2,y +006D1A 2 A8 tay +006D1B 2 +006D1B 2 A9 02 lda #%00000010 +006D1D 2 11 19 ora (SCRATCH0),y +006D1F 2 91 19 sta (SCRATCH0),y +006D21 2 C8 iny +006D22 2 A9 01 lda #%00000001 +006D24 2 11 19 ora (SCRATCH0),y +006D26 2 91 19 sta (SCRATCH0),y +006D28 2 C8 iny +006D29 2 C8 iny +006D2A 2 +006D2A 2 E8 inx +006D2B 2 BD DC 60 lda HGRROWS_H,x +006D2E 2 85 1A sta SCRATCH1 +006D30 2 BD 9C 61 lda HGRROWS_L,x +006D33 2 85 19 sta SCRATCH0 +006D35 2 A4 06 ldy PARAM0 +006D37 2 B9 74 63 lda DIV7_2,y +006D3A 2 A8 tay +006D3B 2 +006D3B 2 A9 02 lda #%00000010 +006D3D 2 11 19 ora (SCRATCH0),y +006D3F 2 91 19 sta (SCRATCH0),y +006D41 2 C8 iny +006D42 2 A9 01 lda #%00000001 +006D44 2 11 19 ora (SCRATCH0),y +006D46 2 91 19 sta (SCRATCH0),y +006D48 2 C8 iny +006D49 2 C8 iny +006D4A 2 +006D4A 2 E8 inx +006D4B 2 BD DC 60 lda HGRROWS_H,x +006D4E 2 85 1A sta SCRATCH1 +006D50 2 BD 9C 61 lda HGRROWS_L,x +006D53 2 85 19 sta SCRATCH0 +006D55 2 A4 06 ldy PARAM0 +006D57 2 B9 74 63 lda DIV7_2,y +006D5A 2 A8 tay +006D5B 2 +006D5B 2 A9 02 lda #%00000010 +006D5D 2 11 19 ora (SCRATCH0),y +006D5F 2 91 19 sta (SCRATCH0),y +006D61 2 C8 iny +006D62 2 A9 01 lda #%00000001 +006D64 2 11 19 ora (SCRATCH0),y +006D66 2 91 19 sta (SCRATCH0),y +006D68 2 C8 iny +006D69 2 C8 iny +006D6A 2 +006D6A 2 E8 inx +006D6B 2 BD DC 60 lda HGRROWS_H,x +006D6E 2 85 1A sta SCRATCH1 +006D70 2 BD 9C 61 lda HGRROWS_L,x +006D73 2 85 19 sta SCRATCH0 +006D75 2 A4 06 ldy PARAM0 +006D77 2 B9 74 63 lda DIV7_2,y +006D7A 2 A8 tay +006D7B 2 +006D7B 2 A9 02 lda #%00000010 +006D7D 2 11 19 ora (SCRATCH0),y +006D7F 2 91 19 sta (SCRATCH0),y +006D81 2 C8 iny +006D82 2 A9 01 lda #%00000001 +006D84 2 11 19 ora (SCRATCH0),y +006D86 2 91 19 sta (SCRATCH0),y +006D88 2 C8 iny +006D89 2 C8 iny +006D8A 2 +006D8A 2 E8 inx +006D8B 2 BD DC 60 lda HGRROWS_H,x +006D8E 2 85 1A sta SCRATCH1 +006D90 2 BD 9C 61 lda HGRROWS_L,x +006D93 2 85 19 sta SCRATCH0 +006D95 2 A4 06 ldy PARAM0 +006D97 2 B9 74 63 lda DIV7_2,y +006D9A 2 A8 tay +006D9B 2 +006D9B 2 A9 2A lda #%00101010 +006D9D 2 11 19 ora (SCRATCH0),y +006D9F 2 91 19 sta (SCRATCH0),y +006DA1 2 C8 iny +006DA2 2 A9 01 lda #%00000001 +006DA4 2 11 19 ora (SCRATCH0),y +006DA6 2 91 19 sta (SCRATCH0),y +006DA8 2 C8 iny +006DA9 2 C8 iny +006DAA 2 +006DAA 2 7A FA 68 RESTORE_AXY +006DAD 2 60 rts +006DAE 2 +006DAE 2 +006DAE 2 +006DAE 2 BOX_GRN_SHIFT1: +006DAE 2 A4 06 ldy PARAM0 +006DB0 2 +006DB0 2 A6 07 ldx PARAM1 +006DB2 2 BD DC 60 lda HGRROWS_H,x +006DB5 2 85 1A sta SCRATCH1 +006DB7 2 BD 9C 61 lda HGRROWS_L,x +006DBA 2 85 19 sta SCRATCH0 +006DBC 2 A4 06 ldy PARAM0 +006DBE 2 B9 74 63 lda DIV7_2,y +006DC1 2 A8 tay +006DC2 2 +006DC2 2 A9 28 lda #%00101000 +006DC4 2 11 19 ora (SCRATCH0),y +006DC6 2 91 19 sta (SCRATCH0),y +006DC8 2 C8 iny +006DC9 2 A9 05 lda #%00000101 +006DCB 2 11 19 ora (SCRATCH0),y +006DCD 2 91 19 sta (SCRATCH0),y +006DCF 2 C8 iny +006DD0 2 C8 iny +006DD1 2 +006DD1 2 E8 inx +006DD2 2 BD DC 60 lda HGRROWS_H,x +006DD5 2 85 1A sta SCRATCH1 +006DD7 2 BD 9C 61 lda HGRROWS_L,x +006DDA 2 85 19 sta SCRATCH0 +006DDC 2 A4 06 ldy PARAM0 +006DDE 2 B9 74 63 lda DIV7_2,y +006DE1 2 A8 tay +006DE2 2 +006DE2 2 A9 08 lda #%00001000 +006DE4 2 11 19 ora (SCRATCH0),y +006DE6 2 91 19 sta (SCRATCH0),y +006DE8 2 C8 iny +006DE9 2 A9 04 lda #%00000100 +006DEB 2 11 19 ora (SCRATCH0),y +006DED 2 91 19 sta (SCRATCH0),y +006DEF 2 C8 iny +006DF0 2 C8 iny +006DF1 2 +006DF1 2 E8 inx +006DF2 2 BD DC 60 lda HGRROWS_H,x +006DF5 2 85 1A sta SCRATCH1 +006DF7 2 BD 9C 61 lda HGRROWS_L,x +006DFA 2 85 19 sta SCRATCH0 +006DFC 2 A4 06 ldy PARAM0 +006DFE 2 B9 74 63 lda DIV7_2,y +006E01 2 A8 tay +006E02 2 +006E02 2 A9 08 lda #%00001000 +006E04 2 11 19 ora (SCRATCH0),y +006E06 2 91 19 sta (SCRATCH0),y +006E08 2 C8 iny +006E09 2 A9 04 lda #%00000100 +006E0B 2 11 19 ora (SCRATCH0),y +006E0D 2 91 19 sta (SCRATCH0),y +006E0F 2 C8 iny +006E10 2 C8 iny +006E11 2 +006E11 2 E8 inx +006E12 2 BD DC 60 lda HGRROWS_H,x +006E15 2 85 1A sta SCRATCH1 +006E17 2 BD 9C 61 lda HGRROWS_L,x +006E1A 2 85 19 sta SCRATCH0 +006E1C 2 A4 06 ldy PARAM0 +006E1E 2 B9 74 63 lda DIV7_2,y +006E21 2 A8 tay +006E22 2 +006E22 2 A9 08 lda #%00001000 +006E24 2 11 19 ora (SCRATCH0),y +006E26 2 91 19 sta (SCRATCH0),y +006E28 2 C8 iny +006E29 2 A9 04 lda #%00000100 +006E2B 2 11 19 ora (SCRATCH0),y +006E2D 2 91 19 sta (SCRATCH0),y +006E2F 2 C8 iny +006E30 2 C8 iny +006E31 2 +006E31 2 E8 inx +006E32 2 BD DC 60 lda HGRROWS_H,x +006E35 2 85 1A sta SCRATCH1 +006E37 2 BD 9C 61 lda HGRROWS_L,x +006E3A 2 85 19 sta SCRATCH0 +006E3C 2 A4 06 ldy PARAM0 +006E3E 2 B9 74 63 lda DIV7_2,y +006E41 2 A8 tay +006E42 2 +006E42 2 A9 08 lda #%00001000 +006E44 2 11 19 ora (SCRATCH0),y +006E46 2 91 19 sta (SCRATCH0),y +006E48 2 C8 iny +006E49 2 A9 04 lda #%00000100 +006E4B 2 11 19 ora (SCRATCH0),y +006E4D 2 91 19 sta (SCRATCH0),y +006E4F 2 C8 iny +006E50 2 C8 iny +006E51 2 +006E51 2 E8 inx +006E52 2 BD DC 60 lda HGRROWS_H,x +006E55 2 85 1A sta SCRATCH1 +006E57 2 BD 9C 61 lda HGRROWS_L,x +006E5A 2 85 19 sta SCRATCH0 +006E5C 2 A4 06 ldy PARAM0 +006E5E 2 B9 74 63 lda DIV7_2,y +006E61 2 A8 tay +006E62 2 +006E62 2 A9 08 lda #%00001000 +006E64 2 11 19 ora (SCRATCH0),y +006E66 2 91 19 sta (SCRATCH0),y +006E68 2 C8 iny +006E69 2 A9 04 lda #%00000100 +006E6B 2 11 19 ora (SCRATCH0),y +006E6D 2 91 19 sta (SCRATCH0),y +006E6F 2 C8 iny +006E70 2 C8 iny +006E71 2 +006E71 2 E8 inx +006E72 2 BD DC 60 lda HGRROWS_H,x +006E75 2 85 1A sta SCRATCH1 +006E77 2 BD 9C 61 lda HGRROWS_L,x +006E7A 2 85 19 sta SCRATCH0 +006E7C 2 A4 06 ldy PARAM0 +006E7E 2 B9 74 63 lda DIV7_2,y +006E81 2 A8 tay +006E82 2 +006E82 2 A9 08 lda #%00001000 +006E84 2 11 19 ora (SCRATCH0),y +006E86 2 91 19 sta (SCRATCH0),y +006E88 2 C8 iny +006E89 2 A9 04 lda #%00000100 +006E8B 2 11 19 ora (SCRATCH0),y +006E8D 2 91 19 sta (SCRATCH0),y +006E8F 2 C8 iny +006E90 2 C8 iny +006E91 2 +006E91 2 E8 inx +006E92 2 BD DC 60 lda HGRROWS_H,x +006E95 2 85 1A sta SCRATCH1 +006E97 2 BD 9C 61 lda HGRROWS_L,x +006E9A 2 85 19 sta SCRATCH0 +006E9C 2 A4 06 ldy PARAM0 +006E9E 2 B9 74 63 lda DIV7_2,y +006EA1 2 A8 tay +006EA2 2 +006EA2 2 A9 28 lda #%00101000 +006EA4 2 11 19 ora (SCRATCH0),y +006EA6 2 91 19 sta (SCRATCH0),y +006EA8 2 C8 iny +006EA9 2 A9 05 lda #%00000101 +006EAB 2 11 19 ora (SCRATCH0),y +006EAD 2 91 19 sta (SCRATCH0),y +006EAF 2 C8 iny +006EB0 2 C8 iny +006EB1 2 +006EB1 2 7A FA 68 RESTORE_AXY +006EB4 2 60 rts +006EB5 2 +006EB5 2 +006EB5 2 +006EB5 2 BOX_GRN_SHIFT2: +006EB5 2 A4 06 ldy PARAM0 +006EB7 2 +006EB7 2 A6 07 ldx PARAM1 +006EB9 2 BD DC 60 lda HGRROWS_H,x +006EBC 2 85 1A sta SCRATCH1 +006EBE 2 BD 9C 61 lda HGRROWS_L,x +006EC1 2 85 19 sta SCRATCH0 +006EC3 2 A4 06 ldy PARAM0 +006EC5 2 B9 74 63 lda DIV7_2,y +006EC8 2 A8 tay +006EC9 2 +006EC9 2 A9 20 lda #%00100000 +006ECB 2 11 19 ora (SCRATCH0),y +006ECD 2 91 19 sta (SCRATCH0),y +006ECF 2 C8 iny +006ED0 2 A9 15 lda #%00010101 +006ED2 2 11 19 ora (SCRATCH0),y +006ED4 2 91 19 sta (SCRATCH0),y +006ED6 2 C8 iny +006ED7 2 C8 iny +006ED8 2 +006ED8 2 E8 inx +006ED9 2 BD DC 60 lda HGRROWS_H,x +006EDC 2 85 1A sta SCRATCH1 +006EDE 2 BD 9C 61 lda HGRROWS_L,x +006EE1 2 85 19 sta SCRATCH0 +006EE3 2 A4 06 ldy PARAM0 +006EE5 2 B9 74 63 lda DIV7_2,y +006EE8 2 A8 tay +006EE9 2 +006EE9 2 A9 20 lda #%00100000 +006EEB 2 11 19 ora (SCRATCH0),y +006EED 2 91 19 sta (SCRATCH0),y +006EEF 2 C8 iny +006EF0 2 A9 10 lda #%00010000 +006EF2 2 11 19 ora (SCRATCH0),y +006EF4 2 91 19 sta (SCRATCH0),y +006EF6 2 C8 iny +006EF7 2 C8 iny +006EF8 2 +006EF8 2 E8 inx +006EF9 2 BD DC 60 lda HGRROWS_H,x +006EFC 2 85 1A sta SCRATCH1 +006EFE 2 BD 9C 61 lda HGRROWS_L,x +006F01 2 85 19 sta SCRATCH0 +006F03 2 A4 06 ldy PARAM0 +006F05 2 B9 74 63 lda DIV7_2,y +006F08 2 A8 tay +006F09 2 +006F09 2 A9 20 lda #%00100000 +006F0B 2 11 19 ora (SCRATCH0),y +006F0D 2 91 19 sta (SCRATCH0),y +006F0F 2 C8 iny +006F10 2 A9 10 lda #%00010000 +006F12 2 11 19 ora (SCRATCH0),y +006F14 2 91 19 sta (SCRATCH0),y +006F16 2 C8 iny +006F17 2 C8 iny +006F18 2 +006F18 2 E8 inx +006F19 2 BD DC 60 lda HGRROWS_H,x +006F1C 2 85 1A sta SCRATCH1 +006F1E 2 BD 9C 61 lda HGRROWS_L,x +006F21 2 85 19 sta SCRATCH0 +006F23 2 A4 06 ldy PARAM0 +006F25 2 B9 74 63 lda DIV7_2,y +006F28 2 A8 tay +006F29 2 +006F29 2 A9 20 lda #%00100000 +006F2B 2 11 19 ora (SCRATCH0),y +006F2D 2 91 19 sta (SCRATCH0),y +006F2F 2 C8 iny +006F30 2 A9 10 lda #%00010000 +006F32 2 11 19 ora (SCRATCH0),y +006F34 2 91 19 sta (SCRATCH0),y +006F36 2 C8 iny +006F37 2 C8 iny +006F38 2 +006F38 2 E8 inx +006F39 2 BD DC 60 lda HGRROWS_H,x +006F3C 2 85 1A sta SCRATCH1 +006F3E 2 BD 9C 61 lda HGRROWS_L,x +006F41 2 85 19 sta SCRATCH0 +006F43 2 A4 06 ldy PARAM0 +006F45 2 B9 74 63 lda DIV7_2,y +006F48 2 A8 tay +006F49 2 +006F49 2 A9 20 lda #%00100000 +006F4B 2 11 19 ora (SCRATCH0),y +006F4D 2 91 19 sta (SCRATCH0),y +006F4F 2 C8 iny +006F50 2 A9 10 lda #%00010000 +006F52 2 11 19 ora (SCRATCH0),y +006F54 2 91 19 sta (SCRATCH0),y +006F56 2 C8 iny +006F57 2 C8 iny +006F58 2 +006F58 2 E8 inx +006F59 2 BD DC 60 lda HGRROWS_H,x +006F5C 2 85 1A sta SCRATCH1 +006F5E 2 BD 9C 61 lda HGRROWS_L,x +006F61 2 85 19 sta SCRATCH0 +006F63 2 A4 06 ldy PARAM0 +006F65 2 B9 74 63 lda DIV7_2,y +006F68 2 A8 tay +006F69 2 +006F69 2 A9 20 lda #%00100000 +006F6B 2 11 19 ora (SCRATCH0),y +006F6D 2 91 19 sta (SCRATCH0),y +006F6F 2 C8 iny +006F70 2 A9 10 lda #%00010000 +006F72 2 11 19 ora (SCRATCH0),y +006F74 2 91 19 sta (SCRATCH0),y +006F76 2 C8 iny +006F77 2 C8 iny +006F78 2 +006F78 2 E8 inx +006F79 2 BD DC 60 lda HGRROWS_H,x +006F7C 2 85 1A sta SCRATCH1 +006F7E 2 BD 9C 61 lda HGRROWS_L,x +006F81 2 85 19 sta SCRATCH0 +006F83 2 A4 06 ldy PARAM0 +006F85 2 B9 74 63 lda DIV7_2,y +006F88 2 A8 tay +006F89 2 +006F89 2 A9 20 lda #%00100000 +006F8B 2 11 19 ora (SCRATCH0),y +006F8D 2 91 19 sta (SCRATCH0),y +006F8F 2 C8 iny +006F90 2 A9 10 lda #%00010000 +006F92 2 11 19 ora (SCRATCH0),y +006F94 2 91 19 sta (SCRATCH0),y +006F96 2 C8 iny +006F97 2 C8 iny +006F98 2 +006F98 2 E8 inx +006F99 2 BD DC 60 lda HGRROWS_H,x +006F9C 2 85 1A sta SCRATCH1 +006F9E 2 BD 9C 61 lda HGRROWS_L,x +006FA1 2 85 19 sta SCRATCH0 +006FA3 2 A4 06 ldy PARAM0 +006FA5 2 B9 74 63 lda DIV7_2,y +006FA8 2 A8 tay +006FA9 2 +006FA9 2 A9 20 lda #%00100000 +006FAB 2 11 19 ora (SCRATCH0),y +006FAD 2 91 19 sta (SCRATCH0),y +006FAF 2 C8 iny +006FB0 2 A9 15 lda #%00010101 +006FB2 2 11 19 ora (SCRATCH0),y +006FB4 2 91 19 sta (SCRATCH0),y +006FB6 2 C8 iny +006FB7 2 C8 iny +006FB8 2 +006FB8 2 7A FA 68 RESTORE_AXY +006FBB 2 60 rts +006FBC 2 +006FBC 2 +006FBC 2 +006FBC 2 BOX_GRN_SHIFT3: +006FBC 2 A4 06 ldy PARAM0 +006FBE 2 +006FBE 2 A6 07 ldx PARAM1 +006FC0 2 BD DC 60 lda HGRROWS_H,x +006FC3 2 85 1A sta SCRATCH1 +006FC5 2 BD 9C 61 lda HGRROWS_L,x +006FC8 2 85 19 sta SCRATCH0 +006FCA 2 A4 06 ldy PARAM0 +006FCC 2 B9 74 63 lda DIV7_2,y +006FCF 2 A8 tay +006FD0 2 +006FD0 2 C8 iny +006FD1 2 A9 55 lda #%01010101 +006FD3 2 11 19 ora (SCRATCH0),y +006FD5 2 91 19 sta (SCRATCH0),y +006FD7 2 C8 iny +006FD8 2 C8 iny +006FD9 2 +006FD9 2 E8 inx +006FDA 2 BD DC 60 lda HGRROWS_H,x +006FDD 2 85 1A sta SCRATCH1 +006FDF 2 BD 9C 61 lda HGRROWS_L,x +006FE2 2 85 19 sta SCRATCH0 +006FE4 2 A4 06 ldy PARAM0 +006FE6 2 B9 74 63 lda DIV7_2,y +006FE9 2 A8 tay +006FEA 2 +006FEA 2 C8 iny +006FEB 2 A9 41 lda #%01000001 +006FED 2 11 19 ora (SCRATCH0),y +006FEF 2 91 19 sta (SCRATCH0),y +006FF1 2 C8 iny +006FF2 2 C8 iny +006FF3 2 +006FF3 2 E8 inx +006FF4 2 BD DC 60 lda HGRROWS_H,x +006FF7 2 85 1A sta SCRATCH1 +006FF9 2 BD 9C 61 lda HGRROWS_L,x +006FFC 2 85 19 sta SCRATCH0 +006FFE 2 A4 06 ldy PARAM0 +007000 2 B9 74 63 lda DIV7_2,y +007003 2 A8 tay +007004 2 +007004 2 C8 iny +007005 2 A9 41 lda #%01000001 +007007 2 11 19 ora (SCRATCH0),y +007009 2 91 19 sta (SCRATCH0),y +00700B 2 C8 iny +00700C 2 C8 iny +00700D 2 +00700D 2 E8 inx +00700E 2 BD DC 60 lda HGRROWS_H,x +007011 2 85 1A sta SCRATCH1 +007013 2 BD 9C 61 lda HGRROWS_L,x +007016 2 85 19 sta SCRATCH0 +007018 2 A4 06 ldy PARAM0 +00701A 2 B9 74 63 lda DIV7_2,y +00701D 2 A8 tay +00701E 2 +00701E 2 C8 iny +00701F 2 A9 41 lda #%01000001 +007021 2 11 19 ora (SCRATCH0),y +007023 2 91 19 sta (SCRATCH0),y +007025 2 C8 iny +007026 2 C8 iny +007027 2 +007027 2 E8 inx +007028 2 BD DC 60 lda HGRROWS_H,x +00702B 2 85 1A sta SCRATCH1 +00702D 2 BD 9C 61 lda HGRROWS_L,x +007030 2 85 19 sta SCRATCH0 +007032 2 A4 06 ldy PARAM0 +007034 2 B9 74 63 lda DIV7_2,y +007037 2 A8 tay +007038 2 +007038 2 C8 iny +007039 2 A9 41 lda #%01000001 +00703B 2 11 19 ora (SCRATCH0),y +00703D 2 91 19 sta (SCRATCH0),y +00703F 2 C8 iny +007040 2 C8 iny +007041 2 +007041 2 E8 inx +007042 2 BD DC 60 lda HGRROWS_H,x +007045 2 85 1A sta SCRATCH1 +007047 2 BD 9C 61 lda HGRROWS_L,x +00704A 2 85 19 sta SCRATCH0 +00704C 2 A4 06 ldy PARAM0 +00704E 2 B9 74 63 lda DIV7_2,y +007051 2 A8 tay +007052 2 +007052 2 C8 iny +007053 2 A9 41 lda #%01000001 +007055 2 11 19 ora (SCRATCH0),y +007057 2 91 19 sta (SCRATCH0),y +007059 2 C8 iny +00705A 2 C8 iny +00705B 2 +00705B 2 E8 inx +00705C 2 BD DC 60 lda HGRROWS_H,x +00705F 2 85 1A sta SCRATCH1 +007061 2 BD 9C 61 lda HGRROWS_L,x +007064 2 85 19 sta SCRATCH0 +007066 2 A4 06 ldy PARAM0 +007068 2 B9 74 63 lda DIV7_2,y +00706B 2 A8 tay +00706C 2 +00706C 2 C8 iny +00706D 2 A9 41 lda #%01000001 +00706F 2 11 19 ora (SCRATCH0),y +007071 2 91 19 sta (SCRATCH0),y +007073 2 C8 iny +007074 2 C8 iny +007075 2 +007075 2 E8 inx +007076 2 BD DC 60 lda HGRROWS_H,x +007079 2 85 1A sta SCRATCH1 +00707B 2 BD 9C 61 lda HGRROWS_L,x +00707E 2 85 19 sta SCRATCH0 +007080 2 A4 06 ldy PARAM0 +007082 2 B9 74 63 lda DIV7_2,y +007085 2 A8 tay +007086 2 +007086 2 C8 iny +007087 2 A9 55 lda #%01010101 +007089 2 11 19 ora (SCRATCH0),y +00708B 2 91 19 sta (SCRATCH0),y +00708D 2 C8 iny +00708E 2 C8 iny +00708F 2 +00708F 2 7A FA 68 RESTORE_AXY +007092 2 60 rts +007093 2 +007093 2 +007093 2 +007093 2 BOX_GRN_SHIFT4: +007093 2 A4 06 ldy PARAM0 +007095 2 +007095 2 A6 07 ldx PARAM1 +007097 2 BD DC 60 lda HGRROWS_H,x +00709A 2 85 1A sta SCRATCH1 +00709C 2 BD 9C 61 lda HGRROWS_L,x +00709F 2 85 19 sta SCRATCH0 +0070A1 2 A4 06 ldy PARAM0 +0070A3 2 B9 74 63 lda DIV7_2,y +0070A6 2 A8 tay +0070A7 2 +0070A7 2 C8 iny +0070A8 2 A9 54 lda #%01010100 +0070AA 2 11 19 ora (SCRATCH0),y +0070AC 2 91 19 sta (SCRATCH0),y +0070AE 2 C8 iny +0070AF 2 A9 02 lda #%00000010 +0070B1 2 11 19 ora (SCRATCH0),y +0070B3 2 91 19 sta (SCRATCH0),y +0070B5 2 C8 iny +0070B6 2 +0070B6 2 E8 inx +0070B7 2 BD DC 60 lda HGRROWS_H,x +0070BA 2 85 1A sta SCRATCH1 +0070BC 2 BD 9C 61 lda HGRROWS_L,x +0070BF 2 85 19 sta SCRATCH0 +0070C1 2 A4 06 ldy PARAM0 +0070C3 2 B9 74 63 lda DIV7_2,y +0070C6 2 A8 tay +0070C7 2 +0070C7 2 C8 iny +0070C8 2 A9 04 lda #%00000100 +0070CA 2 11 19 ora (SCRATCH0),y +0070CC 2 91 19 sta (SCRATCH0),y +0070CE 2 C8 iny +0070CF 2 A9 02 lda #%00000010 +0070D1 2 11 19 ora (SCRATCH0),y +0070D3 2 91 19 sta (SCRATCH0),y +0070D5 2 C8 iny +0070D6 2 +0070D6 2 E8 inx +0070D7 2 BD DC 60 lda HGRROWS_H,x +0070DA 2 85 1A sta SCRATCH1 +0070DC 2 BD 9C 61 lda HGRROWS_L,x +0070DF 2 85 19 sta SCRATCH0 +0070E1 2 A4 06 ldy PARAM0 +0070E3 2 B9 74 63 lda DIV7_2,y +0070E6 2 A8 tay +0070E7 2 +0070E7 2 C8 iny +0070E8 2 A9 04 lda #%00000100 +0070EA 2 11 19 ora (SCRATCH0),y +0070EC 2 91 19 sta (SCRATCH0),y +0070EE 2 C8 iny +0070EF 2 A9 02 lda #%00000010 +0070F1 2 11 19 ora (SCRATCH0),y +0070F3 2 91 19 sta (SCRATCH0),y +0070F5 2 C8 iny +0070F6 2 +0070F6 2 E8 inx +0070F7 2 BD DC 60 lda HGRROWS_H,x +0070FA 2 85 1A sta SCRATCH1 +0070FC 2 BD 9C 61 lda HGRROWS_L,x +0070FF 2 85 19 sta SCRATCH0 +007101 2 A4 06 ldy PARAM0 +007103 2 B9 74 63 lda DIV7_2,y +007106 2 A8 tay +007107 2 +007107 2 C8 iny +007108 2 A9 04 lda #%00000100 +00710A 2 11 19 ora (SCRATCH0),y +00710C 2 91 19 sta (SCRATCH0),y +00710E 2 C8 iny +00710F 2 A9 02 lda #%00000010 +007111 2 11 19 ora (SCRATCH0),y +007113 2 91 19 sta (SCRATCH0),y +007115 2 C8 iny +007116 2 +007116 2 E8 inx +007117 2 BD DC 60 lda HGRROWS_H,x +00711A 2 85 1A sta SCRATCH1 +00711C 2 BD 9C 61 lda HGRROWS_L,x +00711F 2 85 19 sta SCRATCH0 +007121 2 A4 06 ldy PARAM0 +007123 2 B9 74 63 lda DIV7_2,y +007126 2 A8 tay +007127 2 +007127 2 C8 iny +007128 2 A9 04 lda #%00000100 +00712A 2 11 19 ora (SCRATCH0),y +00712C 2 91 19 sta (SCRATCH0),y +00712E 2 C8 iny +00712F 2 A9 02 lda #%00000010 +007131 2 11 19 ora (SCRATCH0),y +007133 2 91 19 sta (SCRATCH0),y +007135 2 C8 iny +007136 2 +007136 2 E8 inx +007137 2 BD DC 60 lda HGRROWS_H,x +00713A 2 85 1A sta SCRATCH1 +00713C 2 BD 9C 61 lda HGRROWS_L,x +00713F 2 85 19 sta SCRATCH0 +007141 2 A4 06 ldy PARAM0 +007143 2 B9 74 63 lda DIV7_2,y +007146 2 A8 tay +007147 2 +007147 2 C8 iny +007148 2 A9 04 lda #%00000100 +00714A 2 11 19 ora (SCRATCH0),y +00714C 2 91 19 sta (SCRATCH0),y +00714E 2 C8 iny +00714F 2 A9 02 lda #%00000010 +007151 2 11 19 ora (SCRATCH0),y +007153 2 91 19 sta (SCRATCH0),y +007155 2 C8 iny +007156 2 +007156 2 E8 inx +007157 2 BD DC 60 lda HGRROWS_H,x +00715A 2 85 1A sta SCRATCH1 +00715C 2 BD 9C 61 lda HGRROWS_L,x +00715F 2 85 19 sta SCRATCH0 +007161 2 A4 06 ldy PARAM0 +007163 2 B9 74 63 lda DIV7_2,y +007166 2 A8 tay +007167 2 +007167 2 C8 iny +007168 2 A9 04 lda #%00000100 +00716A 2 11 19 ora (SCRATCH0),y +00716C 2 91 19 sta (SCRATCH0),y +00716E 2 C8 iny +00716F 2 A9 02 lda #%00000010 +007171 2 11 19 ora (SCRATCH0),y +007173 2 91 19 sta (SCRATCH0),y +007175 2 C8 iny +007176 2 +007176 2 E8 inx +007177 2 BD DC 60 lda HGRROWS_H,x +00717A 2 85 1A sta SCRATCH1 +00717C 2 BD 9C 61 lda HGRROWS_L,x +00717F 2 85 19 sta SCRATCH0 +007181 2 A4 06 ldy PARAM0 +007183 2 B9 74 63 lda DIV7_2,y +007186 2 A8 tay +007187 2 +007187 2 C8 iny +007188 2 A9 54 lda #%01010100 +00718A 2 11 19 ora (SCRATCH0),y +00718C 2 91 19 sta (SCRATCH0),y +00718E 2 C8 iny +00718F 2 A9 02 lda #%00000010 +007191 2 11 19 ora (SCRATCH0),y +007193 2 91 19 sta (SCRATCH0),y +007195 2 C8 iny +007196 2 +007196 2 7A FA 68 RESTORE_AXY +007199 2 60 rts +00719A 2 +00719A 2 +00719A 2 +00719A 2 BOX_GRN_SHIFT5: +00719A 2 A4 06 ldy PARAM0 +00719C 2 +00719C 2 A6 07 ldx PARAM1 +00719E 2 BD DC 60 lda HGRROWS_H,x +0071A1 2 85 1A sta SCRATCH1 +0071A3 2 BD 9C 61 lda HGRROWS_L,x +0071A6 2 85 19 sta SCRATCH0 +0071A8 2 A4 06 ldy PARAM0 +0071AA 2 B9 74 63 lda DIV7_2,y +0071AD 2 A8 tay +0071AE 2 +0071AE 2 C8 iny +0071AF 2 A9 50 lda #%01010000 +0071B1 2 11 19 ora (SCRATCH0),y +0071B3 2 91 19 sta (SCRATCH0),y +0071B5 2 C8 iny +0071B6 2 A9 0A lda #%00001010 +0071B8 2 11 19 ora (SCRATCH0),y +0071BA 2 91 19 sta (SCRATCH0),y +0071BC 2 C8 iny +0071BD 2 +0071BD 2 E8 inx +0071BE 2 BD DC 60 lda HGRROWS_H,x +0071C1 2 85 1A sta SCRATCH1 +0071C3 2 BD 9C 61 lda HGRROWS_L,x +0071C6 2 85 19 sta SCRATCH0 +0071C8 2 A4 06 ldy PARAM0 +0071CA 2 B9 74 63 lda DIV7_2,y +0071CD 2 A8 tay +0071CE 2 +0071CE 2 C8 iny +0071CF 2 A9 10 lda #%00010000 +0071D1 2 11 19 ora (SCRATCH0),y +0071D3 2 91 19 sta (SCRATCH0),y +0071D5 2 C8 iny +0071D6 2 A9 08 lda #%00001000 +0071D8 2 11 19 ora (SCRATCH0),y +0071DA 2 91 19 sta (SCRATCH0),y +0071DC 2 C8 iny +0071DD 2 +0071DD 2 E8 inx +0071DE 2 BD DC 60 lda HGRROWS_H,x +0071E1 2 85 1A sta SCRATCH1 +0071E3 2 BD 9C 61 lda HGRROWS_L,x +0071E6 2 85 19 sta SCRATCH0 +0071E8 2 A4 06 ldy PARAM0 +0071EA 2 B9 74 63 lda DIV7_2,y +0071ED 2 A8 tay +0071EE 2 +0071EE 2 C8 iny +0071EF 2 A9 10 lda #%00010000 +0071F1 2 11 19 ora (SCRATCH0),y +0071F3 2 91 19 sta (SCRATCH0),y +0071F5 2 C8 iny +0071F6 2 A9 08 lda #%00001000 +0071F8 2 11 19 ora (SCRATCH0),y +0071FA 2 91 19 sta (SCRATCH0),y +0071FC 2 C8 iny +0071FD 2 +0071FD 2 E8 inx +0071FE 2 BD DC 60 lda HGRROWS_H,x +007201 2 85 1A sta SCRATCH1 +007203 2 BD 9C 61 lda HGRROWS_L,x +007206 2 85 19 sta SCRATCH0 +007208 2 A4 06 ldy PARAM0 +00720A 2 B9 74 63 lda DIV7_2,y +00720D 2 A8 tay +00720E 2 +00720E 2 C8 iny +00720F 2 A9 10 lda #%00010000 +007211 2 11 19 ora (SCRATCH0),y +007213 2 91 19 sta (SCRATCH0),y +007215 2 C8 iny +007216 2 A9 08 lda #%00001000 +007218 2 11 19 ora (SCRATCH0),y +00721A 2 91 19 sta (SCRATCH0),y +00721C 2 C8 iny +00721D 2 +00721D 2 E8 inx +00721E 2 BD DC 60 lda HGRROWS_H,x +007221 2 85 1A sta SCRATCH1 +007223 2 BD 9C 61 lda HGRROWS_L,x +007226 2 85 19 sta SCRATCH0 +007228 2 A4 06 ldy PARAM0 +00722A 2 B9 74 63 lda DIV7_2,y +00722D 2 A8 tay +00722E 2 +00722E 2 C8 iny +00722F 2 A9 10 lda #%00010000 +007231 2 11 19 ora (SCRATCH0),y +007233 2 91 19 sta (SCRATCH0),y +007235 2 C8 iny +007236 2 A9 08 lda #%00001000 +007238 2 11 19 ora (SCRATCH0),y +00723A 2 91 19 sta (SCRATCH0),y +00723C 2 C8 iny +00723D 2 +00723D 2 E8 inx +00723E 2 BD DC 60 lda HGRROWS_H,x +007241 2 85 1A sta SCRATCH1 +007243 2 BD 9C 61 lda HGRROWS_L,x +007246 2 85 19 sta SCRATCH0 +007248 2 A4 06 ldy PARAM0 +00724A 2 B9 74 63 lda DIV7_2,y +00724D 2 A8 tay +00724E 2 +00724E 2 C8 iny +00724F 2 A9 10 lda #%00010000 +007251 2 11 19 ora (SCRATCH0),y +007253 2 91 19 sta (SCRATCH0),y +007255 2 C8 iny +007256 2 A9 08 lda #%00001000 +007258 2 11 19 ora (SCRATCH0),y +00725A 2 91 19 sta (SCRATCH0),y +00725C 2 C8 iny +00725D 2 +00725D 2 E8 inx +00725E 2 BD DC 60 lda HGRROWS_H,x +007261 2 85 1A sta SCRATCH1 +007263 2 BD 9C 61 lda HGRROWS_L,x +007266 2 85 19 sta SCRATCH0 +007268 2 A4 06 ldy PARAM0 +00726A 2 B9 74 63 lda DIV7_2,y +00726D 2 A8 tay +00726E 2 +00726E 2 C8 iny +00726F 2 A9 10 lda #%00010000 +007271 2 11 19 ora (SCRATCH0),y +007273 2 91 19 sta (SCRATCH0),y +007275 2 C8 iny +007276 2 A9 08 lda #%00001000 +007278 2 11 19 ora (SCRATCH0),y +00727A 2 91 19 sta (SCRATCH0),y +00727C 2 C8 iny +00727D 2 +00727D 2 E8 inx +00727E 2 BD DC 60 lda HGRROWS_H,x +007281 2 85 1A sta SCRATCH1 +007283 2 BD 9C 61 lda HGRROWS_L,x +007286 2 85 19 sta SCRATCH0 +007288 2 A4 06 ldy PARAM0 +00728A 2 B9 74 63 lda DIV7_2,y +00728D 2 A8 tay +00728E 2 +00728E 2 C8 iny +00728F 2 A9 50 lda #%01010000 +007291 2 11 19 ora (SCRATCH0),y +007293 2 91 19 sta (SCRATCH0),y +007295 2 C8 iny +007296 2 A9 0A lda #%00001010 +007298 2 11 19 ora (SCRATCH0),y +00729A 2 91 19 sta (SCRATCH0),y +00729C 2 C8 iny +00729D 2 +00729D 2 7A FA 68 RESTORE_AXY +0072A0 2 60 rts +0072A1 2 +0072A1 2 +0072A1 2 +0072A1 2 BOX_GRN_SHIFT6: +0072A1 2 A4 06 ldy PARAM0 +0072A3 2 +0072A3 2 A6 07 ldx PARAM1 +0072A5 2 BD DC 60 lda HGRROWS_H,x +0072A8 2 85 1A sta SCRATCH1 +0072AA 2 BD 9C 61 lda HGRROWS_L,x +0072AD 2 85 19 sta SCRATCH0 +0072AF 2 A4 06 ldy PARAM0 +0072B1 2 B9 74 63 lda DIV7_2,y +0072B4 2 A8 tay +0072B5 2 +0072B5 2 C8 iny +0072B6 2 A9 40 lda #%01000000 +0072B8 2 11 19 ora (SCRATCH0),y +0072BA 2 91 19 sta (SCRATCH0),y +0072BC 2 C8 iny +0072BD 2 A9 2A lda #%00101010 +0072BF 2 11 19 ora (SCRATCH0),y +0072C1 2 91 19 sta (SCRATCH0),y +0072C3 2 C8 iny +0072C4 2 +0072C4 2 E8 inx +0072C5 2 BD DC 60 lda HGRROWS_H,x +0072C8 2 85 1A sta SCRATCH1 +0072CA 2 BD 9C 61 lda HGRROWS_L,x +0072CD 2 85 19 sta SCRATCH0 +0072CF 2 A4 06 ldy PARAM0 +0072D1 2 B9 74 63 lda DIV7_2,y +0072D4 2 A8 tay +0072D5 2 +0072D5 2 C8 iny +0072D6 2 A9 40 lda #%01000000 +0072D8 2 11 19 ora (SCRATCH0),y +0072DA 2 91 19 sta (SCRATCH0),y +0072DC 2 C8 iny +0072DD 2 A9 20 lda #%00100000 +0072DF 2 11 19 ora (SCRATCH0),y +0072E1 2 91 19 sta (SCRATCH0),y +0072E3 2 C8 iny +0072E4 2 +0072E4 2 E8 inx +0072E5 2 BD DC 60 lda HGRROWS_H,x +0072E8 2 85 1A sta SCRATCH1 +0072EA 2 BD 9C 61 lda HGRROWS_L,x +0072ED 2 85 19 sta SCRATCH0 +0072EF 2 A4 06 ldy PARAM0 +0072F1 2 B9 74 63 lda DIV7_2,y +0072F4 2 A8 tay +0072F5 2 +0072F5 2 C8 iny +0072F6 2 A9 40 lda #%01000000 +0072F8 2 11 19 ora (SCRATCH0),y +0072FA 2 91 19 sta (SCRATCH0),y +0072FC 2 C8 iny +0072FD 2 A9 20 lda #%00100000 +0072FF 2 11 19 ora (SCRATCH0),y +007301 2 91 19 sta (SCRATCH0),y +007303 2 C8 iny +007304 2 +007304 2 E8 inx +007305 2 BD DC 60 lda HGRROWS_H,x +007308 2 85 1A sta SCRATCH1 +00730A 2 BD 9C 61 lda HGRROWS_L,x +00730D 2 85 19 sta SCRATCH0 +00730F 2 A4 06 ldy PARAM0 +007311 2 B9 74 63 lda DIV7_2,y +007314 2 A8 tay +007315 2 +007315 2 C8 iny +007316 2 A9 40 lda #%01000000 +007318 2 11 19 ora (SCRATCH0),y +00731A 2 91 19 sta (SCRATCH0),y +00731C 2 C8 iny +00731D 2 A9 20 lda #%00100000 +00731F 2 11 19 ora (SCRATCH0),y +007321 2 91 19 sta (SCRATCH0),y +007323 2 C8 iny +007324 2 +007324 2 E8 inx +007325 2 BD DC 60 lda HGRROWS_H,x +007328 2 85 1A sta SCRATCH1 +00732A 2 BD 9C 61 lda HGRROWS_L,x +00732D 2 85 19 sta SCRATCH0 +00732F 2 A4 06 ldy PARAM0 +007331 2 B9 74 63 lda DIV7_2,y +007334 2 A8 tay +007335 2 +007335 2 C8 iny +007336 2 A9 40 lda #%01000000 +007338 2 11 19 ora (SCRATCH0),y +00733A 2 91 19 sta (SCRATCH0),y +00733C 2 C8 iny +00733D 2 A9 20 lda #%00100000 +00733F 2 11 19 ora (SCRATCH0),y +007341 2 91 19 sta (SCRATCH0),y +007343 2 C8 iny +007344 2 +007344 2 E8 inx +007345 2 BD DC 60 lda HGRROWS_H,x +007348 2 85 1A sta SCRATCH1 +00734A 2 BD 9C 61 lda HGRROWS_L,x +00734D 2 85 19 sta SCRATCH0 +00734F 2 A4 06 ldy PARAM0 +007351 2 B9 74 63 lda DIV7_2,y +007354 2 A8 tay +007355 2 +007355 2 C8 iny +007356 2 A9 40 lda #%01000000 +007358 2 11 19 ora (SCRATCH0),y +00735A 2 91 19 sta (SCRATCH0),y +00735C 2 C8 iny +00735D 2 A9 20 lda #%00100000 +00735F 2 11 19 ora (SCRATCH0),y +007361 2 91 19 sta (SCRATCH0),y +007363 2 C8 iny +007364 2 +007364 2 E8 inx +007365 2 BD DC 60 lda HGRROWS_H,x +007368 2 85 1A sta SCRATCH1 +00736A 2 BD 9C 61 lda HGRROWS_L,x +00736D 2 85 19 sta SCRATCH0 +00736F 2 A4 06 ldy PARAM0 +007371 2 B9 74 63 lda DIV7_2,y +007374 2 A8 tay +007375 2 +007375 2 C8 iny +007376 2 A9 40 lda #%01000000 +007378 2 11 19 ora (SCRATCH0),y +00737A 2 91 19 sta (SCRATCH0),y +00737C 2 C8 iny +00737D 2 A9 20 lda #%00100000 +00737F 2 11 19 ora (SCRATCH0),y +007381 2 91 19 sta (SCRATCH0),y +007383 2 C8 iny +007384 2 +007384 2 E8 inx +007385 2 BD DC 60 lda HGRROWS_H,x +007388 2 85 1A sta SCRATCH1 +00738A 2 BD 9C 61 lda HGRROWS_L,x +00738D 2 85 19 sta SCRATCH0 +00738F 2 A4 06 ldy PARAM0 +007391 2 B9 74 63 lda DIV7_2,y +007394 2 A8 tay +007395 2 +007395 2 C8 iny +007396 2 A9 40 lda #%01000000 +007398 2 11 19 ora (SCRATCH0),y +00739A 2 91 19 sta (SCRATCH0),y +00739C 2 C8 iny +00739D 2 A9 2A lda #%00101010 +00739F 2 11 19 ora (SCRATCH0),y +0073A1 2 91 19 sta (SCRATCH0),y +0073A3 2 C8 iny +0073A4 2 +0073A4 2 7A FA 68 RESTORE_AXY +0073A7 2 60 rts +0073A8 2 +0073A8 2 +0073A8 2 +0073A8 2 +0073A8 1 .include "spritegen6.s" +0073A8 2 BOX_ORG: ;4 bytes per row +0073A8 2 48 DA 5A SAVE_AXY +0073AB 2 A4 06 ldy PARAM0 +0073AD 2 BE 00 64 ldx MOD7_2,y +0073B0 2 7C B3 73 jmp (BOX_ORG_JMP,x) +0073B3 2 +0073B3 2 BOX_ORG_JMP: +0073B3 2 C1 73 .addr BOX_ORG_SHIFT0 +0073B5 2 C8 74 .addr BOX_ORG_SHIFT1 +0073B7 2 CF 75 .addr BOX_ORG_SHIFT2 +0073B9 2 D6 76 .addr BOX_ORG_SHIFT3 +0073BB 2 AD 77 .addr BOX_ORG_SHIFT4 +0073BD 2 B4 78 .addr BOX_ORG_SHIFT5 +0073BF 2 BB 79 .addr BOX_ORG_SHIFT6 +0073C1 2 +0073C1 2 +0073C1 2 BOX_ORG_SHIFT0: +0073C1 2 A4 06 ldy PARAM0 +0073C3 2 +0073C3 2 A6 07 ldx PARAM1 +0073C5 2 BD DC 60 lda HGRROWS_H,x +0073C8 2 85 1A sta SCRATCH1 +0073CA 2 BD 9C 61 lda HGRROWS_L,x +0073CD 2 85 19 sta SCRATCH0 +0073CF 2 A4 06 ldy PARAM0 +0073D1 2 B9 74 63 lda DIV7_2,y +0073D4 2 A8 tay +0073D5 2 +0073D5 2 A9 AA lda #%10101010 +0073D7 2 11 19 ora (SCRATCH0),y +0073D9 2 91 19 sta (SCRATCH0),y +0073DB 2 C8 iny +0073DC 2 A9 81 lda #%10000001 +0073DE 2 11 19 ora (SCRATCH0),y +0073E0 2 91 19 sta (SCRATCH0),y +0073E2 2 C8 iny +0073E3 2 C8 iny +0073E4 2 +0073E4 2 E8 inx +0073E5 2 BD DC 60 lda HGRROWS_H,x +0073E8 2 85 1A sta SCRATCH1 +0073EA 2 BD 9C 61 lda HGRROWS_L,x +0073ED 2 85 19 sta SCRATCH0 +0073EF 2 A4 06 ldy PARAM0 +0073F1 2 B9 74 63 lda DIV7_2,y +0073F4 2 A8 tay +0073F5 2 +0073F5 2 A9 82 lda #%10000010 +0073F7 2 11 19 ora (SCRATCH0),y +0073F9 2 91 19 sta (SCRATCH0),y +0073FB 2 C8 iny +0073FC 2 A9 81 lda #%10000001 +0073FE 2 11 19 ora (SCRATCH0),y +007400 2 91 19 sta (SCRATCH0),y +007402 2 C8 iny +007403 2 C8 iny +007404 2 +007404 2 E8 inx +007405 2 BD DC 60 lda HGRROWS_H,x +007408 2 85 1A sta SCRATCH1 +00740A 2 BD 9C 61 lda HGRROWS_L,x +00740D 2 85 19 sta SCRATCH0 +00740F 2 A4 06 ldy PARAM0 +007411 2 B9 74 63 lda DIV7_2,y +007414 2 A8 tay +007415 2 +007415 2 A9 82 lda #%10000010 +007417 2 11 19 ora (SCRATCH0),y +007419 2 91 19 sta (SCRATCH0),y +00741B 2 C8 iny +00741C 2 A9 81 lda #%10000001 +00741E 2 11 19 ora (SCRATCH0),y +007420 2 91 19 sta (SCRATCH0),y +007422 2 C8 iny +007423 2 C8 iny +007424 2 +007424 2 E8 inx +007425 2 BD DC 60 lda HGRROWS_H,x +007428 2 85 1A sta SCRATCH1 +00742A 2 BD 9C 61 lda HGRROWS_L,x +00742D 2 85 19 sta SCRATCH0 +00742F 2 A4 06 ldy PARAM0 +007431 2 B9 74 63 lda DIV7_2,y +007434 2 A8 tay +007435 2 +007435 2 A9 82 lda #%10000010 +007437 2 11 19 ora (SCRATCH0),y +007439 2 91 19 sta (SCRATCH0),y +00743B 2 C8 iny +00743C 2 A9 81 lda #%10000001 +00743E 2 11 19 ora (SCRATCH0),y +007440 2 91 19 sta (SCRATCH0),y +007442 2 C8 iny +007443 2 C8 iny +007444 2 +007444 2 E8 inx +007445 2 BD DC 60 lda HGRROWS_H,x +007448 2 85 1A sta SCRATCH1 +00744A 2 BD 9C 61 lda HGRROWS_L,x +00744D 2 85 19 sta SCRATCH0 +00744F 2 A4 06 ldy PARAM0 +007451 2 B9 74 63 lda DIV7_2,y +007454 2 A8 tay +007455 2 +007455 2 A9 82 lda #%10000010 +007457 2 11 19 ora (SCRATCH0),y +007459 2 91 19 sta (SCRATCH0),y +00745B 2 C8 iny +00745C 2 A9 81 lda #%10000001 +00745E 2 11 19 ora (SCRATCH0),y +007460 2 91 19 sta (SCRATCH0),y +007462 2 C8 iny +007463 2 C8 iny +007464 2 +007464 2 E8 inx +007465 2 BD DC 60 lda HGRROWS_H,x +007468 2 85 1A sta SCRATCH1 +00746A 2 BD 9C 61 lda HGRROWS_L,x +00746D 2 85 19 sta SCRATCH0 +00746F 2 A4 06 ldy PARAM0 +007471 2 B9 74 63 lda DIV7_2,y +007474 2 A8 tay +007475 2 +007475 2 A9 82 lda #%10000010 +007477 2 11 19 ora (SCRATCH0),y +007479 2 91 19 sta (SCRATCH0),y +00747B 2 C8 iny +00747C 2 A9 81 lda #%10000001 +00747E 2 11 19 ora (SCRATCH0),y +007480 2 91 19 sta (SCRATCH0),y +007482 2 C8 iny +007483 2 C8 iny +007484 2 +007484 2 E8 inx +007485 2 BD DC 60 lda HGRROWS_H,x +007488 2 85 1A sta SCRATCH1 +00748A 2 BD 9C 61 lda HGRROWS_L,x +00748D 2 85 19 sta SCRATCH0 +00748F 2 A4 06 ldy PARAM0 +007491 2 B9 74 63 lda DIV7_2,y +007494 2 A8 tay +007495 2 +007495 2 A9 82 lda #%10000010 +007497 2 11 19 ora (SCRATCH0),y +007499 2 91 19 sta (SCRATCH0),y +00749B 2 C8 iny +00749C 2 A9 81 lda #%10000001 +00749E 2 11 19 ora (SCRATCH0),y +0074A0 2 91 19 sta (SCRATCH0),y +0074A2 2 C8 iny +0074A3 2 C8 iny +0074A4 2 +0074A4 2 E8 inx +0074A5 2 BD DC 60 lda HGRROWS_H,x +0074A8 2 85 1A sta SCRATCH1 +0074AA 2 BD 9C 61 lda HGRROWS_L,x +0074AD 2 85 19 sta SCRATCH0 +0074AF 2 A4 06 ldy PARAM0 +0074B1 2 B9 74 63 lda DIV7_2,y +0074B4 2 A8 tay +0074B5 2 +0074B5 2 A9 AA lda #%10101010 +0074B7 2 11 19 ora (SCRATCH0),y +0074B9 2 91 19 sta (SCRATCH0),y +0074BB 2 C8 iny +0074BC 2 A9 81 lda #%10000001 +0074BE 2 11 19 ora (SCRATCH0),y +0074C0 2 91 19 sta (SCRATCH0),y +0074C2 2 C8 iny +0074C3 2 C8 iny +0074C4 2 +0074C4 2 7A FA 68 RESTORE_AXY +0074C7 2 60 rts +0074C8 2 +0074C8 2 +0074C8 2 +0074C8 2 BOX_ORG_SHIFT1: +0074C8 2 A4 06 ldy PARAM0 +0074CA 2 +0074CA 2 A6 07 ldx PARAM1 +0074CC 2 BD DC 60 lda HGRROWS_H,x +0074CF 2 85 1A sta SCRATCH1 +0074D1 2 BD 9C 61 lda HGRROWS_L,x +0074D4 2 85 19 sta SCRATCH0 +0074D6 2 A4 06 ldy PARAM0 +0074D8 2 B9 74 63 lda DIV7_2,y +0074DB 2 A8 tay +0074DC 2 +0074DC 2 A9 A8 lda #%10101000 +0074DE 2 11 19 ora (SCRATCH0),y +0074E0 2 91 19 sta (SCRATCH0),y +0074E2 2 C8 iny +0074E3 2 A9 85 lda #%10000101 +0074E5 2 11 19 ora (SCRATCH0),y +0074E7 2 91 19 sta (SCRATCH0),y +0074E9 2 C8 iny +0074EA 2 C8 iny +0074EB 2 +0074EB 2 E8 inx +0074EC 2 BD DC 60 lda HGRROWS_H,x +0074EF 2 85 1A sta SCRATCH1 +0074F1 2 BD 9C 61 lda HGRROWS_L,x +0074F4 2 85 19 sta SCRATCH0 +0074F6 2 A4 06 ldy PARAM0 +0074F8 2 B9 74 63 lda DIV7_2,y +0074FB 2 A8 tay +0074FC 2 +0074FC 2 A9 88 lda #%10001000 +0074FE 2 11 19 ora (SCRATCH0),y +007500 2 91 19 sta (SCRATCH0),y +007502 2 C8 iny +007503 2 A9 84 lda #%10000100 +007505 2 11 19 ora (SCRATCH0),y +007507 2 91 19 sta (SCRATCH0),y +007509 2 C8 iny +00750A 2 C8 iny +00750B 2 +00750B 2 E8 inx +00750C 2 BD DC 60 lda HGRROWS_H,x +00750F 2 85 1A sta SCRATCH1 +007511 2 BD 9C 61 lda HGRROWS_L,x +007514 2 85 19 sta SCRATCH0 +007516 2 A4 06 ldy PARAM0 +007518 2 B9 74 63 lda DIV7_2,y +00751B 2 A8 tay +00751C 2 +00751C 2 A9 88 lda #%10001000 +00751E 2 11 19 ora (SCRATCH0),y +007520 2 91 19 sta (SCRATCH0),y +007522 2 C8 iny +007523 2 A9 84 lda #%10000100 +007525 2 11 19 ora (SCRATCH0),y +007527 2 91 19 sta (SCRATCH0),y +007529 2 C8 iny +00752A 2 C8 iny +00752B 2 +00752B 2 E8 inx +00752C 2 BD DC 60 lda HGRROWS_H,x +00752F 2 85 1A sta SCRATCH1 +007531 2 BD 9C 61 lda HGRROWS_L,x +007534 2 85 19 sta SCRATCH0 +007536 2 A4 06 ldy PARAM0 +007538 2 B9 74 63 lda DIV7_2,y +00753B 2 A8 tay +00753C 2 +00753C 2 A9 88 lda #%10001000 +00753E 2 11 19 ora (SCRATCH0),y +007540 2 91 19 sta (SCRATCH0),y +007542 2 C8 iny +007543 2 A9 84 lda #%10000100 +007545 2 11 19 ora (SCRATCH0),y +007547 2 91 19 sta (SCRATCH0),y +007549 2 C8 iny +00754A 2 C8 iny +00754B 2 +00754B 2 E8 inx +00754C 2 BD DC 60 lda HGRROWS_H,x +00754F 2 85 1A sta SCRATCH1 +007551 2 BD 9C 61 lda HGRROWS_L,x +007554 2 85 19 sta SCRATCH0 +007556 2 A4 06 ldy PARAM0 +007558 2 B9 74 63 lda DIV7_2,y +00755B 2 A8 tay +00755C 2 +00755C 2 A9 88 lda #%10001000 +00755E 2 11 19 ora (SCRATCH0),y +007560 2 91 19 sta (SCRATCH0),y +007562 2 C8 iny +007563 2 A9 84 lda #%10000100 +007565 2 11 19 ora (SCRATCH0),y +007567 2 91 19 sta (SCRATCH0),y +007569 2 C8 iny +00756A 2 C8 iny +00756B 2 +00756B 2 E8 inx +00756C 2 BD DC 60 lda HGRROWS_H,x +00756F 2 85 1A sta SCRATCH1 +007571 2 BD 9C 61 lda HGRROWS_L,x +007574 2 85 19 sta SCRATCH0 +007576 2 A4 06 ldy PARAM0 +007578 2 B9 74 63 lda DIV7_2,y +00757B 2 A8 tay +00757C 2 +00757C 2 A9 88 lda #%10001000 +00757E 2 11 19 ora (SCRATCH0),y +007580 2 91 19 sta (SCRATCH0),y +007582 2 C8 iny +007583 2 A9 84 lda #%10000100 +007585 2 11 19 ora (SCRATCH0),y +007587 2 91 19 sta (SCRATCH0),y +007589 2 C8 iny +00758A 2 C8 iny +00758B 2 +00758B 2 E8 inx +00758C 2 BD DC 60 lda HGRROWS_H,x +00758F 2 85 1A sta SCRATCH1 +007591 2 BD 9C 61 lda HGRROWS_L,x +007594 2 85 19 sta SCRATCH0 +007596 2 A4 06 ldy PARAM0 +007598 2 B9 74 63 lda DIV7_2,y +00759B 2 A8 tay +00759C 2 +00759C 2 A9 88 lda #%10001000 +00759E 2 11 19 ora (SCRATCH0),y +0075A0 2 91 19 sta (SCRATCH0),y +0075A2 2 C8 iny +0075A3 2 A9 84 lda #%10000100 +0075A5 2 11 19 ora (SCRATCH0),y +0075A7 2 91 19 sta (SCRATCH0),y +0075A9 2 C8 iny +0075AA 2 C8 iny +0075AB 2 +0075AB 2 E8 inx +0075AC 2 BD DC 60 lda HGRROWS_H,x +0075AF 2 85 1A sta SCRATCH1 +0075B1 2 BD 9C 61 lda HGRROWS_L,x +0075B4 2 85 19 sta SCRATCH0 +0075B6 2 A4 06 ldy PARAM0 +0075B8 2 B9 74 63 lda DIV7_2,y +0075BB 2 A8 tay +0075BC 2 +0075BC 2 A9 A8 lda #%10101000 +0075BE 2 11 19 ora (SCRATCH0),y +0075C0 2 91 19 sta (SCRATCH0),y +0075C2 2 C8 iny +0075C3 2 A9 85 lda #%10000101 +0075C5 2 11 19 ora (SCRATCH0),y +0075C7 2 91 19 sta (SCRATCH0),y +0075C9 2 C8 iny +0075CA 2 C8 iny +0075CB 2 +0075CB 2 7A FA 68 RESTORE_AXY +0075CE 2 60 rts +0075CF 2 +0075CF 2 +0075CF 2 +0075CF 2 BOX_ORG_SHIFT2: +0075CF 2 A4 06 ldy PARAM0 +0075D1 2 +0075D1 2 A6 07 ldx PARAM1 +0075D3 2 BD DC 60 lda HGRROWS_H,x +0075D6 2 85 1A sta SCRATCH1 +0075D8 2 BD 9C 61 lda HGRROWS_L,x +0075DB 2 85 19 sta SCRATCH0 +0075DD 2 A4 06 ldy PARAM0 +0075DF 2 B9 74 63 lda DIV7_2,y +0075E2 2 A8 tay +0075E3 2 +0075E3 2 A9 A0 lda #%10100000 +0075E5 2 11 19 ora (SCRATCH0),y +0075E7 2 91 19 sta (SCRATCH0),y +0075E9 2 C8 iny +0075EA 2 A9 95 lda #%10010101 +0075EC 2 11 19 ora (SCRATCH0),y +0075EE 2 91 19 sta (SCRATCH0),y +0075F0 2 C8 iny +0075F1 2 C8 iny +0075F2 2 +0075F2 2 E8 inx +0075F3 2 BD DC 60 lda HGRROWS_H,x +0075F6 2 85 1A sta SCRATCH1 +0075F8 2 BD 9C 61 lda HGRROWS_L,x +0075FB 2 85 19 sta SCRATCH0 +0075FD 2 A4 06 ldy PARAM0 +0075FF 2 B9 74 63 lda DIV7_2,y +007602 2 A8 tay +007603 2 +007603 2 A9 A0 lda #%10100000 +007605 2 11 19 ora (SCRATCH0),y +007607 2 91 19 sta (SCRATCH0),y +007609 2 C8 iny +00760A 2 A9 90 lda #%10010000 +00760C 2 11 19 ora (SCRATCH0),y +00760E 2 91 19 sta (SCRATCH0),y +007610 2 C8 iny +007611 2 C8 iny +007612 2 +007612 2 E8 inx +007613 2 BD DC 60 lda HGRROWS_H,x +007616 2 85 1A sta SCRATCH1 +007618 2 BD 9C 61 lda HGRROWS_L,x +00761B 2 85 19 sta SCRATCH0 +00761D 2 A4 06 ldy PARAM0 +00761F 2 B9 74 63 lda DIV7_2,y +007622 2 A8 tay +007623 2 +007623 2 A9 A0 lda #%10100000 +007625 2 11 19 ora (SCRATCH0),y +007627 2 91 19 sta (SCRATCH0),y +007629 2 C8 iny +00762A 2 A9 90 lda #%10010000 +00762C 2 11 19 ora (SCRATCH0),y +00762E 2 91 19 sta (SCRATCH0),y +007630 2 C8 iny +007631 2 C8 iny +007632 2 +007632 2 E8 inx +007633 2 BD DC 60 lda HGRROWS_H,x +007636 2 85 1A sta SCRATCH1 +007638 2 BD 9C 61 lda HGRROWS_L,x +00763B 2 85 19 sta SCRATCH0 +00763D 2 A4 06 ldy PARAM0 +00763F 2 B9 74 63 lda DIV7_2,y +007642 2 A8 tay +007643 2 +007643 2 A9 A0 lda #%10100000 +007645 2 11 19 ora (SCRATCH0),y +007647 2 91 19 sta (SCRATCH0),y +007649 2 C8 iny +00764A 2 A9 90 lda #%10010000 +00764C 2 11 19 ora (SCRATCH0),y +00764E 2 91 19 sta (SCRATCH0),y +007650 2 C8 iny +007651 2 C8 iny +007652 2 +007652 2 E8 inx +007653 2 BD DC 60 lda HGRROWS_H,x +007656 2 85 1A sta SCRATCH1 +007658 2 BD 9C 61 lda HGRROWS_L,x +00765B 2 85 19 sta SCRATCH0 +00765D 2 A4 06 ldy PARAM0 +00765F 2 B9 74 63 lda DIV7_2,y +007662 2 A8 tay +007663 2 +007663 2 A9 A0 lda #%10100000 +007665 2 11 19 ora (SCRATCH0),y +007667 2 91 19 sta (SCRATCH0),y +007669 2 C8 iny +00766A 2 A9 90 lda #%10010000 +00766C 2 11 19 ora (SCRATCH0),y +00766E 2 91 19 sta (SCRATCH0),y +007670 2 C8 iny +007671 2 C8 iny +007672 2 +007672 2 E8 inx +007673 2 BD DC 60 lda HGRROWS_H,x +007676 2 85 1A sta SCRATCH1 +007678 2 BD 9C 61 lda HGRROWS_L,x +00767B 2 85 19 sta SCRATCH0 +00767D 2 A4 06 ldy PARAM0 +00767F 2 B9 74 63 lda DIV7_2,y +007682 2 A8 tay +007683 2 +007683 2 A9 A0 lda #%10100000 +007685 2 11 19 ora (SCRATCH0),y +007687 2 91 19 sta (SCRATCH0),y +007689 2 C8 iny +00768A 2 A9 90 lda #%10010000 +00768C 2 11 19 ora (SCRATCH0),y +00768E 2 91 19 sta (SCRATCH0),y +007690 2 C8 iny +007691 2 C8 iny +007692 2 +007692 2 E8 inx +007693 2 BD DC 60 lda HGRROWS_H,x +007696 2 85 1A sta SCRATCH1 +007698 2 BD 9C 61 lda HGRROWS_L,x +00769B 2 85 19 sta SCRATCH0 +00769D 2 A4 06 ldy PARAM0 +00769F 2 B9 74 63 lda DIV7_2,y +0076A2 2 A8 tay +0076A3 2 +0076A3 2 A9 A0 lda #%10100000 +0076A5 2 11 19 ora (SCRATCH0),y +0076A7 2 91 19 sta (SCRATCH0),y +0076A9 2 C8 iny +0076AA 2 A9 90 lda #%10010000 +0076AC 2 11 19 ora (SCRATCH0),y +0076AE 2 91 19 sta (SCRATCH0),y +0076B0 2 C8 iny +0076B1 2 C8 iny +0076B2 2 +0076B2 2 E8 inx +0076B3 2 BD DC 60 lda HGRROWS_H,x +0076B6 2 85 1A sta SCRATCH1 +0076B8 2 BD 9C 61 lda HGRROWS_L,x +0076BB 2 85 19 sta SCRATCH0 +0076BD 2 A4 06 ldy PARAM0 +0076BF 2 B9 74 63 lda DIV7_2,y +0076C2 2 A8 tay +0076C3 2 +0076C3 2 A9 A0 lda #%10100000 +0076C5 2 11 19 ora (SCRATCH0),y +0076C7 2 91 19 sta (SCRATCH0),y +0076C9 2 C8 iny +0076CA 2 A9 95 lda #%10010101 +0076CC 2 11 19 ora (SCRATCH0),y +0076CE 2 91 19 sta (SCRATCH0),y +0076D0 2 C8 iny +0076D1 2 C8 iny +0076D2 2 +0076D2 2 7A FA 68 RESTORE_AXY +0076D5 2 60 rts +0076D6 2 +0076D6 2 +0076D6 2 +0076D6 2 BOX_ORG_SHIFT3: +0076D6 2 A4 06 ldy PARAM0 +0076D8 2 +0076D8 2 A6 07 ldx PARAM1 +0076DA 2 BD DC 60 lda HGRROWS_H,x +0076DD 2 85 1A sta SCRATCH1 +0076DF 2 BD 9C 61 lda HGRROWS_L,x +0076E2 2 85 19 sta SCRATCH0 +0076E4 2 A4 06 ldy PARAM0 +0076E6 2 B9 74 63 lda DIV7_2,y +0076E9 2 A8 tay +0076EA 2 +0076EA 2 C8 iny +0076EB 2 A9 D5 lda #%11010101 +0076ED 2 11 19 ora (SCRATCH0),y +0076EF 2 91 19 sta (SCRATCH0),y +0076F1 2 C8 iny +0076F2 2 C8 iny +0076F3 2 +0076F3 2 E8 inx +0076F4 2 BD DC 60 lda HGRROWS_H,x +0076F7 2 85 1A sta SCRATCH1 +0076F9 2 BD 9C 61 lda HGRROWS_L,x +0076FC 2 85 19 sta SCRATCH0 +0076FE 2 A4 06 ldy PARAM0 +007700 2 B9 74 63 lda DIV7_2,y +007703 2 A8 tay +007704 2 +007704 2 C8 iny +007705 2 A9 C1 lda #%11000001 +007707 2 11 19 ora (SCRATCH0),y +007709 2 91 19 sta (SCRATCH0),y +00770B 2 C8 iny +00770C 2 C8 iny +00770D 2 +00770D 2 E8 inx +00770E 2 BD DC 60 lda HGRROWS_H,x +007711 2 85 1A sta SCRATCH1 +007713 2 BD 9C 61 lda HGRROWS_L,x +007716 2 85 19 sta SCRATCH0 +007718 2 A4 06 ldy PARAM0 +00771A 2 B9 74 63 lda DIV7_2,y +00771D 2 A8 tay +00771E 2 +00771E 2 C8 iny +00771F 2 A9 C1 lda #%11000001 +007721 2 11 19 ora (SCRATCH0),y +007723 2 91 19 sta (SCRATCH0),y +007725 2 C8 iny +007726 2 C8 iny +007727 2 +007727 2 E8 inx +007728 2 BD DC 60 lda HGRROWS_H,x +00772B 2 85 1A sta SCRATCH1 +00772D 2 BD 9C 61 lda HGRROWS_L,x +007730 2 85 19 sta SCRATCH0 +007732 2 A4 06 ldy PARAM0 +007734 2 B9 74 63 lda DIV7_2,y +007737 2 A8 tay +007738 2 +007738 2 C8 iny +007739 2 A9 C1 lda #%11000001 +00773B 2 11 19 ora (SCRATCH0),y +00773D 2 91 19 sta (SCRATCH0),y +00773F 2 C8 iny +007740 2 C8 iny +007741 2 +007741 2 E8 inx +007742 2 BD DC 60 lda HGRROWS_H,x +007745 2 85 1A sta SCRATCH1 +007747 2 BD 9C 61 lda HGRROWS_L,x +00774A 2 85 19 sta SCRATCH0 +00774C 2 A4 06 ldy PARAM0 +00774E 2 B9 74 63 lda DIV7_2,y +007751 2 A8 tay +007752 2 +007752 2 C8 iny +007753 2 A9 C1 lda #%11000001 +007755 2 11 19 ora (SCRATCH0),y +007757 2 91 19 sta (SCRATCH0),y +007759 2 C8 iny +00775A 2 C8 iny +00775B 2 +00775B 2 E8 inx +00775C 2 BD DC 60 lda HGRROWS_H,x +00775F 2 85 1A sta SCRATCH1 +007761 2 BD 9C 61 lda HGRROWS_L,x +007764 2 85 19 sta SCRATCH0 +007766 2 A4 06 ldy PARAM0 +007768 2 B9 74 63 lda DIV7_2,y +00776B 2 A8 tay +00776C 2 +00776C 2 C8 iny +00776D 2 A9 C1 lda #%11000001 +00776F 2 11 19 ora (SCRATCH0),y +007771 2 91 19 sta (SCRATCH0),y +007773 2 C8 iny +007774 2 C8 iny +007775 2 +007775 2 E8 inx +007776 2 BD DC 60 lda HGRROWS_H,x +007779 2 85 1A sta SCRATCH1 +00777B 2 BD 9C 61 lda HGRROWS_L,x +00777E 2 85 19 sta SCRATCH0 +007780 2 A4 06 ldy PARAM0 +007782 2 B9 74 63 lda DIV7_2,y +007785 2 A8 tay +007786 2 +007786 2 C8 iny +007787 2 A9 C1 lda #%11000001 +007789 2 11 19 ora (SCRATCH0),y +00778B 2 91 19 sta (SCRATCH0),y +00778D 2 C8 iny +00778E 2 C8 iny +00778F 2 +00778F 2 E8 inx +007790 2 BD DC 60 lda HGRROWS_H,x +007793 2 85 1A sta SCRATCH1 +007795 2 BD 9C 61 lda HGRROWS_L,x +007798 2 85 19 sta SCRATCH0 +00779A 2 A4 06 ldy PARAM0 +00779C 2 B9 74 63 lda DIV7_2,y +00779F 2 A8 tay +0077A0 2 +0077A0 2 C8 iny +0077A1 2 A9 D5 lda #%11010101 +0077A3 2 11 19 ora (SCRATCH0),y +0077A5 2 91 19 sta (SCRATCH0),y +0077A7 2 C8 iny +0077A8 2 C8 iny +0077A9 2 +0077A9 2 7A FA 68 RESTORE_AXY +0077AC 2 60 rts +0077AD 2 +0077AD 2 +0077AD 2 +0077AD 2 BOX_ORG_SHIFT4: +0077AD 2 A4 06 ldy PARAM0 +0077AF 2 +0077AF 2 A6 07 ldx PARAM1 +0077B1 2 BD DC 60 lda HGRROWS_H,x +0077B4 2 85 1A sta SCRATCH1 +0077B6 2 BD 9C 61 lda HGRROWS_L,x +0077B9 2 85 19 sta SCRATCH0 +0077BB 2 A4 06 ldy PARAM0 +0077BD 2 B9 74 63 lda DIV7_2,y +0077C0 2 A8 tay +0077C1 2 +0077C1 2 C8 iny +0077C2 2 A9 D4 lda #%11010100 +0077C4 2 11 19 ora (SCRATCH0),y +0077C6 2 91 19 sta (SCRATCH0),y +0077C8 2 C8 iny +0077C9 2 A9 82 lda #%10000010 +0077CB 2 11 19 ora (SCRATCH0),y +0077CD 2 91 19 sta (SCRATCH0),y +0077CF 2 C8 iny +0077D0 2 +0077D0 2 E8 inx +0077D1 2 BD DC 60 lda HGRROWS_H,x +0077D4 2 85 1A sta SCRATCH1 +0077D6 2 BD 9C 61 lda HGRROWS_L,x +0077D9 2 85 19 sta SCRATCH0 +0077DB 2 A4 06 ldy PARAM0 +0077DD 2 B9 74 63 lda DIV7_2,y +0077E0 2 A8 tay +0077E1 2 +0077E1 2 C8 iny +0077E2 2 A9 84 lda #%10000100 +0077E4 2 11 19 ora (SCRATCH0),y +0077E6 2 91 19 sta (SCRATCH0),y +0077E8 2 C8 iny +0077E9 2 A9 82 lda #%10000010 +0077EB 2 11 19 ora (SCRATCH0),y +0077ED 2 91 19 sta (SCRATCH0),y +0077EF 2 C8 iny +0077F0 2 +0077F0 2 E8 inx +0077F1 2 BD DC 60 lda HGRROWS_H,x +0077F4 2 85 1A sta SCRATCH1 +0077F6 2 BD 9C 61 lda HGRROWS_L,x +0077F9 2 85 19 sta SCRATCH0 +0077FB 2 A4 06 ldy PARAM0 +0077FD 2 B9 74 63 lda DIV7_2,y +007800 2 A8 tay +007801 2 +007801 2 C8 iny +007802 2 A9 84 lda #%10000100 +007804 2 11 19 ora (SCRATCH0),y +007806 2 91 19 sta (SCRATCH0),y +007808 2 C8 iny +007809 2 A9 82 lda #%10000010 +00780B 2 11 19 ora (SCRATCH0),y +00780D 2 91 19 sta (SCRATCH0),y +00780F 2 C8 iny +007810 2 +007810 2 E8 inx +007811 2 BD DC 60 lda HGRROWS_H,x +007814 2 85 1A sta SCRATCH1 +007816 2 BD 9C 61 lda HGRROWS_L,x +007819 2 85 19 sta SCRATCH0 +00781B 2 A4 06 ldy PARAM0 +00781D 2 B9 74 63 lda DIV7_2,y +007820 2 A8 tay +007821 2 +007821 2 C8 iny +007822 2 A9 84 lda #%10000100 +007824 2 11 19 ora (SCRATCH0),y +007826 2 91 19 sta (SCRATCH0),y +007828 2 C8 iny +007829 2 A9 82 lda #%10000010 +00782B 2 11 19 ora (SCRATCH0),y +00782D 2 91 19 sta (SCRATCH0),y +00782F 2 C8 iny +007830 2 +007830 2 E8 inx +007831 2 BD DC 60 lda HGRROWS_H,x +007834 2 85 1A sta SCRATCH1 +007836 2 BD 9C 61 lda HGRROWS_L,x +007839 2 85 19 sta SCRATCH0 +00783B 2 A4 06 ldy PARAM0 +00783D 2 B9 74 63 lda DIV7_2,y +007840 2 A8 tay +007841 2 +007841 2 C8 iny +007842 2 A9 84 lda #%10000100 +007844 2 11 19 ora (SCRATCH0),y +007846 2 91 19 sta (SCRATCH0),y +007848 2 C8 iny +007849 2 A9 82 lda #%10000010 +00784B 2 11 19 ora (SCRATCH0),y +00784D 2 91 19 sta (SCRATCH0),y +00784F 2 C8 iny +007850 2 +007850 2 E8 inx +007851 2 BD DC 60 lda HGRROWS_H,x +007854 2 85 1A sta SCRATCH1 +007856 2 BD 9C 61 lda HGRROWS_L,x +007859 2 85 19 sta SCRATCH0 +00785B 2 A4 06 ldy PARAM0 +00785D 2 B9 74 63 lda DIV7_2,y +007860 2 A8 tay +007861 2 +007861 2 C8 iny +007862 2 A9 84 lda #%10000100 +007864 2 11 19 ora (SCRATCH0),y +007866 2 91 19 sta (SCRATCH0),y +007868 2 C8 iny +007869 2 A9 82 lda #%10000010 +00786B 2 11 19 ora (SCRATCH0),y +00786D 2 91 19 sta (SCRATCH0),y +00786F 2 C8 iny +007870 2 +007870 2 E8 inx +007871 2 BD DC 60 lda HGRROWS_H,x +007874 2 85 1A sta SCRATCH1 +007876 2 BD 9C 61 lda HGRROWS_L,x +007879 2 85 19 sta SCRATCH0 +00787B 2 A4 06 ldy PARAM0 +00787D 2 B9 74 63 lda DIV7_2,y +007880 2 A8 tay +007881 2 +007881 2 C8 iny +007882 2 A9 84 lda #%10000100 +007884 2 11 19 ora (SCRATCH0),y +007886 2 91 19 sta (SCRATCH0),y +007888 2 C8 iny +007889 2 A9 82 lda #%10000010 +00788B 2 11 19 ora (SCRATCH0),y +00788D 2 91 19 sta (SCRATCH0),y +00788F 2 C8 iny +007890 2 +007890 2 E8 inx +007891 2 BD DC 60 lda HGRROWS_H,x +007894 2 85 1A sta SCRATCH1 +007896 2 BD 9C 61 lda HGRROWS_L,x +007899 2 85 19 sta SCRATCH0 +00789B 2 A4 06 ldy PARAM0 +00789D 2 B9 74 63 lda DIV7_2,y +0078A0 2 A8 tay +0078A1 2 +0078A1 2 C8 iny +0078A2 2 A9 D4 lda #%11010100 +0078A4 2 11 19 ora (SCRATCH0),y +0078A6 2 91 19 sta (SCRATCH0),y +0078A8 2 C8 iny +0078A9 2 A9 82 lda #%10000010 +0078AB 2 11 19 ora (SCRATCH0),y +0078AD 2 91 19 sta (SCRATCH0),y +0078AF 2 C8 iny +0078B0 2 +0078B0 2 7A FA 68 RESTORE_AXY +0078B3 2 60 rts +0078B4 2 +0078B4 2 +0078B4 2 +0078B4 2 BOX_ORG_SHIFT5: +0078B4 2 A4 06 ldy PARAM0 +0078B6 2 +0078B6 2 A6 07 ldx PARAM1 +0078B8 2 BD DC 60 lda HGRROWS_H,x +0078BB 2 85 1A sta SCRATCH1 +0078BD 2 BD 9C 61 lda HGRROWS_L,x +0078C0 2 85 19 sta SCRATCH0 +0078C2 2 A4 06 ldy PARAM0 +0078C4 2 B9 74 63 lda DIV7_2,y +0078C7 2 A8 tay +0078C8 2 +0078C8 2 C8 iny +0078C9 2 A9 D0 lda #%11010000 +0078CB 2 11 19 ora (SCRATCH0),y +0078CD 2 91 19 sta (SCRATCH0),y +0078CF 2 C8 iny +0078D0 2 A9 8A lda #%10001010 +0078D2 2 11 19 ora (SCRATCH0),y +0078D4 2 91 19 sta (SCRATCH0),y +0078D6 2 C8 iny +0078D7 2 +0078D7 2 E8 inx +0078D8 2 BD DC 60 lda HGRROWS_H,x +0078DB 2 85 1A sta SCRATCH1 +0078DD 2 BD 9C 61 lda HGRROWS_L,x +0078E0 2 85 19 sta SCRATCH0 +0078E2 2 A4 06 ldy PARAM0 +0078E4 2 B9 74 63 lda DIV7_2,y +0078E7 2 A8 tay +0078E8 2 +0078E8 2 C8 iny +0078E9 2 A9 90 lda #%10010000 +0078EB 2 11 19 ora (SCRATCH0),y +0078ED 2 91 19 sta (SCRATCH0),y +0078EF 2 C8 iny +0078F0 2 A9 88 lda #%10001000 +0078F2 2 11 19 ora (SCRATCH0),y +0078F4 2 91 19 sta (SCRATCH0),y +0078F6 2 C8 iny +0078F7 2 +0078F7 2 E8 inx +0078F8 2 BD DC 60 lda HGRROWS_H,x +0078FB 2 85 1A sta SCRATCH1 +0078FD 2 BD 9C 61 lda HGRROWS_L,x +007900 2 85 19 sta SCRATCH0 +007902 2 A4 06 ldy PARAM0 +007904 2 B9 74 63 lda DIV7_2,y +007907 2 A8 tay +007908 2 +007908 2 C8 iny +007909 2 A9 90 lda #%10010000 +00790B 2 11 19 ora (SCRATCH0),y +00790D 2 91 19 sta (SCRATCH0),y +00790F 2 C8 iny +007910 2 A9 88 lda #%10001000 +007912 2 11 19 ora (SCRATCH0),y +007914 2 91 19 sta (SCRATCH0),y +007916 2 C8 iny +007917 2 +007917 2 E8 inx +007918 2 BD DC 60 lda HGRROWS_H,x +00791B 2 85 1A sta SCRATCH1 +00791D 2 BD 9C 61 lda HGRROWS_L,x +007920 2 85 19 sta SCRATCH0 +007922 2 A4 06 ldy PARAM0 +007924 2 B9 74 63 lda DIV7_2,y +007927 2 A8 tay +007928 2 +007928 2 C8 iny +007929 2 A9 90 lda #%10010000 +00792B 2 11 19 ora (SCRATCH0),y +00792D 2 91 19 sta (SCRATCH0),y +00792F 2 C8 iny +007930 2 A9 88 lda #%10001000 +007932 2 11 19 ora (SCRATCH0),y +007934 2 91 19 sta (SCRATCH0),y +007936 2 C8 iny +007937 2 +007937 2 E8 inx +007938 2 BD DC 60 lda HGRROWS_H,x +00793B 2 85 1A sta SCRATCH1 +00793D 2 BD 9C 61 lda HGRROWS_L,x +007940 2 85 19 sta SCRATCH0 +007942 2 A4 06 ldy PARAM0 +007944 2 B9 74 63 lda DIV7_2,y +007947 2 A8 tay +007948 2 +007948 2 C8 iny +007949 2 A9 90 lda #%10010000 +00794B 2 11 19 ora (SCRATCH0),y +00794D 2 91 19 sta (SCRATCH0),y +00794F 2 C8 iny +007950 2 A9 88 lda #%10001000 +007952 2 11 19 ora (SCRATCH0),y +007954 2 91 19 sta (SCRATCH0),y +007956 2 C8 iny +007957 2 +007957 2 E8 inx +007958 2 BD DC 60 lda HGRROWS_H,x +00795B 2 85 1A sta SCRATCH1 +00795D 2 BD 9C 61 lda HGRROWS_L,x +007960 2 85 19 sta SCRATCH0 +007962 2 A4 06 ldy PARAM0 +007964 2 B9 74 63 lda DIV7_2,y +007967 2 A8 tay +007968 2 +007968 2 C8 iny +007969 2 A9 90 lda #%10010000 +00796B 2 11 19 ora (SCRATCH0),y +00796D 2 91 19 sta (SCRATCH0),y +00796F 2 C8 iny +007970 2 A9 88 lda #%10001000 +007972 2 11 19 ora (SCRATCH0),y +007974 2 91 19 sta (SCRATCH0),y +007976 2 C8 iny +007977 2 +007977 2 E8 inx +007978 2 BD DC 60 lda HGRROWS_H,x +00797B 2 85 1A sta SCRATCH1 +00797D 2 BD 9C 61 lda HGRROWS_L,x +007980 2 85 19 sta SCRATCH0 +007982 2 A4 06 ldy PARAM0 +007984 2 B9 74 63 lda DIV7_2,y +007987 2 A8 tay +007988 2 +007988 2 C8 iny +007989 2 A9 90 lda #%10010000 +00798B 2 11 19 ora (SCRATCH0),y +00798D 2 91 19 sta (SCRATCH0),y +00798F 2 C8 iny +007990 2 A9 88 lda #%10001000 +007992 2 11 19 ora (SCRATCH0),y +007994 2 91 19 sta (SCRATCH0),y +007996 2 C8 iny +007997 2 +007997 2 E8 inx +007998 2 BD DC 60 lda HGRROWS_H,x +00799B 2 85 1A sta SCRATCH1 +00799D 2 BD 9C 61 lda HGRROWS_L,x +0079A0 2 85 19 sta SCRATCH0 +0079A2 2 A4 06 ldy PARAM0 +0079A4 2 B9 74 63 lda DIV7_2,y +0079A7 2 A8 tay +0079A8 2 +0079A8 2 C8 iny +0079A9 2 A9 D0 lda #%11010000 +0079AB 2 11 19 ora (SCRATCH0),y +0079AD 2 91 19 sta (SCRATCH0),y +0079AF 2 C8 iny +0079B0 2 A9 8A lda #%10001010 +0079B2 2 11 19 ora (SCRATCH0),y +0079B4 2 91 19 sta (SCRATCH0),y +0079B6 2 C8 iny +0079B7 2 +0079B7 2 7A FA 68 RESTORE_AXY +0079BA 2 60 rts +0079BB 2 +0079BB 2 +0079BB 2 +0079BB 2 BOX_ORG_SHIFT6: +0079BB 2 A4 06 ldy PARAM0 +0079BD 2 +0079BD 2 A6 07 ldx PARAM1 +0079BF 2 BD DC 60 lda HGRROWS_H,x +0079C2 2 85 1A sta SCRATCH1 +0079C4 2 BD 9C 61 lda HGRROWS_L,x +0079C7 2 85 19 sta SCRATCH0 +0079C9 2 A4 06 ldy PARAM0 +0079CB 2 B9 74 63 lda DIV7_2,y +0079CE 2 A8 tay +0079CF 2 +0079CF 2 C8 iny +0079D0 2 A9 C0 lda #%11000000 +0079D2 2 11 19 ora (SCRATCH0),y +0079D4 2 91 19 sta (SCRATCH0),y +0079D6 2 C8 iny +0079D7 2 A9 AA lda #%10101010 +0079D9 2 11 19 ora (SCRATCH0),y +0079DB 2 91 19 sta (SCRATCH0),y +0079DD 2 C8 iny +0079DE 2 +0079DE 2 E8 inx +0079DF 2 BD DC 60 lda HGRROWS_H,x +0079E2 2 85 1A sta SCRATCH1 +0079E4 2 BD 9C 61 lda HGRROWS_L,x +0079E7 2 85 19 sta SCRATCH0 +0079E9 2 A4 06 ldy PARAM0 +0079EB 2 B9 74 63 lda DIV7_2,y +0079EE 2 A8 tay +0079EF 2 +0079EF 2 C8 iny +0079F0 2 A9 C0 lda #%11000000 +0079F2 2 11 19 ora (SCRATCH0),y +0079F4 2 91 19 sta (SCRATCH0),y +0079F6 2 C8 iny +0079F7 2 A9 A0 lda #%10100000 +0079F9 2 11 19 ora (SCRATCH0),y +0079FB 2 91 19 sta (SCRATCH0),y +0079FD 2 C8 iny +0079FE 2 +0079FE 2 E8 inx +0079FF 2 BD DC 60 lda HGRROWS_H,x +007A02 2 85 1A sta SCRATCH1 +007A04 2 BD 9C 61 lda HGRROWS_L,x +007A07 2 85 19 sta SCRATCH0 +007A09 2 A4 06 ldy PARAM0 +007A0B 2 B9 74 63 lda DIV7_2,y +007A0E 2 A8 tay +007A0F 2 +007A0F 2 C8 iny +007A10 2 A9 C0 lda #%11000000 +007A12 2 11 19 ora (SCRATCH0),y +007A14 2 91 19 sta (SCRATCH0),y +007A16 2 C8 iny +007A17 2 A9 A0 lda #%10100000 +007A19 2 11 19 ora (SCRATCH0),y +007A1B 2 91 19 sta (SCRATCH0),y +007A1D 2 C8 iny +007A1E 2 +007A1E 2 E8 inx +007A1F 2 BD DC 60 lda HGRROWS_H,x +007A22 2 85 1A sta SCRATCH1 +007A24 2 BD 9C 61 lda HGRROWS_L,x +007A27 2 85 19 sta SCRATCH0 +007A29 2 A4 06 ldy PARAM0 +007A2B 2 B9 74 63 lda DIV7_2,y +007A2E 2 A8 tay +007A2F 2 +007A2F 2 C8 iny +007A30 2 A9 C0 lda #%11000000 +007A32 2 11 19 ora (SCRATCH0),y +007A34 2 91 19 sta (SCRATCH0),y +007A36 2 C8 iny +007A37 2 A9 A0 lda #%10100000 +007A39 2 11 19 ora (SCRATCH0),y +007A3B 2 91 19 sta (SCRATCH0),y +007A3D 2 C8 iny +007A3E 2 +007A3E 2 E8 inx +007A3F 2 BD DC 60 lda HGRROWS_H,x +007A42 2 85 1A sta SCRATCH1 +007A44 2 BD 9C 61 lda HGRROWS_L,x +007A47 2 85 19 sta SCRATCH0 +007A49 2 A4 06 ldy PARAM0 +007A4B 2 B9 74 63 lda DIV7_2,y +007A4E 2 A8 tay +007A4F 2 +007A4F 2 C8 iny +007A50 2 A9 C0 lda #%11000000 +007A52 2 11 19 ora (SCRATCH0),y +007A54 2 91 19 sta (SCRATCH0),y +007A56 2 C8 iny +007A57 2 A9 A0 lda #%10100000 +007A59 2 11 19 ora (SCRATCH0),y +007A5B 2 91 19 sta (SCRATCH0),y +007A5D 2 C8 iny +007A5E 2 +007A5E 2 E8 inx +007A5F 2 BD DC 60 lda HGRROWS_H,x +007A62 2 85 1A sta SCRATCH1 +007A64 2 BD 9C 61 lda HGRROWS_L,x +007A67 2 85 19 sta SCRATCH0 +007A69 2 A4 06 ldy PARAM0 +007A6B 2 B9 74 63 lda DIV7_2,y +007A6E 2 A8 tay +007A6F 2 +007A6F 2 C8 iny +007A70 2 A9 C0 lda #%11000000 +007A72 2 11 19 ora (SCRATCH0),y +007A74 2 91 19 sta (SCRATCH0),y +007A76 2 C8 iny +007A77 2 A9 A0 lda #%10100000 +007A79 2 11 19 ora (SCRATCH0),y +007A7B 2 91 19 sta (SCRATCH0),y +007A7D 2 C8 iny +007A7E 2 +007A7E 2 E8 inx +007A7F 2 BD DC 60 lda HGRROWS_H,x +007A82 2 85 1A sta SCRATCH1 +007A84 2 BD 9C 61 lda HGRROWS_L,x +007A87 2 85 19 sta SCRATCH0 +007A89 2 A4 06 ldy PARAM0 +007A8B 2 B9 74 63 lda DIV7_2,y +007A8E 2 A8 tay +007A8F 2 +007A8F 2 C8 iny +007A90 2 A9 C0 lda #%11000000 +007A92 2 11 19 ora (SCRATCH0),y +007A94 2 91 19 sta (SCRATCH0),y +007A96 2 C8 iny +007A97 2 A9 A0 lda #%10100000 +007A99 2 11 19 ora (SCRATCH0),y +007A9B 2 91 19 sta (SCRATCH0),y +007A9D 2 C8 iny +007A9E 2 +007A9E 2 E8 inx +007A9F 2 BD DC 60 lda HGRROWS_H,x +007AA2 2 85 1A sta SCRATCH1 +007AA4 2 BD 9C 61 lda HGRROWS_L,x +007AA7 2 85 19 sta SCRATCH0 +007AA9 2 A4 06 ldy PARAM0 +007AAB 2 B9 74 63 lda DIV7_2,y +007AAE 2 A8 tay +007AAF 2 +007AAF 2 C8 iny +007AB0 2 A9 C0 lda #%11000000 +007AB2 2 11 19 ora (SCRATCH0),y +007AB4 2 91 19 sta (SCRATCH0),y +007AB6 2 C8 iny +007AB7 2 A9 AA lda #%10101010 +007AB9 2 11 19 ora (SCRATCH0),y +007ABB 2 91 19 sta (SCRATCH0),y +007ABD 2 C8 iny +007ABE 2 +007ABE 2 7A FA 68 RESTORE_AXY +007AC1 2 60 rts +007AC2 2 +007AC2 2 +007AC2 2 +007AC2 2 +007AC2 1 .include "spritegen7.s" +007AC2 2 BOX_BLU: ;4 bytes per row +007AC2 2 48 DA 5A SAVE_AXY +007AC5 2 A4 06 ldy PARAM0 +007AC7 2 BE 00 64 ldx MOD7_2,y +007ACA 2 7C CD 7A jmp (BOX_BLU_JMP,x) +007ACD 2 +007ACD 2 BOX_BLU_JMP: +007ACD 2 DB 7A .addr BOX_BLU_SHIFT0 +007ACF 2 B2 7B .addr BOX_BLU_SHIFT1 +007AD1 2 B9 7C .addr BOX_BLU_SHIFT2 +007AD3 2 C0 7D .addr BOX_BLU_SHIFT3 +007AD5 2 C7 7E .addr BOX_BLU_SHIFT4 +007AD7 2 CE 7F .addr BOX_BLU_SHIFT5 +007AD9 2 D5 80 .addr BOX_BLU_SHIFT6 +007ADB 2 +007ADB 2 +007ADB 2 BOX_BLU_SHIFT0: +007ADB 2 A4 06 ldy PARAM0 +007ADD 2 +007ADD 2 A6 07 ldx PARAM1 +007ADF 2 BD DC 60 lda HGRROWS_H,x +007AE2 2 85 1A sta SCRATCH1 +007AE4 2 BD 9C 61 lda HGRROWS_L,x +007AE7 2 85 19 sta SCRATCH0 +007AE9 2 A4 06 ldy PARAM0 +007AEB 2 B9 74 63 lda DIV7_2,y +007AEE 2 A8 tay +007AEF 2 +007AEF 2 A9 D5 lda #%11010101 +007AF1 2 11 19 ora (SCRATCH0),y +007AF3 2 91 19 sta (SCRATCH0),y +007AF5 2 C8 iny +007AF6 2 C8 iny +007AF7 2 C8 iny +007AF8 2 +007AF8 2 E8 inx +007AF9 2 BD DC 60 lda HGRROWS_H,x +007AFC 2 85 1A sta SCRATCH1 +007AFE 2 BD 9C 61 lda HGRROWS_L,x +007B01 2 85 19 sta SCRATCH0 +007B03 2 A4 06 ldy PARAM0 +007B05 2 B9 74 63 lda DIV7_2,y +007B08 2 A8 tay +007B09 2 +007B09 2 A9 C1 lda #%11000001 +007B0B 2 11 19 ora (SCRATCH0),y +007B0D 2 91 19 sta (SCRATCH0),y +007B0F 2 C8 iny +007B10 2 C8 iny +007B11 2 C8 iny +007B12 2 +007B12 2 E8 inx +007B13 2 BD DC 60 lda HGRROWS_H,x +007B16 2 85 1A sta SCRATCH1 +007B18 2 BD 9C 61 lda HGRROWS_L,x +007B1B 2 85 19 sta SCRATCH0 +007B1D 2 A4 06 ldy PARAM0 +007B1F 2 B9 74 63 lda DIV7_2,y +007B22 2 A8 tay +007B23 2 +007B23 2 A9 C1 lda #%11000001 +007B25 2 11 19 ora (SCRATCH0),y +007B27 2 91 19 sta (SCRATCH0),y +007B29 2 C8 iny +007B2A 2 C8 iny +007B2B 2 C8 iny +007B2C 2 +007B2C 2 E8 inx +007B2D 2 BD DC 60 lda HGRROWS_H,x +007B30 2 85 1A sta SCRATCH1 +007B32 2 BD 9C 61 lda HGRROWS_L,x +007B35 2 85 19 sta SCRATCH0 +007B37 2 A4 06 ldy PARAM0 +007B39 2 B9 74 63 lda DIV7_2,y +007B3C 2 A8 tay +007B3D 2 +007B3D 2 A9 C1 lda #%11000001 +007B3F 2 11 19 ora (SCRATCH0),y +007B41 2 91 19 sta (SCRATCH0),y +007B43 2 C8 iny +007B44 2 C8 iny +007B45 2 C8 iny +007B46 2 +007B46 2 E8 inx +007B47 2 BD DC 60 lda HGRROWS_H,x +007B4A 2 85 1A sta SCRATCH1 +007B4C 2 BD 9C 61 lda HGRROWS_L,x +007B4F 2 85 19 sta SCRATCH0 +007B51 2 A4 06 ldy PARAM0 +007B53 2 B9 74 63 lda DIV7_2,y +007B56 2 A8 tay +007B57 2 +007B57 2 A9 C1 lda #%11000001 +007B59 2 11 19 ora (SCRATCH0),y +007B5B 2 91 19 sta (SCRATCH0),y +007B5D 2 C8 iny +007B5E 2 C8 iny +007B5F 2 C8 iny +007B60 2 +007B60 2 E8 inx +007B61 2 BD DC 60 lda HGRROWS_H,x +007B64 2 85 1A sta SCRATCH1 +007B66 2 BD 9C 61 lda HGRROWS_L,x +007B69 2 85 19 sta SCRATCH0 +007B6B 2 A4 06 ldy PARAM0 +007B6D 2 B9 74 63 lda DIV7_2,y +007B70 2 A8 tay +007B71 2 +007B71 2 A9 C1 lda #%11000001 +007B73 2 11 19 ora (SCRATCH0),y +007B75 2 91 19 sta (SCRATCH0),y +007B77 2 C8 iny +007B78 2 C8 iny +007B79 2 C8 iny +007B7A 2 +007B7A 2 E8 inx +007B7B 2 BD DC 60 lda HGRROWS_H,x +007B7E 2 85 1A sta SCRATCH1 +007B80 2 BD 9C 61 lda HGRROWS_L,x +007B83 2 85 19 sta SCRATCH0 +007B85 2 A4 06 ldy PARAM0 +007B87 2 B9 74 63 lda DIV7_2,y +007B8A 2 A8 tay +007B8B 2 +007B8B 2 A9 C1 lda #%11000001 +007B8D 2 11 19 ora (SCRATCH0),y +007B8F 2 91 19 sta (SCRATCH0),y +007B91 2 C8 iny +007B92 2 C8 iny +007B93 2 C8 iny +007B94 2 +007B94 2 E8 inx +007B95 2 BD DC 60 lda HGRROWS_H,x +007B98 2 85 1A sta SCRATCH1 +007B9A 2 BD 9C 61 lda HGRROWS_L,x +007B9D 2 85 19 sta SCRATCH0 +007B9F 2 A4 06 ldy PARAM0 +007BA1 2 B9 74 63 lda DIV7_2,y +007BA4 2 A8 tay +007BA5 2 +007BA5 2 A9 D5 lda #%11010101 +007BA7 2 11 19 ora (SCRATCH0),y +007BA9 2 91 19 sta (SCRATCH0),y +007BAB 2 C8 iny +007BAC 2 C8 iny +007BAD 2 C8 iny +007BAE 2 +007BAE 2 7A FA 68 RESTORE_AXY +007BB1 2 60 rts +007BB2 2 +007BB2 2 +007BB2 2 +007BB2 2 BOX_BLU_SHIFT1: +007BB2 2 A4 06 ldy PARAM0 +007BB4 2 +007BB4 2 A6 07 ldx PARAM1 +007BB6 2 BD DC 60 lda HGRROWS_H,x +007BB9 2 85 1A sta SCRATCH1 +007BBB 2 BD 9C 61 lda HGRROWS_L,x +007BBE 2 85 19 sta SCRATCH0 +007BC0 2 A4 06 ldy PARAM0 +007BC2 2 B9 74 63 lda DIV7_2,y +007BC5 2 A8 tay +007BC6 2 +007BC6 2 A9 D4 lda #%11010100 +007BC8 2 11 19 ora (SCRATCH0),y +007BCA 2 91 19 sta (SCRATCH0),y +007BCC 2 C8 iny +007BCD 2 A9 82 lda #%10000010 +007BCF 2 11 19 ora (SCRATCH0),y +007BD1 2 91 19 sta (SCRATCH0),y +007BD3 2 C8 iny +007BD4 2 C8 iny +007BD5 2 +007BD5 2 E8 inx +007BD6 2 BD DC 60 lda HGRROWS_H,x +007BD9 2 85 1A sta SCRATCH1 +007BDB 2 BD 9C 61 lda HGRROWS_L,x +007BDE 2 85 19 sta SCRATCH0 +007BE0 2 A4 06 ldy PARAM0 +007BE2 2 B9 74 63 lda DIV7_2,y +007BE5 2 A8 tay +007BE6 2 +007BE6 2 A9 84 lda #%10000100 +007BE8 2 11 19 ora (SCRATCH0),y +007BEA 2 91 19 sta (SCRATCH0),y +007BEC 2 C8 iny +007BED 2 A9 82 lda #%10000010 +007BEF 2 11 19 ora (SCRATCH0),y +007BF1 2 91 19 sta (SCRATCH0),y +007BF3 2 C8 iny +007BF4 2 C8 iny +007BF5 2 +007BF5 2 E8 inx +007BF6 2 BD DC 60 lda HGRROWS_H,x +007BF9 2 85 1A sta SCRATCH1 +007BFB 2 BD 9C 61 lda HGRROWS_L,x +007BFE 2 85 19 sta SCRATCH0 +007C00 2 A4 06 ldy PARAM0 +007C02 2 B9 74 63 lda DIV7_2,y +007C05 2 A8 tay +007C06 2 +007C06 2 A9 84 lda #%10000100 +007C08 2 11 19 ora (SCRATCH0),y +007C0A 2 91 19 sta (SCRATCH0),y +007C0C 2 C8 iny +007C0D 2 A9 82 lda #%10000010 +007C0F 2 11 19 ora (SCRATCH0),y +007C11 2 91 19 sta (SCRATCH0),y +007C13 2 C8 iny +007C14 2 C8 iny +007C15 2 +007C15 2 E8 inx +007C16 2 BD DC 60 lda HGRROWS_H,x +007C19 2 85 1A sta SCRATCH1 +007C1B 2 BD 9C 61 lda HGRROWS_L,x +007C1E 2 85 19 sta SCRATCH0 +007C20 2 A4 06 ldy PARAM0 +007C22 2 B9 74 63 lda DIV7_2,y +007C25 2 A8 tay +007C26 2 +007C26 2 A9 84 lda #%10000100 +007C28 2 11 19 ora (SCRATCH0),y +007C2A 2 91 19 sta (SCRATCH0),y +007C2C 2 C8 iny +007C2D 2 A9 82 lda #%10000010 +007C2F 2 11 19 ora (SCRATCH0),y +007C31 2 91 19 sta (SCRATCH0),y +007C33 2 C8 iny +007C34 2 C8 iny +007C35 2 +007C35 2 E8 inx +007C36 2 BD DC 60 lda HGRROWS_H,x +007C39 2 85 1A sta SCRATCH1 +007C3B 2 BD 9C 61 lda HGRROWS_L,x +007C3E 2 85 19 sta SCRATCH0 +007C40 2 A4 06 ldy PARAM0 +007C42 2 B9 74 63 lda DIV7_2,y +007C45 2 A8 tay +007C46 2 +007C46 2 A9 84 lda #%10000100 +007C48 2 11 19 ora (SCRATCH0),y +007C4A 2 91 19 sta (SCRATCH0),y +007C4C 2 C8 iny +007C4D 2 A9 82 lda #%10000010 +007C4F 2 11 19 ora (SCRATCH0),y +007C51 2 91 19 sta (SCRATCH0),y +007C53 2 C8 iny +007C54 2 C8 iny +007C55 2 +007C55 2 E8 inx +007C56 2 BD DC 60 lda HGRROWS_H,x +007C59 2 85 1A sta SCRATCH1 +007C5B 2 BD 9C 61 lda HGRROWS_L,x +007C5E 2 85 19 sta SCRATCH0 +007C60 2 A4 06 ldy PARAM0 +007C62 2 B9 74 63 lda DIV7_2,y +007C65 2 A8 tay +007C66 2 +007C66 2 A9 84 lda #%10000100 +007C68 2 11 19 ora (SCRATCH0),y +007C6A 2 91 19 sta (SCRATCH0),y +007C6C 2 C8 iny +007C6D 2 A9 82 lda #%10000010 +007C6F 2 11 19 ora (SCRATCH0),y +007C71 2 91 19 sta (SCRATCH0),y +007C73 2 C8 iny +007C74 2 C8 iny +007C75 2 +007C75 2 E8 inx +007C76 2 BD DC 60 lda HGRROWS_H,x +007C79 2 85 1A sta SCRATCH1 +007C7B 2 BD 9C 61 lda HGRROWS_L,x +007C7E 2 85 19 sta SCRATCH0 +007C80 2 A4 06 ldy PARAM0 +007C82 2 B9 74 63 lda DIV7_2,y +007C85 2 A8 tay +007C86 2 +007C86 2 A9 84 lda #%10000100 +007C88 2 11 19 ora (SCRATCH0),y +007C8A 2 91 19 sta (SCRATCH0),y +007C8C 2 C8 iny +007C8D 2 A9 82 lda #%10000010 +007C8F 2 11 19 ora (SCRATCH0),y +007C91 2 91 19 sta (SCRATCH0),y +007C93 2 C8 iny +007C94 2 C8 iny +007C95 2 +007C95 2 E8 inx +007C96 2 BD DC 60 lda HGRROWS_H,x +007C99 2 85 1A sta SCRATCH1 +007C9B 2 BD 9C 61 lda HGRROWS_L,x +007C9E 2 85 19 sta SCRATCH0 +007CA0 2 A4 06 ldy PARAM0 +007CA2 2 B9 74 63 lda DIV7_2,y +007CA5 2 A8 tay +007CA6 2 +007CA6 2 A9 D4 lda #%11010100 +007CA8 2 11 19 ora (SCRATCH0),y +007CAA 2 91 19 sta (SCRATCH0),y +007CAC 2 C8 iny +007CAD 2 A9 82 lda #%10000010 +007CAF 2 11 19 ora (SCRATCH0),y +007CB1 2 91 19 sta (SCRATCH0),y +007CB3 2 C8 iny +007CB4 2 C8 iny +007CB5 2 +007CB5 2 7A FA 68 RESTORE_AXY +007CB8 2 60 rts +007CB9 2 +007CB9 2 +007CB9 2 +007CB9 2 BOX_BLU_SHIFT2: +007CB9 2 A4 06 ldy PARAM0 +007CBB 2 +007CBB 2 A6 07 ldx PARAM1 +007CBD 2 BD DC 60 lda HGRROWS_H,x +007CC0 2 85 1A sta SCRATCH1 +007CC2 2 BD 9C 61 lda HGRROWS_L,x +007CC5 2 85 19 sta SCRATCH0 +007CC7 2 A4 06 ldy PARAM0 +007CC9 2 B9 74 63 lda DIV7_2,y +007CCC 2 A8 tay +007CCD 2 +007CCD 2 A9 D0 lda #%11010000 +007CCF 2 11 19 ora (SCRATCH0),y +007CD1 2 91 19 sta (SCRATCH0),y +007CD3 2 C8 iny +007CD4 2 A9 8A lda #%10001010 +007CD6 2 11 19 ora (SCRATCH0),y +007CD8 2 91 19 sta (SCRATCH0),y +007CDA 2 C8 iny +007CDB 2 C8 iny +007CDC 2 +007CDC 2 E8 inx +007CDD 2 BD DC 60 lda HGRROWS_H,x +007CE0 2 85 1A sta SCRATCH1 +007CE2 2 BD 9C 61 lda HGRROWS_L,x +007CE5 2 85 19 sta SCRATCH0 +007CE7 2 A4 06 ldy PARAM0 +007CE9 2 B9 74 63 lda DIV7_2,y +007CEC 2 A8 tay +007CED 2 +007CED 2 A9 90 lda #%10010000 +007CEF 2 11 19 ora (SCRATCH0),y +007CF1 2 91 19 sta (SCRATCH0),y +007CF3 2 C8 iny +007CF4 2 A9 88 lda #%10001000 +007CF6 2 11 19 ora (SCRATCH0),y +007CF8 2 91 19 sta (SCRATCH0),y +007CFA 2 C8 iny +007CFB 2 C8 iny +007CFC 2 +007CFC 2 E8 inx +007CFD 2 BD DC 60 lda HGRROWS_H,x +007D00 2 85 1A sta SCRATCH1 +007D02 2 BD 9C 61 lda HGRROWS_L,x +007D05 2 85 19 sta SCRATCH0 +007D07 2 A4 06 ldy PARAM0 +007D09 2 B9 74 63 lda DIV7_2,y +007D0C 2 A8 tay +007D0D 2 +007D0D 2 A9 90 lda #%10010000 +007D0F 2 11 19 ora (SCRATCH0),y +007D11 2 91 19 sta (SCRATCH0),y +007D13 2 C8 iny +007D14 2 A9 88 lda #%10001000 +007D16 2 11 19 ora (SCRATCH0),y +007D18 2 91 19 sta (SCRATCH0),y +007D1A 2 C8 iny +007D1B 2 C8 iny +007D1C 2 +007D1C 2 E8 inx +007D1D 2 BD DC 60 lda HGRROWS_H,x +007D20 2 85 1A sta SCRATCH1 +007D22 2 BD 9C 61 lda HGRROWS_L,x +007D25 2 85 19 sta SCRATCH0 +007D27 2 A4 06 ldy PARAM0 +007D29 2 B9 74 63 lda DIV7_2,y +007D2C 2 A8 tay +007D2D 2 +007D2D 2 A9 90 lda #%10010000 +007D2F 2 11 19 ora (SCRATCH0),y +007D31 2 91 19 sta (SCRATCH0),y +007D33 2 C8 iny +007D34 2 A9 88 lda #%10001000 +007D36 2 11 19 ora (SCRATCH0),y +007D38 2 91 19 sta (SCRATCH0),y +007D3A 2 C8 iny +007D3B 2 C8 iny +007D3C 2 +007D3C 2 E8 inx +007D3D 2 BD DC 60 lda HGRROWS_H,x +007D40 2 85 1A sta SCRATCH1 +007D42 2 BD 9C 61 lda HGRROWS_L,x +007D45 2 85 19 sta SCRATCH0 +007D47 2 A4 06 ldy PARAM0 +007D49 2 B9 74 63 lda DIV7_2,y +007D4C 2 A8 tay +007D4D 2 +007D4D 2 A9 90 lda #%10010000 +007D4F 2 11 19 ora (SCRATCH0),y +007D51 2 91 19 sta (SCRATCH0),y +007D53 2 C8 iny +007D54 2 A9 88 lda #%10001000 +007D56 2 11 19 ora (SCRATCH0),y +007D58 2 91 19 sta (SCRATCH0),y +007D5A 2 C8 iny +007D5B 2 C8 iny +007D5C 2 +007D5C 2 E8 inx +007D5D 2 BD DC 60 lda HGRROWS_H,x +007D60 2 85 1A sta SCRATCH1 +007D62 2 BD 9C 61 lda HGRROWS_L,x +007D65 2 85 19 sta SCRATCH0 +007D67 2 A4 06 ldy PARAM0 +007D69 2 B9 74 63 lda DIV7_2,y +007D6C 2 A8 tay +007D6D 2 +007D6D 2 A9 90 lda #%10010000 +007D6F 2 11 19 ora (SCRATCH0),y +007D71 2 91 19 sta (SCRATCH0),y +007D73 2 C8 iny +007D74 2 A9 88 lda #%10001000 +007D76 2 11 19 ora (SCRATCH0),y +007D78 2 91 19 sta (SCRATCH0),y +007D7A 2 C8 iny +007D7B 2 C8 iny +007D7C 2 +007D7C 2 E8 inx +007D7D 2 BD DC 60 lda HGRROWS_H,x +007D80 2 85 1A sta SCRATCH1 +007D82 2 BD 9C 61 lda HGRROWS_L,x +007D85 2 85 19 sta SCRATCH0 +007D87 2 A4 06 ldy PARAM0 +007D89 2 B9 74 63 lda DIV7_2,y +007D8C 2 A8 tay +007D8D 2 +007D8D 2 A9 90 lda #%10010000 +007D8F 2 11 19 ora (SCRATCH0),y +007D91 2 91 19 sta (SCRATCH0),y +007D93 2 C8 iny +007D94 2 A9 88 lda #%10001000 +007D96 2 11 19 ora (SCRATCH0),y +007D98 2 91 19 sta (SCRATCH0),y +007D9A 2 C8 iny +007D9B 2 C8 iny +007D9C 2 +007D9C 2 E8 inx +007D9D 2 BD DC 60 lda HGRROWS_H,x +007DA0 2 85 1A sta SCRATCH1 +007DA2 2 BD 9C 61 lda HGRROWS_L,x +007DA5 2 85 19 sta SCRATCH0 +007DA7 2 A4 06 ldy PARAM0 +007DA9 2 B9 74 63 lda DIV7_2,y +007DAC 2 A8 tay +007DAD 2 +007DAD 2 A9 D0 lda #%11010000 +007DAF 2 11 19 ora (SCRATCH0),y +007DB1 2 91 19 sta (SCRATCH0),y +007DB3 2 C8 iny +007DB4 2 A9 8A lda #%10001010 +007DB6 2 11 19 ora (SCRATCH0),y +007DB8 2 91 19 sta (SCRATCH0),y +007DBA 2 C8 iny +007DBB 2 C8 iny +007DBC 2 +007DBC 2 7A FA 68 RESTORE_AXY +007DBF 2 60 rts +007DC0 2 +007DC0 2 +007DC0 2 +007DC0 2 BOX_BLU_SHIFT3: +007DC0 2 A4 06 ldy PARAM0 +007DC2 2 +007DC2 2 A6 07 ldx PARAM1 +007DC4 2 BD DC 60 lda HGRROWS_H,x +007DC7 2 85 1A sta SCRATCH1 +007DC9 2 BD 9C 61 lda HGRROWS_L,x +007DCC 2 85 19 sta SCRATCH0 +007DCE 2 A4 06 ldy PARAM0 +007DD0 2 B9 74 63 lda DIV7_2,y +007DD3 2 A8 tay +007DD4 2 +007DD4 2 A9 C0 lda #%11000000 +007DD6 2 11 19 ora (SCRATCH0),y +007DD8 2 91 19 sta (SCRATCH0),y +007DDA 2 C8 iny +007DDB 2 A9 AA lda #%10101010 +007DDD 2 11 19 ora (SCRATCH0),y +007DDF 2 91 19 sta (SCRATCH0),y +007DE1 2 C8 iny +007DE2 2 C8 iny +007DE3 2 +007DE3 2 E8 inx +007DE4 2 BD DC 60 lda HGRROWS_H,x +007DE7 2 85 1A sta SCRATCH1 +007DE9 2 BD 9C 61 lda HGRROWS_L,x +007DEC 2 85 19 sta SCRATCH0 +007DEE 2 A4 06 ldy PARAM0 +007DF0 2 B9 74 63 lda DIV7_2,y +007DF3 2 A8 tay +007DF4 2 +007DF4 2 A9 C0 lda #%11000000 +007DF6 2 11 19 ora (SCRATCH0),y +007DF8 2 91 19 sta (SCRATCH0),y +007DFA 2 C8 iny +007DFB 2 A9 A0 lda #%10100000 +007DFD 2 11 19 ora (SCRATCH0),y +007DFF 2 91 19 sta (SCRATCH0),y +007E01 2 C8 iny +007E02 2 C8 iny +007E03 2 +007E03 2 E8 inx +007E04 2 BD DC 60 lda HGRROWS_H,x +007E07 2 85 1A sta SCRATCH1 +007E09 2 BD 9C 61 lda HGRROWS_L,x +007E0C 2 85 19 sta SCRATCH0 +007E0E 2 A4 06 ldy PARAM0 +007E10 2 B9 74 63 lda DIV7_2,y +007E13 2 A8 tay +007E14 2 +007E14 2 A9 C0 lda #%11000000 +007E16 2 11 19 ora (SCRATCH0),y +007E18 2 91 19 sta (SCRATCH0),y +007E1A 2 C8 iny +007E1B 2 A9 A0 lda #%10100000 +007E1D 2 11 19 ora (SCRATCH0),y +007E1F 2 91 19 sta (SCRATCH0),y +007E21 2 C8 iny +007E22 2 C8 iny +007E23 2 +007E23 2 E8 inx +007E24 2 BD DC 60 lda HGRROWS_H,x +007E27 2 85 1A sta SCRATCH1 +007E29 2 BD 9C 61 lda HGRROWS_L,x +007E2C 2 85 19 sta SCRATCH0 +007E2E 2 A4 06 ldy PARAM0 +007E30 2 B9 74 63 lda DIV7_2,y +007E33 2 A8 tay +007E34 2 +007E34 2 A9 C0 lda #%11000000 +007E36 2 11 19 ora (SCRATCH0),y +007E38 2 91 19 sta (SCRATCH0),y +007E3A 2 C8 iny +007E3B 2 A9 A0 lda #%10100000 +007E3D 2 11 19 ora (SCRATCH0),y +007E3F 2 91 19 sta (SCRATCH0),y +007E41 2 C8 iny +007E42 2 C8 iny +007E43 2 +007E43 2 E8 inx +007E44 2 BD DC 60 lda HGRROWS_H,x +007E47 2 85 1A sta SCRATCH1 +007E49 2 BD 9C 61 lda HGRROWS_L,x +007E4C 2 85 19 sta SCRATCH0 +007E4E 2 A4 06 ldy PARAM0 +007E50 2 B9 74 63 lda DIV7_2,y +007E53 2 A8 tay +007E54 2 +007E54 2 A9 C0 lda #%11000000 +007E56 2 11 19 ora (SCRATCH0),y +007E58 2 91 19 sta (SCRATCH0),y +007E5A 2 C8 iny +007E5B 2 A9 A0 lda #%10100000 +007E5D 2 11 19 ora (SCRATCH0),y +007E5F 2 91 19 sta (SCRATCH0),y +007E61 2 C8 iny +007E62 2 C8 iny +007E63 2 +007E63 2 E8 inx +007E64 2 BD DC 60 lda HGRROWS_H,x +007E67 2 85 1A sta SCRATCH1 +007E69 2 BD 9C 61 lda HGRROWS_L,x +007E6C 2 85 19 sta SCRATCH0 +007E6E 2 A4 06 ldy PARAM0 +007E70 2 B9 74 63 lda DIV7_2,y +007E73 2 A8 tay +007E74 2 +007E74 2 A9 C0 lda #%11000000 +007E76 2 11 19 ora (SCRATCH0),y +007E78 2 91 19 sta (SCRATCH0),y +007E7A 2 C8 iny +007E7B 2 A9 A0 lda #%10100000 +007E7D 2 11 19 ora (SCRATCH0),y +007E7F 2 91 19 sta (SCRATCH0),y +007E81 2 C8 iny +007E82 2 C8 iny +007E83 2 +007E83 2 E8 inx +007E84 2 BD DC 60 lda HGRROWS_H,x +007E87 2 85 1A sta SCRATCH1 +007E89 2 BD 9C 61 lda HGRROWS_L,x +007E8C 2 85 19 sta SCRATCH0 +007E8E 2 A4 06 ldy PARAM0 +007E90 2 B9 74 63 lda DIV7_2,y +007E93 2 A8 tay +007E94 2 +007E94 2 A9 C0 lda #%11000000 +007E96 2 11 19 ora (SCRATCH0),y +007E98 2 91 19 sta (SCRATCH0),y +007E9A 2 C8 iny +007E9B 2 A9 A0 lda #%10100000 +007E9D 2 11 19 ora (SCRATCH0),y +007E9F 2 91 19 sta (SCRATCH0),y +007EA1 2 C8 iny +007EA2 2 C8 iny +007EA3 2 +007EA3 2 E8 inx +007EA4 2 BD DC 60 lda HGRROWS_H,x +007EA7 2 85 1A sta SCRATCH1 +007EA9 2 BD 9C 61 lda HGRROWS_L,x +007EAC 2 85 19 sta SCRATCH0 +007EAE 2 A4 06 ldy PARAM0 +007EB0 2 B9 74 63 lda DIV7_2,y +007EB3 2 A8 tay +007EB4 2 +007EB4 2 A9 C0 lda #%11000000 +007EB6 2 11 19 ora (SCRATCH0),y +007EB8 2 91 19 sta (SCRATCH0),y +007EBA 2 C8 iny +007EBB 2 A9 AA lda #%10101010 +007EBD 2 11 19 ora (SCRATCH0),y +007EBF 2 91 19 sta (SCRATCH0),y +007EC1 2 C8 iny +007EC2 2 C8 iny +007EC3 2 +007EC3 2 7A FA 68 RESTORE_AXY +007EC6 2 60 rts +007EC7 2 +007EC7 2 +007EC7 2 +007EC7 2 BOX_BLU_SHIFT4: +007EC7 2 A4 06 ldy PARAM0 +007EC9 2 +007EC9 2 A6 07 ldx PARAM1 +007ECB 2 BD DC 60 lda HGRROWS_H,x +007ECE 2 85 1A sta SCRATCH1 +007ED0 2 BD 9C 61 lda HGRROWS_L,x +007ED3 2 85 19 sta SCRATCH0 +007ED5 2 A4 06 ldy PARAM0 +007ED7 2 B9 74 63 lda DIV7_2,y +007EDA 2 A8 tay +007EDB 2 +007EDB 2 C8 iny +007EDC 2 A9 AA lda #%10101010 +007EDE 2 11 19 ora (SCRATCH0),y +007EE0 2 91 19 sta (SCRATCH0),y +007EE2 2 C8 iny +007EE3 2 A9 81 lda #%10000001 +007EE5 2 11 19 ora (SCRATCH0),y +007EE7 2 91 19 sta (SCRATCH0),y +007EE9 2 C8 iny +007EEA 2 +007EEA 2 E8 inx +007EEB 2 BD DC 60 lda HGRROWS_H,x +007EEE 2 85 1A sta SCRATCH1 +007EF0 2 BD 9C 61 lda HGRROWS_L,x +007EF3 2 85 19 sta SCRATCH0 +007EF5 2 A4 06 ldy PARAM0 +007EF7 2 B9 74 63 lda DIV7_2,y +007EFA 2 A8 tay +007EFB 2 +007EFB 2 C8 iny +007EFC 2 A9 82 lda #%10000010 +007EFE 2 11 19 ora (SCRATCH0),y +007F00 2 91 19 sta (SCRATCH0),y +007F02 2 C8 iny +007F03 2 A9 81 lda #%10000001 +007F05 2 11 19 ora (SCRATCH0),y +007F07 2 91 19 sta (SCRATCH0),y +007F09 2 C8 iny +007F0A 2 +007F0A 2 E8 inx +007F0B 2 BD DC 60 lda HGRROWS_H,x +007F0E 2 85 1A sta SCRATCH1 +007F10 2 BD 9C 61 lda HGRROWS_L,x +007F13 2 85 19 sta SCRATCH0 +007F15 2 A4 06 ldy PARAM0 +007F17 2 B9 74 63 lda DIV7_2,y +007F1A 2 A8 tay +007F1B 2 +007F1B 2 C8 iny +007F1C 2 A9 82 lda #%10000010 +007F1E 2 11 19 ora (SCRATCH0),y +007F20 2 91 19 sta (SCRATCH0),y +007F22 2 C8 iny +007F23 2 A9 81 lda #%10000001 +007F25 2 11 19 ora (SCRATCH0),y +007F27 2 91 19 sta (SCRATCH0),y +007F29 2 C8 iny +007F2A 2 +007F2A 2 E8 inx +007F2B 2 BD DC 60 lda HGRROWS_H,x +007F2E 2 85 1A sta SCRATCH1 +007F30 2 BD 9C 61 lda HGRROWS_L,x +007F33 2 85 19 sta SCRATCH0 +007F35 2 A4 06 ldy PARAM0 +007F37 2 B9 74 63 lda DIV7_2,y +007F3A 2 A8 tay +007F3B 2 +007F3B 2 C8 iny +007F3C 2 A9 82 lda #%10000010 +007F3E 2 11 19 ora (SCRATCH0),y +007F40 2 91 19 sta (SCRATCH0),y +007F42 2 C8 iny +007F43 2 A9 81 lda #%10000001 +007F45 2 11 19 ora (SCRATCH0),y +007F47 2 91 19 sta (SCRATCH0),y +007F49 2 C8 iny +007F4A 2 +007F4A 2 E8 inx +007F4B 2 BD DC 60 lda HGRROWS_H,x +007F4E 2 85 1A sta SCRATCH1 +007F50 2 BD 9C 61 lda HGRROWS_L,x +007F53 2 85 19 sta SCRATCH0 +007F55 2 A4 06 ldy PARAM0 +007F57 2 B9 74 63 lda DIV7_2,y +007F5A 2 A8 tay +007F5B 2 +007F5B 2 C8 iny +007F5C 2 A9 82 lda #%10000010 +007F5E 2 11 19 ora (SCRATCH0),y +007F60 2 91 19 sta (SCRATCH0),y +007F62 2 C8 iny +007F63 2 A9 81 lda #%10000001 +007F65 2 11 19 ora (SCRATCH0),y +007F67 2 91 19 sta (SCRATCH0),y +007F69 2 C8 iny +007F6A 2 +007F6A 2 E8 inx +007F6B 2 BD DC 60 lda HGRROWS_H,x +007F6E 2 85 1A sta SCRATCH1 +007F70 2 BD 9C 61 lda HGRROWS_L,x +007F73 2 85 19 sta SCRATCH0 +007F75 2 A4 06 ldy PARAM0 +007F77 2 B9 74 63 lda DIV7_2,y +007F7A 2 A8 tay +007F7B 2 +007F7B 2 C8 iny +007F7C 2 A9 82 lda #%10000010 +007F7E 2 11 19 ora (SCRATCH0),y +007F80 2 91 19 sta (SCRATCH0),y +007F82 2 C8 iny +007F83 2 A9 81 lda #%10000001 +007F85 2 11 19 ora (SCRATCH0),y +007F87 2 91 19 sta (SCRATCH0),y +007F89 2 C8 iny +007F8A 2 +007F8A 2 E8 inx +007F8B 2 BD DC 60 lda HGRROWS_H,x +007F8E 2 85 1A sta SCRATCH1 +007F90 2 BD 9C 61 lda HGRROWS_L,x +007F93 2 85 19 sta SCRATCH0 +007F95 2 A4 06 ldy PARAM0 +007F97 2 B9 74 63 lda DIV7_2,y +007F9A 2 A8 tay +007F9B 2 +007F9B 2 C8 iny +007F9C 2 A9 82 lda #%10000010 +007F9E 2 11 19 ora (SCRATCH0),y +007FA0 2 91 19 sta (SCRATCH0),y +007FA2 2 C8 iny +007FA3 2 A9 81 lda #%10000001 +007FA5 2 11 19 ora (SCRATCH0),y +007FA7 2 91 19 sta (SCRATCH0),y +007FA9 2 C8 iny +007FAA 2 +007FAA 2 E8 inx +007FAB 2 BD DC 60 lda HGRROWS_H,x +007FAE 2 85 1A sta SCRATCH1 +007FB0 2 BD 9C 61 lda HGRROWS_L,x +007FB3 2 85 19 sta SCRATCH0 +007FB5 2 A4 06 ldy PARAM0 +007FB7 2 B9 74 63 lda DIV7_2,y +007FBA 2 A8 tay +007FBB 2 +007FBB 2 C8 iny +007FBC 2 A9 AA lda #%10101010 +007FBE 2 11 19 ora (SCRATCH0),y +007FC0 2 91 19 sta (SCRATCH0),y +007FC2 2 C8 iny +007FC3 2 A9 81 lda #%10000001 +007FC5 2 11 19 ora (SCRATCH0),y +007FC7 2 91 19 sta (SCRATCH0),y +007FC9 2 C8 iny +007FCA 2 +007FCA 2 7A FA 68 RESTORE_AXY +007FCD 2 60 rts +007FCE 2 +007FCE 2 +007FCE 2 +007FCE 2 BOX_BLU_SHIFT5: +007FCE 2 A4 06 ldy PARAM0 +007FD0 2 +007FD0 2 A6 07 ldx PARAM1 +007FD2 2 BD DC 60 lda HGRROWS_H,x +007FD5 2 85 1A sta SCRATCH1 +007FD7 2 BD 9C 61 lda HGRROWS_L,x +007FDA 2 85 19 sta SCRATCH0 +007FDC 2 A4 06 ldy PARAM0 +007FDE 2 B9 74 63 lda DIV7_2,y +007FE1 2 A8 tay +007FE2 2 +007FE2 2 C8 iny +007FE3 2 A9 A8 lda #%10101000 +007FE5 2 11 19 ora (SCRATCH0),y +007FE7 2 91 19 sta (SCRATCH0),y +007FE9 2 C8 iny +007FEA 2 A9 85 lda #%10000101 +007FEC 2 11 19 ora (SCRATCH0),y +007FEE 2 91 19 sta (SCRATCH0),y +007FF0 2 C8 iny +007FF1 2 +007FF1 2 E8 inx +007FF2 2 BD DC 60 lda HGRROWS_H,x +007FF5 2 85 1A sta SCRATCH1 +007FF7 2 BD 9C 61 lda HGRROWS_L,x +007FFA 2 85 19 sta SCRATCH0 +007FFC 2 A4 06 ldy PARAM0 +007FFE 2 B9 74 63 lda DIV7_2,y +008001 2 A8 tay +008002 2 +008002 2 C8 iny +008003 2 A9 88 lda #%10001000 +008005 2 11 19 ora (SCRATCH0),y +008007 2 91 19 sta (SCRATCH0),y +008009 2 C8 iny +00800A 2 A9 84 lda #%10000100 +00800C 2 11 19 ora (SCRATCH0),y +00800E 2 91 19 sta (SCRATCH0),y +008010 2 C8 iny +008011 2 +008011 2 E8 inx +008012 2 BD DC 60 lda HGRROWS_H,x +008015 2 85 1A sta SCRATCH1 +008017 2 BD 9C 61 lda HGRROWS_L,x +00801A 2 85 19 sta SCRATCH0 +00801C 2 A4 06 ldy PARAM0 +00801E 2 B9 74 63 lda DIV7_2,y +008021 2 A8 tay +008022 2 +008022 2 C8 iny +008023 2 A9 88 lda #%10001000 +008025 2 11 19 ora (SCRATCH0),y +008027 2 91 19 sta (SCRATCH0),y +008029 2 C8 iny +00802A 2 A9 84 lda #%10000100 +00802C 2 11 19 ora (SCRATCH0),y +00802E 2 91 19 sta (SCRATCH0),y +008030 2 C8 iny +008031 2 +008031 2 E8 inx +008032 2 BD DC 60 lda HGRROWS_H,x +008035 2 85 1A sta SCRATCH1 +008037 2 BD 9C 61 lda HGRROWS_L,x +00803A 2 85 19 sta SCRATCH0 +00803C 2 A4 06 ldy PARAM0 +00803E 2 B9 74 63 lda DIV7_2,y +008041 2 A8 tay +008042 2 +008042 2 C8 iny +008043 2 A9 88 lda #%10001000 +008045 2 11 19 ora (SCRATCH0),y +008047 2 91 19 sta (SCRATCH0),y +008049 2 C8 iny +00804A 2 A9 84 lda #%10000100 +00804C 2 11 19 ora (SCRATCH0),y +00804E 2 91 19 sta (SCRATCH0),y +008050 2 C8 iny +008051 2 +008051 2 E8 inx +008052 2 BD DC 60 lda HGRROWS_H,x +008055 2 85 1A sta SCRATCH1 +008057 2 BD 9C 61 lda HGRROWS_L,x +00805A 2 85 19 sta SCRATCH0 +00805C 2 A4 06 ldy PARAM0 +00805E 2 B9 74 63 lda DIV7_2,y +008061 2 A8 tay +008062 2 +008062 2 C8 iny +008063 2 A9 88 lda #%10001000 +008065 2 11 19 ora (SCRATCH0),y +008067 2 91 19 sta (SCRATCH0),y +008069 2 C8 iny +00806A 2 A9 84 lda #%10000100 +00806C 2 11 19 ora (SCRATCH0),y +00806E 2 91 19 sta (SCRATCH0),y +008070 2 C8 iny +008071 2 +008071 2 E8 inx +008072 2 BD DC 60 lda HGRROWS_H,x +008075 2 85 1A sta SCRATCH1 +008077 2 BD 9C 61 lda HGRROWS_L,x +00807A 2 85 19 sta SCRATCH0 +00807C 2 A4 06 ldy PARAM0 +00807E 2 B9 74 63 lda DIV7_2,y +008081 2 A8 tay +008082 2 +008082 2 C8 iny +008083 2 A9 88 lda #%10001000 +008085 2 11 19 ora (SCRATCH0),y +008087 2 91 19 sta (SCRATCH0),y +008089 2 C8 iny +00808A 2 A9 84 lda #%10000100 +00808C 2 11 19 ora (SCRATCH0),y +00808E 2 91 19 sta (SCRATCH0),y +008090 2 C8 iny +008091 2 +008091 2 E8 inx +008092 2 BD DC 60 lda HGRROWS_H,x +008095 2 85 1A sta SCRATCH1 +008097 2 BD 9C 61 lda HGRROWS_L,x +00809A 2 85 19 sta SCRATCH0 +00809C 2 A4 06 ldy PARAM0 +00809E 2 B9 74 63 lda DIV7_2,y +0080A1 2 A8 tay +0080A2 2 +0080A2 2 C8 iny +0080A3 2 A9 88 lda #%10001000 +0080A5 2 11 19 ora (SCRATCH0),y +0080A7 2 91 19 sta (SCRATCH0),y +0080A9 2 C8 iny +0080AA 2 A9 84 lda #%10000100 +0080AC 2 11 19 ora (SCRATCH0),y +0080AE 2 91 19 sta (SCRATCH0),y +0080B0 2 C8 iny +0080B1 2 +0080B1 2 E8 inx +0080B2 2 BD DC 60 lda HGRROWS_H,x +0080B5 2 85 1A sta SCRATCH1 +0080B7 2 BD 9C 61 lda HGRROWS_L,x +0080BA 2 85 19 sta SCRATCH0 +0080BC 2 A4 06 ldy PARAM0 +0080BE 2 B9 74 63 lda DIV7_2,y +0080C1 2 A8 tay +0080C2 2 +0080C2 2 C8 iny +0080C3 2 A9 A8 lda #%10101000 +0080C5 2 11 19 ora (SCRATCH0),y +0080C7 2 91 19 sta (SCRATCH0),y +0080C9 2 C8 iny +0080CA 2 A9 85 lda #%10000101 +0080CC 2 11 19 ora (SCRATCH0),y +0080CE 2 91 19 sta (SCRATCH0),y +0080D0 2 C8 iny +0080D1 2 +0080D1 2 7A FA 68 RESTORE_AXY +0080D4 2 60 rts +0080D5 2 +0080D5 2 +0080D5 2 +0080D5 2 BOX_BLU_SHIFT6: +0080D5 2 A4 06 ldy PARAM0 +0080D7 2 +0080D7 2 A6 07 ldx PARAM1 +0080D9 2 BD DC 60 lda HGRROWS_H,x +0080DC 2 85 1A sta SCRATCH1 +0080DE 2 BD 9C 61 lda HGRROWS_L,x +0080E1 2 85 19 sta SCRATCH0 +0080E3 2 A4 06 ldy PARAM0 +0080E5 2 B9 74 63 lda DIV7_2,y +0080E8 2 A8 tay +0080E9 2 +0080E9 2 C8 iny +0080EA 2 A9 A0 lda #%10100000 +0080EC 2 11 19 ora (SCRATCH0),y +0080EE 2 91 19 sta (SCRATCH0),y +0080F0 2 C8 iny +0080F1 2 A9 95 lda #%10010101 +0080F3 2 11 19 ora (SCRATCH0),y +0080F5 2 91 19 sta (SCRATCH0),y +0080F7 2 C8 iny +0080F8 2 +0080F8 2 E8 inx +0080F9 2 BD DC 60 lda HGRROWS_H,x +0080FC 2 85 1A sta SCRATCH1 +0080FE 2 BD 9C 61 lda HGRROWS_L,x +008101 2 85 19 sta SCRATCH0 +008103 2 A4 06 ldy PARAM0 +008105 2 B9 74 63 lda DIV7_2,y +008108 2 A8 tay +008109 2 +008109 2 C8 iny +00810A 2 A9 A0 lda #%10100000 +00810C 2 11 19 ora (SCRATCH0),y +00810E 2 91 19 sta (SCRATCH0),y +008110 2 C8 iny +008111 2 A9 90 lda #%10010000 +008113 2 11 19 ora (SCRATCH0),y +008115 2 91 19 sta (SCRATCH0),y +008117 2 C8 iny +008118 2 +008118 2 E8 inx +008119 2 BD DC 60 lda HGRROWS_H,x +00811C 2 85 1A sta SCRATCH1 +00811E 2 BD 9C 61 lda HGRROWS_L,x +008121 2 85 19 sta SCRATCH0 +008123 2 A4 06 ldy PARAM0 +008125 2 B9 74 63 lda DIV7_2,y +008128 2 A8 tay +008129 2 +008129 2 C8 iny +00812A 2 A9 A0 lda #%10100000 +00812C 2 11 19 ora (SCRATCH0),y +00812E 2 91 19 sta (SCRATCH0),y +008130 2 C8 iny +008131 2 A9 90 lda #%10010000 +008133 2 11 19 ora (SCRATCH0),y +008135 2 91 19 sta (SCRATCH0),y +008137 2 C8 iny +008138 2 +008138 2 E8 inx +008139 2 BD DC 60 lda HGRROWS_H,x +00813C 2 85 1A sta SCRATCH1 +00813E 2 BD 9C 61 lda HGRROWS_L,x +008141 2 85 19 sta SCRATCH0 +008143 2 A4 06 ldy PARAM0 +008145 2 B9 74 63 lda DIV7_2,y +008148 2 A8 tay +008149 2 +008149 2 C8 iny +00814A 2 A9 A0 lda #%10100000 +00814C 2 11 19 ora (SCRATCH0),y +00814E 2 91 19 sta (SCRATCH0),y +008150 2 C8 iny +008151 2 A9 90 lda #%10010000 +008153 2 11 19 ora (SCRATCH0),y +008155 2 91 19 sta (SCRATCH0),y +008157 2 C8 iny +008158 2 +008158 2 E8 inx +008159 2 BD DC 60 lda HGRROWS_H,x +00815C 2 85 1A sta SCRATCH1 +00815E 2 BD 9C 61 lda HGRROWS_L,x +008161 2 85 19 sta SCRATCH0 +008163 2 A4 06 ldy PARAM0 +008165 2 B9 74 63 lda DIV7_2,y +008168 2 A8 tay +008169 2 +008169 2 C8 iny +00816A 2 A9 A0 lda #%10100000 +00816C 2 11 19 ora (SCRATCH0),y +00816E 2 91 19 sta (SCRATCH0),y +008170 2 C8 iny +008171 2 A9 90 lda #%10010000 +008173 2 11 19 ora (SCRATCH0),y +008175 2 91 19 sta (SCRATCH0),y +008177 2 C8 iny +008178 2 +008178 2 E8 inx +008179 2 BD DC 60 lda HGRROWS_H,x +00817C 2 85 1A sta SCRATCH1 +00817E 2 BD 9C 61 lda HGRROWS_L,x +008181 2 85 19 sta SCRATCH0 +008183 2 A4 06 ldy PARAM0 +008185 2 B9 74 63 lda DIV7_2,y +008188 2 A8 tay +008189 2 +008189 2 C8 iny +00818A 2 A9 A0 lda #%10100000 +00818C 2 11 19 ora (SCRATCH0),y +00818E 2 91 19 sta (SCRATCH0),y +008190 2 C8 iny +008191 2 A9 90 lda #%10010000 +008193 2 11 19 ora (SCRATCH0),y +008195 2 91 19 sta (SCRATCH0),y +008197 2 C8 iny +008198 2 +008198 2 E8 inx +008199 2 BD DC 60 lda HGRROWS_H,x +00819C 2 85 1A sta SCRATCH1 +00819E 2 BD 9C 61 lda HGRROWS_L,x +0081A1 2 85 19 sta SCRATCH0 +0081A3 2 A4 06 ldy PARAM0 +0081A5 2 B9 74 63 lda DIV7_2,y +0081A8 2 A8 tay +0081A9 2 +0081A9 2 C8 iny +0081AA 2 A9 A0 lda #%10100000 +0081AC 2 11 19 ora (SCRATCH0),y +0081AE 2 91 19 sta (SCRATCH0),y +0081B0 2 C8 iny +0081B1 2 A9 90 lda #%10010000 +0081B3 2 11 19 ora (SCRATCH0),y +0081B5 2 91 19 sta (SCRATCH0),y +0081B7 2 C8 iny +0081B8 2 +0081B8 2 E8 inx +0081B9 2 BD DC 60 lda HGRROWS_H,x +0081BC 2 85 1A sta SCRATCH1 +0081BE 2 BD 9C 61 lda HGRROWS_L,x +0081C1 2 85 19 sta SCRATCH0 +0081C3 2 A4 06 ldy PARAM0 +0081C5 2 B9 74 63 lda DIV7_2,y +0081C8 2 A8 tay +0081C9 2 +0081C9 2 C8 iny +0081CA 2 A9 A0 lda #%10100000 +0081CC 2 11 19 ora (SCRATCH0),y +0081CE 2 91 19 sta (SCRATCH0),y +0081D0 2 C8 iny +0081D1 2 A9 95 lda #%10010101 +0081D3 2 11 19 ora (SCRATCH0),y +0081D5 2 91 19 sta (SCRATCH0),y +0081D7 2 C8 iny +0081D8 2 +0081D8 2 7A FA 68 RESTORE_AXY +0081DB 2 60 rts +0081DC 2 +0081DC 2 +0081DC 2 +0081DC 2 +0081DC 1 .include "protogen.s" +0081DC 2 protogen: +0081DC 2 +0081DC 2 A6 07 ldx PARAM1 ; 3 +0081DE 2 BD DC 60 lda HGRROWS_H,x ; 4 +0081E1 2 85 1A sta SCRATCH1 ; 3 +0081E3 2 BD 9C 61 lda HGRROWS_L,x ; 4 +0081E6 2 85 19 sta SCRATCH0 ; 3 +0081E8 2 A4 06 ldy PARAM0 ; 3 +0081EA 2 +0081EA 2 A9 55 lda #%01010101 ; 2 +0081EC 2 91 19 sta (SCRATCH0),y ; 6 +0081EE 2 C8 iny ; 2 +0081EF 2 A9 00 lda #%00000000 ; 2 +0081F1 2 91 19 sta (SCRATCH0),y ; 6 +0081F3 2 C8 iny ; 2 +0081F4 2 A9 00 lda #%00000000 ; 2 +0081F6 2 91 19 sta (SCRATCH0),y ; 6 +0081F8 2 C8 iny ; 2 +0081F9 2 A9 00 lda #%00000000 ; 2 +0081FB 2 91 19 sta (SCRATCH0),y ; 6 58 cycles/row +0081FD 2 +0081FD 2 +0081FD 2 E8 inx +0081FE 2 BD DC 60 lda HGRROWS_H,x +008201 2 85 1A sta SCRATCH1 +008203 2 BD 9C 61 lda HGRROWS_L,x +008206 2 85 19 sta SCRATCH0 +008208 2 A4 06 ldy PARAM0 +00820A 2 +00820A 2 A9 41 lda #%01000001 +00820C 2 91 19 sta (SCRATCH0),y +00820E 2 C8 iny +00820F 2 A9 00 lda #%00000000 +008211 2 91 19 sta (SCRATCH0),y +008213 2 C8 iny +008214 2 A9 00 lda #%00000000 +008216 2 91 19 sta (SCRATCH0),y +008218 2 C8 iny +008219 2 A9 00 lda #%00000000 +00821B 2 91 19 sta (SCRATCH0),y +00821D 2 +00821D 2 +00821D 2 60 rts +00821E 2 +00821E 1 +00821E 1 ; Suppress some linker warnings - Must be the last thing in the file +00821E 1 .SEGMENT "ZPSAVE" +00821E 1 .SEGMENT "EXEHDR" +00821E 1 .SEGMENT "STARTUP" +00821E 1 .SEGMENT "INIT" +00821E 1 .SEGMENT "LOWCODE" +00821E 1 diff --git a/macros.s b/macros.s new file mode 100644 index 0000000..a3f5d3f --- /dev/null +++ b/macros.s @@ -0,0 +1,165 @@ +; +; macros.s +; Generally useful macros for 6502 code +; +; Created by Quinn Dunki on 8/15/14. +; Copyright (c) 2014 One Girl, One Laptop Productions. All rights reserved. +; + + +; Macros + +.macro SETSWITCH name ; Sets the named softswitch (assumes write method) + sta name +.endmacro + + +.macro SAVE_AXY ; Saves all registers + pha + phx + phy +.endmacro + + +.macro RESTORE_AXY ; Restores all registers + ply + plx + pla +.endmacro + + +.macro SAVE_AY ; Saves accumulator and Y index + pha + phy +.endmacro + + +.macro RESTORE_AY ; Restores accumulator and Y index + ply + pla +.endmacro + + +.macro SAVE_AX ; Saves accumulator and X index + pha + phx +.endmacro + + +.macro RESTORE_AX ; Restores accumulator and X index + plx + pla +.endmacro + + +.macro SAVE_XY ; Saves X and Y index + phx + phy +.endmacro + + +.macro RESTORE_XY ; Restores X and Y index + ply + plx +.endmacro + + +.macro SAVE_ZPP ; Saves Zero Page locations we use for parameters + lda PARAM0 + pha + lda PARAM1 + pha + lda PARAM2 + pha + lda PARAM3 + pha +.endmacro + + +.macro RESTORE_ZPP ; Restores Zero Page locations we use for parameters + pla + sta PARAM3 + pla + sta PARAM2 + pla + sta PARAM1 + pla + sta PARAM0 +.endmacro + + +.macro SAVE_ZPS ; Saves Zero Page locations we use for scratch + lda SCRATCH0 + pha + lda SCRATCH1 + pha +.endmacro + + +.macro RESTORE_ZPS ; Restores Zero Page locations we use for scratch + pla + sta SCRATCH1 + pla + sta SCRATCH0 +.endmacro + + +.macro PARAM16 addr + lda #addr + sta PARAM1 +.endmacro + + +.macro CALL16 func,addr + PARAM16 addr + jsr func +.endmacro + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Rendering macros +; + + +.macro LDY_AVIEW + asl ; Find our new view record + asl + asl + asl ; Records are 16 bytes wide + tay +.endmacro + + +.macro LDY_ACTIVEVIEW + lda WG_ACTIVEVIEW ; Find our new view record + LDY_AVIEW +.endmacro + + +.macro LDX_ACTIVEVIEW + lda WG_ACTIVEVIEW ; Find our new view record + asl + asl + asl + asl ; Records are 16 bytes wide + tax +.endmacro + + +.macro LDY_FOCUSVIEW + lda WG_FOCUSVIEW ; Find our new view record + LDY_AVIEW +.endmacro + + +.macro VBL_SYNC ; Synchronize with vertical blanking + lda #$80 +;macroWaitVBLToFinish: +; bit RDVBLBAR +; bmi macroWaitVBLToFinish +@macroWaitVBLToStart: +; bit RDVBLBAR +; bpl @macroWaitVBLToStart +.endmacro diff --git a/spritedemo.dsk b/spritedemo.dsk new file mode 100644 index 0000000..d317f1e Binary files /dev/null and b/spritedemo.dsk differ diff --git a/spritedemo.s b/spritedemo.s new file mode 100644 index 0000000..3d2a27b --- /dev/null +++ b/spritedemo.s @@ -0,0 +1,280 @@ +; +; spritedemo +; +; Created by Quinn Dunki on 7/19/16 +; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +; + + +.org $6000 + +.include "macros.s" + +; Softswitches +TEXT = $c050 +HIRES1 = $c057 +HIRES2 = $c058 + + +; ROM entry points +COUT = $fded +ROMWAIT = $fca8 + +; Zero page locations we use (unused by Monitor, Applesoft, or ProDOS) +PARAM0 = $06 +PARAM1 = $07 +PARAM2 = $08 +PARAM3 = $09 +SCRATCH0 = $19 +SCRATCH1 = $1a + +; Macros +.macro BLITBYTE xPos,yPos,addr + lda #xPos + sta PARAM0 + lda #yPos + sta PARAM1 + lda #addr + sta PARAM3 + jsr BlitSpriteOnByte +.endmacro + +.macro BLIT xPos,yPos,addr + lda #xPos + sta PARAM0 + lda #yPos + sta PARAM1 + lda #addr + sta PARAM3 + jsr BlitSprite +.endmacro + + +.macro WAIT + lda #$80 + jsr $fca8 +.endmacro + + + +main: + jsr EnableHires + + lda #$00 + jsr LinearFill + + ldx #0 +loop: + txa + asl + asl + sta PARAM0 + lda #0 + sta PARAM1 + lda #BOX_MAG_SHIFT0 + sta PARAM3 + jsr BlitSprite + + lda #88 + sta PARAM1 + lda #BOX_GRN_SHIFT0 + sta PARAM3 + jsr BlitSprite + + lda #96 + sta PARAM1 + lda #BOX_BLU_SHIFT0 + sta PARAM3 + jsr BlitSprite + + lda #184 + sta PARAM1 + lda #BOX_ORG_SHIFT0 + sta PARAM3 + jsr BlitSprite + + inx + cpx #35 + bne loop + + rts + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; BlitSprite +; Trashes everything, including parameters +; PARAM0: X Pos +; PARAM1: Y Pos +; PARAM2: Sprite Ptr LSB +; PARAM3: Sprite Ptr MSB +; +BlitSprite: + SAVE_AXY + + clc ; Compute sprite data base 2 + ldx PARAM0 ; 3 + lda HGRROWBYTES_BITSHIFT,x ; 4 + adc PARAM2 ; 3 + sta PARAM2 ; 3 + lda #0 ; 2 + adc PARAM3 ; 3 + sta PARAM3 ; 3 + + lda #7 ; 2 + sta SCRATCH0 ; Tracks row index 3 + + asl ; Multiply by byte width 2 + asl ; 2 + sta SCRATCH1 ; Tracks total bytes 3 + ldy #0 ; 2 + ; 37 cycles overhead + +blitSprite_Yloop: + clc ; Calculate Y line on screen 2 + lda SCRATCH0 ; 3 + adc PARAM1 ; 3 + tax ; 2 + + lda HGRROWS_H,x ; Compute hires row 4 + sta blitSprite_smc+2 ; Self-modifying code 4 + sta blitSprite_smc+5 ; 4 + lda HGRROWS_L,x ; 4 + sta blitSprite_smc+1 ; 4 + sta blitSprite_smc+4 ; 4 + + ldx PARAM0 ; Compute hires horizontal byte 3 + lda HGRROWBYTES,x ; 4 + tax ; 2 + +blitSprite_Xloop: + lda (PARAM2),y ; 5 + +blitSprite_smc: + ora $2000,x + sta $2000,x ; 5 + inx ; 2 + iny ; 2 + tya ; End of row? 2 + and #$03 ; If last two bits are zero, we've wrapped a row 2 + bne blitSprite_Xloop ; 2 + + dec SCRATCH0 ; 5 + bpl blitSprite_Yloop ; 3 + ; 71 cycles per row + RESTORE_AXY + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; BlitSpriteOnByte +; Trashes everything +; PARAM0: X Byte +; PARAM1: Y Pos +; PARAM2: Sprite Ptr MSB +; PARAM3: Sprite Ptr LSB +; +BlitSpriteOnByte: + ldy #7 + +blitSpriteOnByte_loop: + clc + tya + adc PARAM1 ; Calculate Y line + tax + + lda HGRROWS_H,x ; Compute hires row + sta blitSpriteOnByte_smc+2 + lda HGRROWS_L,x + sta blitSpriteOnByte_smc+1 + + ldx PARAM0 ; Compute hires column + lda (PARAM2),y + +blitSpriteOnByte_smc: + sta $2000,x + dey + bpl blitSpriteOnByte_loop + rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; 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 + rts + + +.include "hgrtableX.s" +.include "hgrtableY.s" +.include "spritegen0.s" +.include "spritegen1.s" +.include "spritegen2.s" +.include "spritegen3.s" + +; Suppress some linker warnings - Must be the last thing in the file +.SEGMENT "ZPSAVE" +.SEGMENT "EXEHDR" +.SEGMENT "STARTUP" +.SEGMENT "INIT" +.SEGMENT "LOWCODE" diff --git a/spritegen0.s b/spritegen0.s new file mode 100644 index 0000000..1b7c349 --- /dev/null +++ b/spritegen0.s @@ -0,0 +1,249 @@ + +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. + +BOX_MAG_SHIFT0: ;4 bytes per row +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 + + +BOX_MAG_SHIFT1: ;4 bytes per row +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 + + +BOX_MAG_SHIFT2: ;4 bytes per row +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 + + +BOX_MAG_SHIFT3: ;4 bytes per row +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 + + +BOX_MAG_SHIFT4: ;4 bytes per row +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 + + +BOX_MAG_SHIFT5: ;4 bytes per row +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 + + +BOX_MAG_SHIFT6: ;4 bytes per row +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 + + diff --git a/spritegen1.s b/spritegen1.s new file mode 100644 index 0000000..989263a --- /dev/null +++ b/spritegen1.s @@ -0,0 +1,249 @@ + +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. + +BOX_GRN_SHIFT0: ;4 bytes per row +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00000010 +.byte %00000001 +.byte %00000000 +.byte %00000000 +.byte %00101010 +.byte %00000001 +.byte %00000000 +.byte %00000000 + + +BOX_GRN_SHIFT1: ;4 bytes per row +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00001000 +.byte %00000100 +.byte %00000000 +.byte %00000000 +.byte %00101000 +.byte %00000101 +.byte %00000000 +.byte %00000000 + + +BOX_GRN_SHIFT2: ;4 bytes per row +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010000 +.byte %00000000 +.byte %00000000 +.byte %00100000 +.byte %00010101 +.byte %00000000 +.byte %00000000 + + +BOX_GRN_SHIFT3: ;4 bytes per row +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01000001 +.byte %00000000 +.byte %00000000 +.byte %00000000 +.byte %01010101 +.byte %00000000 +.byte %00000000 + + +BOX_GRN_SHIFT4: ;4 bytes per row +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %00000100 +.byte %00000010 +.byte %00000000 +.byte %00000000 +.byte %01010100 +.byte %00000010 +.byte %00000000 + + +BOX_GRN_SHIFT5: ;4 bytes per row +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %00010000 +.byte %00001000 +.byte %00000000 +.byte %00000000 +.byte %01010000 +.byte %00001010 +.byte %00000000 + + +BOX_GRN_SHIFT6: ;4 bytes per row +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00100000 +.byte %00000000 +.byte %00000000 +.byte %01000000 +.byte %00101010 +.byte %00000000 + + diff --git a/spritegen2.s b/spritegen2.s new file mode 100644 index 0000000..ea202d1 --- /dev/null +++ b/spritegen2.s @@ -0,0 +1,249 @@ + +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. + +BOX_ORG_SHIFT0: ;4 bytes per row +.byte %10101010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10101010 +.byte %10000001 +.byte %10000000 +.byte %10000000 + + +BOX_ORG_SHIFT1: ;4 bytes per row +.byte %10101000 +.byte %10000101 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10101000 +.byte %10000101 +.byte %10000000 +.byte %10000000 + + +BOX_ORG_SHIFT2: ;4 bytes per row +.byte %10100000 +.byte %10010101 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010101 +.byte %10000000 +.byte %10000000 + + +BOX_ORG_SHIFT3: ;4 bytes per row +.byte %10000000 +.byte %11010101 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11010101 +.byte %10000000 +.byte %10000000 + + +BOX_ORG_SHIFT4: ;4 bytes per row +.byte %10000000 +.byte %11010100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %11010100 +.byte %10000010 +.byte %10000000 + + +BOX_ORG_SHIFT5: ;4 bytes per row +.byte %10000000 +.byte %11010000 +.byte %10001010 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %11010000 +.byte %10001010 +.byte %10000000 + + +BOX_ORG_SHIFT6: ;4 bytes per row +.byte %10000000 +.byte %11000000 +.byte %10101010 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10101010 +.byte %10000000 + + diff --git a/spritegen3.s b/spritegen3.s new file mode 100644 index 0000000..2955a7c --- /dev/null +++ b/spritegen3.s @@ -0,0 +1,249 @@ + +; This file was generated by SpriteGenerator.py, a sprite generation tool by Quinn Dunki. +; If you feel the need to modify this file, you are probably doing it wrong. + +BOX_BLU_SHIFT0: ;4 bytes per row +.byte %11010101 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11000001 +.byte %10000000 +.byte %10000000 +.byte %10000000 +.byte %11010101 +.byte %10000000 +.byte %10000000 +.byte %10000000 + + +BOX_BLU_SHIFT1: ;4 bytes per row +.byte %11010100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %10000100 +.byte %10000010 +.byte %10000000 +.byte %10000000 +.byte %11010100 +.byte %10000010 +.byte %10000000 +.byte %10000000 + + +BOX_BLU_SHIFT2: ;4 bytes per row +.byte %11010000 +.byte %10001010 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %10010000 +.byte %10001000 +.byte %10000000 +.byte %10000000 +.byte %11010000 +.byte %10001010 +.byte %10000000 +.byte %10000000 + + +BOX_BLU_SHIFT3: ;4 bytes per row +.byte %11000000 +.byte %10101010 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10100000 +.byte %10000000 +.byte %10000000 +.byte %11000000 +.byte %10101010 +.byte %10000000 +.byte %10000000 + + +BOX_BLU_SHIFT4: ;4 bytes per row +.byte %10000000 +.byte %10101010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10000010 +.byte %10000001 +.byte %10000000 +.byte %10000000 +.byte %10101010 +.byte %10000001 +.byte %10000000 + + +BOX_BLU_SHIFT5: ;4 bytes per row +.byte %10000000 +.byte %10101000 +.byte %10000101 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10001000 +.byte %10000100 +.byte %10000000 +.byte %10000000 +.byte %10101000 +.byte %10000101 +.byte %10000000 + + +BOX_BLU_SHIFT6: ;4 bytes per row +.byte %10000000 +.byte %10100000 +.byte %10010101 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010000 +.byte %10000000 +.byte %10000000 +.byte %10100000 +.byte %10010101 +.byte %10000000 + +