commit bbc4488494d1b60f4201f8a52c50d89442ec8adc Author: Quinn Dunki Date: Wed Jul 20 19:30:24 2016 -0500 Initial commit 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/HGR.xcodeproj/project.pbxproj b/HGR.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f305882 --- /dev/null +++ b/HGR.xcodeproj/project.pbxproj @@ -0,0 +1,196 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXFileReference section */ + 707005BE1D3EC75F00623A10 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 707005BF1D3EC7FD00623A10 /* hgrtest.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtest.s; sourceTree = ""; }; + 707005C01D3FD65900623A10 /* hgrtable.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = hgrtable.s; sourceTree = ""; }; + 7090ABA91D4012A600F02EAA /* spritedata.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = spritedata.s; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXGroup section */ + 707005B31D3EC71C00623A10 = { + isa = PBXGroup; + children = ( + 707005BE1D3EC75F00623A10 /* Makefile */, + 707005BF1D3EC7FD00623A10 /* hgrtest.s */, + 7090ABA91D4012A600F02EAA /* spritedata.s */, + 707005C01D3FD65900623A10 /* hgrtable.s */, + ); + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXLegacyTarget section */ + 707005B81D3EC71C00623A10 /* HGR */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "$(ACTION)"; + buildConfigurationList = 707005BB1D3EC71C00623A10 /* Build configuration list for PBXLegacyTarget "HGR" */; + buildPhases = ( + ); + buildToolPath = /usr/bin/make; + dependencies = ( + ); + name = HGR; + passBuildSettingsInEnvironment = 1; + productName = HGR; + }; +/* End PBXLegacyTarget section */ + +/* Begin PBXProject section */ + 707005B41D3EC71C00623A10 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0730; + ORGANIZATIONNAME = "Quinn Dunki"; + TargetAttributes = { + 707005B81D3EC71C00623A10 = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 707005B71D3EC71C00623A10 /* Build configuration list for PBXProject "HGR" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 707005B31D3EC71C00623A10; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 707005B81D3EC71C00623A10 /* HGR */, + ); + }; +/* End PBXProject section */ + +/* Begin XCBuildConfiguration section */ + 707005B91D3EC71C00623A10 /* 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; + }; + 707005BA1D3EC71C00623A10 /* 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; + }; + 707005BC1D3EC71C00623A10 /* 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; + }; + 707005BD1D3EC71C00623A10 /* 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 */ + 707005B71D3EC71C00623A10 /* Build configuration list for PBXProject "HGR" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 707005B91D3EC71C00623A10 /* Debug */, + 707005BA1D3EC71C00623A10 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 707005BB1D3EC71C00623A10 /* Build configuration list for PBXLegacyTarget "HGR" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 707005BC1D3EC71C00623A10 /* Debug */, + 707005BD1D3EC71C00623A10 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 707005B41D3EC71C00623A10 /* Project object */; +} diff --git a/HGR.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/HGR.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..30b70aa --- /dev/null +++ b/HGR.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/HGR.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate b/HGR.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..2884c6e Binary files /dev/null and b/HGR.xcodeproj/project.xcworkspace/xcuserdata/qd.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c5d81e6 --- /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=hgrtest + +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/V2Make.scpt b/V2Make.scpt new file mode 100644 index 0000000..c669d89 Binary files /dev/null and b/V2Make.scpt differ diff --git a/hgrtable.s b/hgrtable.s new file mode 100644 index 0000000..b887925 --- /dev/null +++ b/hgrtable.s @@ -0,0 +1,443 @@ +; +; hgrtable.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.dsk b/hgrtest.dsk new file mode 100644 index 0000000..3d0877d Binary files /dev/null and b/hgrtest.dsk differ diff --git a/hgrtest.s b/hgrtest.s new file mode 100644 index 0000000..cc9e65c --- /dev/null +++ b/hgrtest.s @@ -0,0 +1,232 @@ +; +; hgrtest.s +; +; Created by Quinn Dunki on 7/19/16 +; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +; + + +.org $6000 + + +; Softswitches +TEXT = $c050 +HIRES1 = $c057 +HIRES2 = $c058 + + +; ROM entry points +COUT = $fded + + +; 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 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 + +loop: + lda #$00 + jsr LinearFill + + +.if 0 + BLIT 20,80,SPRITE0 + + BLIT 20,90,SPRITE1 + BLIT 21,90,SPRITE2 + + BLIT 20,100,SPRITE3 + BLIT 21,100,SPRITE4 + + BLIT 20,110,SPRITE5 + BLIT 21,110,SPRITE6 + + BLIT 21,120,SPRITE7 + BLIT 22,120,SPRITE8 + + BLIT 21,130,SPRITE9 + BLIT 22,130,SPRITE10 + + BLIT 21,140,SPRITE11 + BLIT 22,140,SPRITE12 + + BLIT 22,150,SPRITE0 +.endif +;rts + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + BLIT 20,80,SPRITE0 + WAIT + BLIT 20,80,BLACK + + BLIT 20,80,SPRITE1 + BLIT 21,80,SPRITE2 + WAIT + BLIT 20,80,BLACK + BLIT 21,80,BLACK + + BLIT 20,80,SPRITE3 + BLIT 21,80,SPRITE4 + WAIT + BLIT 20,80,BLACK + BLIT 21,80,BLACK + + BLIT 20,80,SPRITE5 + BLIT 21,80,SPRITE6 + WAIT + BLIT 20,80,BLACK + BLIT 21,80,BLACK + + BLIT 21,80,SPRITE7 + BLIT 22,80,SPRITE8 + WAIT + BLIT 21,80,BLACK + BLIT 22,80,BLACK + + BLIT 21,80,SPRITE9 + BLIT 22,80,SPRITE10 + WAIT + BLIT 21,80,BLACK + BLIT 22,80,BLACK + + BLIT 21,80,SPRITE11 + BLIT 22,80,SPRITE12 + WAIT + BLIT 21,80,BLACK + BLIT 22,80,BLACK + + BLIT 22,80,SPRITE0 + WAIT + BLIT 22,80,BLACK + + jmp loop + rts + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; BlitSprite +; Trashes everything +; PARAM0: X Pos +; PARAM1: Y Pos +; PARAM2: Sprite Ptr MSB +; PARAM3: Sprite Ptr LSB +; +BlitSprite: + ldy #7 + +blitSprite_loop: + clc + tya + adc PARAM1 ; Calculate Y line + tax + + lda HGRROWS_H,x ; Compute hires row + sta blitSprite_smc+2 + lda HGRROWS_L,x + sta blitSprite_smc+1 + + ldx PARAM0 ; Compute hires column + lda (PARAM2),y + +blitSprite_smc: + sta $2000,x + dey + bpl blitSprite_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 "hgrtable.s" +.include "spritedata.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/spritedata.s b/spritedata.s new file mode 100644 index 0000000..1ef0910 --- /dev/null +++ b/spritedata.s @@ -0,0 +1,146 @@ +; +; spritedata.s +; +; Created by Quinn Dunki on 7/19/16 +; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved. +; + +SPRITE0: + .byte %01010101 ; Byte aligned + .byte %01000001 ; (reversed) + .byte %01000001 + .byte %01000001 + .byte %01000001 + .byte %01000001 + .byte %01000001 + .byte %01010101 + +SPRITE1: + .byte %01010100 ; One pixel shift + .byte %00000100 ; (reversed) + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %01010100 + +SPRITE2: + .byte %00000010 ; One pixel shift + .byte %00000010 ; (2nd byte, reversed) + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00000010 + +SPRITE3: + .byte %01010000 ; Two pixel shift + .byte %00010000 ; (reversed) + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %01010000 + +SPRITE4: + .byte %00001010 ; Two pixel shift + .byte %00001000 ; (2nd byte, reversed) + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00001010 + +SPRITE5: + .byte %01000000 ; Three pixel shift + .byte %01000000 ; (reversed) + .byte %01000000 + .byte %01000000 + .byte %01000000 + .byte %01000000 + .byte %01000000 + .byte %01000000 + +SPRITE6: + .byte %00101010 ; Three pixel shift + .byte %00100000 ; (2nd byte, reversed) + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00101010 + +SPRITE7: + .byte %00101010 ; Four pixel shift + .byte %00000010 ; (reversed) + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00000010 + .byte %00101010 + +SPRITE8: + .byte %00000001 ; Four pixel shift + .byte %00000001 ; (2nd byte, reversed) + .byte %00000001 + .byte %00000001 + .byte %00000001 + .byte %00000001 + .byte %00000001 + .byte %00000001 + +SPRITE9: + .byte %00101000 ; Five pixel shift + .byte %00001000 ; (reversed) + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00001000 + .byte %00101000 + +SPRITE10: + .byte %00000101 ; Five pixel shift + .byte %00000100 ; (2nd byte, reversed) + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %00000100 + .byte %00000101 + +SPRITE11: + .byte %00100000 ; Six pixel shift + .byte %00100000 ; (2nd byte, reversed) + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00100000 + .byte %00100000 + +SPRITE12: + .byte %00010101 ; Six pixel shift + .byte %00010000 ; (reversed) + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %00010000 + .byte %00010101 + +BLACK: + .byte %00000000 + .byte %00000000 + .byte %00000000 + .byte %00000000 + .byte %00000000 + .byte %00000000 + .byte %00000000 + .byte %00000000