Initial commit

This commit is contained in:
Quinn Dunki 2016-07-20 19:30:24 -05:00
commit bbc4488494
10 changed files with 1056 additions and 0 deletions

BIN
AppleCommander.jar Normal file

Binary file not shown.

View File

@ -0,0 +1,196 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXFileReference section */
707005BE1D3EC75F00623A10 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
707005BF1D3EC7FD00623A10 /* hgrtest.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = hgrtest.s; sourceTree = "<group>"; };
707005C01D3FD65900623A10 /* hgrtable.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = hgrtable.s; sourceTree = "<group>"; };
7090ABA91D4012A600F02EAA /* spritedata.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = spritedata.s; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
707005B31D3EC71C00623A10 = {
isa = PBXGroup;
children = (
707005BE1D3EC75F00623A10 /* Makefile */,
707005BF1D3EC7FD00623A10 /* hgrtest.s */,
7090ABA91D4012A600F02EAA /* spritedata.s */,
707005C01D3FD65900623A10 /* hgrtable.s */,
);
sourceTree = "<group>";
};
/* 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 */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:HGR.xcodeproj">
</FileRef>
</Workspace>

32
Makefile Normal file
View File

@ -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

BIN
V2Make.scpt Normal file

Binary file not shown.

443
hgrtable.s Normal file
View File

@ -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

BIN
hgrtest.dsk Normal file

Binary file not shown.

232
hgrtest.s Normal file
View File

@ -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 PARAM2
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"

146
spritedata.s Normal file
View File

@ -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