diff --git a/.gitignore b/.gitignore index b2299f3..36a3b8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +bin/ +build/ *.prg *.out symbols.txt diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6ee11e7 --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +https://www.gnu.org/licenses/gpl-3.0.txt diff --git a/Makefile b/Makefile index af9ff0c..1bb13d7 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,20 @@ -64: - dasm main.asm -DSYSTEM=64 -DDEBUG=0 -osnake.prg +.POSIX: -debug: - dasm main.asm -DSYSTEM=64 -DDEBUG=1 -ssymbols.txt -osnake.prg +ASM=$(wildcard src/*.asm) +RES=$(wildcard res/*) + +.PHONY: debug env clean + +bin/snake.prg: $(ASM) $(RES) | env + dasm src/main.asm -Isrc/ -DSYSTEM=64 -DDEBUG=0 -obin/snake.prg + +clean: + rm -rf {build,bin} + +env: + mkdir -p {build,bin} + +debug: $(ASM) $(RES) | env + g++ -o bin/explodefont util/explodefont.cpp + dasm src/main.asm -Isrc/ -DSYSTEM=64 -DDEBUG=1 -sbuild/symbols.txt -obin/snake.prg -16: - dasm main.asm -DSYSTEM=16 -osnake.prg diff --git a/README.md b/README.md new file mode 100644 index 0000000..8f0572c --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# snake6502 + +*snake6502* is a snake-like game clone for Commodore home computers, written for fun because «I always wanted to code something for a computer of my retrocomputers collection – actually, this is the main reason I collect them: to write programs». + +## Compile +You need the [dasm](https://dasm-assembler.github.io/) macro assembler, then: +``` +$ make +``` +You can also make it output useful extra info with: +``` +$ make debug +``` + + +## Memory map +Address | PRG | Description +----------------------|-------|------------ +```$0000 - $0001``` | no | hardware +```$0002 - $00FF``` | no | zero page pointers +```$0100 - $07FF``` | no | *free ram* +```$0800 - $0FFF``` | yes | data segment + BASIC autostart +```$1000 - $1FFF``` | yes | SID tune +```$2000 - $27FF``` | yes | custom char +```$2800 - $xxxx``` | yes | program logic (only needed part used) +```$xxxx - $CDFF``` | no | *free ram* +```$CE00 - $CEFF``` | no | list X +```$CF00 - $CFFF``` | no | list Y +```$D000 - $DFFF``` | no | I/O +```$E000 - $FFFF``` | no | Kernal + diff --git a/amour.sid b/res/amour.sid similarity index 100% rename from amour.sid rename to res/amour.sid diff --git a/basic.asm b/src/basic.asm similarity index 100% rename from basic.asm rename to src/basic.asm diff --git a/const.asm b/src/const.asm similarity index 96% rename from const.asm rename to src/const.asm index ca37736..b9d26ad 100644 --- a/const.asm +++ b/src/const.asm @@ -7,7 +7,7 @@ ST_INTRO1 = 1 ST_PLAY = 2 ST_OUTRO = 3 ST_END = 4 -ST_PAUSE = 255 +ST_PAUSE = 255 ; Screen features SCREEN_W = 40 @@ -17,7 +17,7 @@ SNAKE_TILE = 81 SNAKE_COLOR = 13 ; Food features FOOD_TILE = 90 -FOOD_COLOR = 11 +FOOD_COLOR = 11 ; Strings ; ---------------------------------------------------------------------- diff --git a/data.asm b/src/data.asm similarity index 100% rename from data.asm rename to src/data.asm diff --git a/game.asm b/src/game.asm similarity index 100% rename from game.asm rename to src/game.asm diff --git a/gameover.asm b/src/gameover.asm similarity index 100% rename from gameover.asm rename to src/gameover.asm diff --git a/gamereset.asm b/src/gamereset.asm similarity index 100% rename from gamereset.asm rename to src/gamereset.asm diff --git a/intro1.asm b/src/intro1.asm similarity index 100% rename from intro1.asm rename to src/intro1.asm diff --git a/introreset.asm b/src/introreset.asm similarity index 100% rename from introreset.asm rename to src/introreset.asm diff --git a/main.asm b/src/main.asm similarity index 66% rename from main.asm rename to src/main.asm index 8cc54e5..b66b88d 100644 --- a/main.asm +++ b/src/main.asm @@ -9,34 +9,35 @@ ; Commodore16 specific code #endif - ; Uninitialized zeropage segment +; Uninitialized zeropage segment +; ---------------------------------------------------------------------- SEG.U zeropageSegment org $02 INCLUDE "zeropage.asm" - ; Initialized segments - SEG basicSegment - org $801 - INCLUDE "basic.asm" +#if DEBUG = 1 + ; Locations $90-$FF in zeropage are used by kernal + ECHO "End of zeropage variables. Space left: ",($90 - .) +#endif +; Initialized segments +; ---------------------------------------------------------------------- SEG dataSegment - org $900 + org $801 + INCLUDE "basic.asm" ; BASIC must stay at this address INCLUDE "data.asm" INCLUDE "const.asm" +#if DEBUG = 1 + ECHO "End of Data + Basic Segment. Space left: ",($1000 - .) +#endif -; List -; ---------------------------------------------------------------------- -. = $e00 -listX: -. = $f00 -listY: ; SID tune (previously properly cleaned, see HVSC) ; ---------------------------------------------------------------------- SEG sidSegment org $1000 sidtune: - INCBIN "amour.sid" + INCBIN "../res/amour.sid" #if DEBUG = 1 ECHO "End of SIDtune. Space left: ",($2000 - .) #endif @@ -47,7 +48,7 @@ sidtune: org $2000 ; This binary data that defines the font is exactly 2kB long ($800) tggsFont: - INCBIN "tggs.font" + INCLUDE "tggs.asm" ; Include program ; ---------------------------------------------------------------------- @@ -66,9 +67,21 @@ tggsFont: INCLUDE "subroutines.asm" #if DEBUG = 1 - ECHO "Program ends at: ",. + ECHO "End of program at: ",.,"Space left:",($ce00 - .) #endif +#if DEBUG = 1 + ; +2 because of PRG header + ECHO "PRG size:",([. - $801 + 2]d),"dec" +#endif + +; Uninitialized list segment +; ---------------------------------------------------------------------- + SEG.U listSegment + org $ce00 +listX DS 256 +listY DS 256 + ; ; coded during december 2017 ; by giomba -- giomba at glgprograms.it diff --git a/multicolor.asm b/src/multicolor.asm similarity index 60% rename from multicolor.asm rename to src/multicolor.asm index 36f2a7f..b485dfb 100644 --- a/multicolor.asm +++ b/src/multicolor.asm @@ -25,27 +25,12 @@ multicolorInit: cpx #$0 bne .tggsCopy - ; Alter character definitions in RAM (using previous defined table) - ; TODO: merge these edits with actual font binary - ldx #$8 -.editLoop: - dex - lda .multicolorSnakeTile,x - sta tggsFont + SNAKE_TILE * 8,x - lda .multicolorFoodTile,x - sta tggsFont + FOOD_TILE * 8,x -; lda .multicolorOtherTile,x -; sta tggsFont + SOME_TILE * 8,x -; ... - cpx #$0 - bne .editLoop - ; Tell VIC-II to use: ; - screen text memory at $400 = $400 * 1 ; - characters ROM at $2000 = $400 * 8 lda #$18 sta $d018 - + rts ; Activate multicolor mode @@ -74,20 +59,3 @@ multicolorOff: and #$ef sta $d016 rts - -; Costants -; ---------------------------------------------------------------------- -.multicolorCommodoreTile: - BYTE #$00,#$30,#$cc,#$ca,#$c0,#$c5,#$cc,#$30 -.multicolorSnakeTile: - BYTE #$00,#$28,#$ab,#$ab,#$ab,#$ab,#$28,#$00 -.multicolorFoodTile: - BYTE #%00010101 - BYTE #%10010101 - BYTE #%10010101 - BYTE #%10010101 - BYTE #%10101000 - BYTE #%00100000 - BYTE #%00100000 - BYTE #%10000000 - diff --git a/outro.asm b/src/outro.asm similarity index 100% rename from outro.asm rename to src/outro.asm diff --git a/program.asm b/src/program.asm similarity index 100% rename from program.asm rename to src/program.asm diff --git a/subroutines.asm b/src/subroutines.asm similarity index 100% rename from subroutines.asm rename to src/subroutines.asm diff --git a/src/tggs.asm b/src/tggs.asm new file mode 100644 index 0000000..ba4b251 --- /dev/null +++ b/src/tggs.asm @@ -0,0 +1,2560 @@ +; character 0 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + +; character 1 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11111110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%00000000 + +; character 2 + BYTE #%11111000 + BYTE #%11001100 + BYTE #%11001100 + BYTE #%11111000 + BYTE #%11001100 + BYTE #%11000110 + BYTE #%11111100 + BYTE #%00000000 + +; character 3 + BYTE #%00111100 + BYTE #%01100110 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%01100110 + BYTE #%00111100 + BYTE #%00000000 + +; character 4 + BYTE #%11111000 + BYTE #%11001100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11001100 + BYTE #%11111000 + BYTE #%00000000 + +; character 5 + BYTE #%11111100 + BYTE #%11000110 + BYTE #%11000000 + BYTE #%11111000 + BYTE #%11000000 + BYTE #%11000110 + BYTE #%11111100 + BYTE #%00000000 + +; character 6 + BYTE #%11111100 + BYTE #%11000110 + BYTE #%11000000 + BYTE #%11111000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%00000000 + +; character 7 + BYTE #%00111100 + BYTE #%01100110 + BYTE #%11000000 + BYTE #%11011110 + BYTE #%11000110 + BYTE #%01100110 + BYTE #%00111100 + BYTE #%00000000 + +; character 8 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11111110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%00000000 + +; character 9 + BYTE #%01111110 + BYTE #%11011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%01111110 + BYTE #%00000000 + +; character 10 + BYTE #%01111110 + BYTE #%11001100 + BYTE #%00001100 + BYTE #%00001100 + BYTE #%00001100 + BYTE #%11011000 + BYTE #%01110000 + BYTE #%00000000 + +; character 11 + BYTE #%11000110 + BYTE #%11001100 + BYTE #%11011000 + BYTE #%11110000 + BYTE #%11011000 + BYTE #%11001100 + BYTE #%11000110 + BYTE #%00000000 + +; character 12 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000110 + BYTE #%11111100 + BYTE #%00000000 + +; character 13 + BYTE #%11000110 + BYTE #%11101110 + BYTE #%11111110 + BYTE #%11010110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%00000000 + +; character 14 + BYTE #%11011100 + BYTE #%11110110 + BYTE #%11100110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%00000000 + +; character 15 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01101100 + BYTE #%00111000 + BYTE #%00000000 + +; character 16 + BYTE #%11111100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11111100 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%00000000 + +; character 17 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11001010 + BYTE #%01101100 + BYTE #%00110110 + BYTE #%00000000 + +; character 18 + BYTE #%11111100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11111100 + BYTE #%11011000 + BYTE #%11001100 + BYTE #%11000110 + BYTE #%00000000 + +; character 19 + BYTE #%01111100 + BYTE #%11000110 + BYTE #%11000000 + BYTE #%01111100 + BYTE #%00001110 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%00000000 + +; character 20 + BYTE #%01111110 + BYTE #%11011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00000000 + +; character 21 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%00000000 + +; character 22 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01101100 + BYTE #%00111000 + BYTE #%00010000 + BYTE #%00000000 + +; character 23 + BYTE #%11000110 + BYTE #%11010110 + BYTE #%11010110 + BYTE #%11111110 + BYTE #%11101110 + BYTE #%11000110 + BYTE #%10000010 + BYTE #%00000000 + +; character 24 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01101100 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%00000000 + +; character 25 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01101100 + BYTE #%00111000 + BYTE #%00110000 + BYTE #%01100000 + BYTE #%00000000 + +; character 26 + BYTE #%01111110 + BYTE #%11000110 + BYTE #%00001100 + BYTE #%00011000 + BYTE #%00110000 + BYTE #%01100110 + BYTE #%11111100 + BYTE #%00000000 + +; character 27 + BYTE #%00111100 + BYTE #%01000010 + BYTE #%10011001 + BYTE #%10100001 + BYTE #%10100001 + BYTE #%10011001 + BYTE #%01000010 + BYTE #%00111100 + +; character 28 + BYTE #%00000101 + BYTE #%00101001 + BYTE #%00101011 + BYTE #%10101111 + BYTE #%01111111 + BYTE #%01011010 + BYTE #%01101010 + BYTE #%10111010 + +; character 29 + BYTE #%00000101 + BYTE #%01011010 + BYTE #%10101010 + BYTE #%10101111 + BYTE #%11101101 + BYTE #%11110101 + BYTE #%10110110 + BYTE #%10111010 + +; character 30 + BYTE #%00000000 + BYTE #%11010000 + BYTE #%01011000 + BYTE #%11101011 + BYTE #%11111110 + BYTE #%10101111 + BYTE #%10101011 + BYTE #%10111111 + +; character 31 + BYTE #%11111110 + BYTE #%01101111 + BYTE #%01101011 + BYTE #%01011010 + BYTE #%11101111 + BYTE #%00101010 + BYTE #%00011010 + BYTE #%00000101 + +; character 32 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + +; character 33 + BYTE #%11011111 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%10111010 + BYTE #%11111100 + BYTE #%11101000 + BYTE #%10100000 + BYTE #%10000000 + +; character 34 + BYTE #%00000000 + BYTE #%00000001 + BYTE #%00000101 + BYTE #%00010110 + BYTE #%00010110 + BYTE #%01101011 + BYTE #%01101011 + BYTE #%10011111 + +; character 35 + BYTE #%00000101 + BYTE #%01011001 + BYTE #%10101010 + BYTE #%10101011 + BYTE #%11100111 + BYTE #%11011110 + BYTE #%10111110 + BYTE #%10110110 + +; character 36 + BYTE #%01000000 + BYTE #%01100100 + BYTE #%01101000 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%11110110 + BYTE #%10111011 + BYTE #%11101011 + +; character 37 + BYTE #%01011001 + BYTE #%01101111 + BYTE #%01101101 + BYTE #%01110111 + BYTE #%00011010 + BYTE #%00011001 + BYTE #%00011011 + BYTE #%00001010 + +; character 38 + BYTE #%01011010 + BYTE #%01101011 + BYTE #%10101011 + BYTE #%10111101 + BYTE #%11110110 + BYTE #%10100110 + BYTE #%10111011 + BYTE #%11111110 + +; character 39 + BYTE #%11111011 + BYTE #%11011111 + BYTE #%01101011 + BYTE #%11111111 + BYTE #%10101110 + BYTE #%10111100 + BYTE #%10011100 + BYTE #%11100000 + +; character 40 + BYTE #%00011100 + BYTE #%00110000 + BYTE #%00100000 + BYTE #%01100000 + BYTE #%00100000 + BYTE #%00110000 + BYTE #%00011100 + BYTE #%00000000 + +; character 41 + BYTE #%00111000 + BYTE #%00001100 + BYTE #%00000100 + BYTE #%00000110 + BYTE #%00000100 + BYTE #%00001100 + BYTE #%00111000 + BYTE #%00000000 + +; character 42 + BYTE #%01000000 + BYTE #%01100100 + BYTE #%01101000 + BYTE #%10101000 + BYTE #%01101010 + BYTE #%10100110 + BYTE #%10111010 + BYTE #%11101011 + +; character 43 + BYTE #%01011001 + BYTE #%01011001 + BYTE #%01101101 + BYTE #%01111010 + BYTE #%00100110 + BYTE #%00011001 + BYTE #%00011011 + BYTE #%00001010 + +; character 44 + BYTE #%01011010 + BYTE #%01101011 + BYTE #%10101111 + BYTE #%10111110 + BYTE #%11101011 + BYTE #%10101010 + BYTE #%10111011 + BYTE #%11111111 + +; character 45 + BYTE #%11111011 + BYTE #%11101111 + BYTE #%10101011 + BYTE #%10111111 + BYTE #%10101100 + BYTE #%10111100 + BYTE #%11111100 + BYTE #%11110000 + +; character 46 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00000000 + +; character 47 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%01001000 + BYTE #%01000100 + BYTE #%00100010 + BYTE #%00111000 + BYTE #%00000000 + BYTE #%00000000 + +; character 48 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01101100 + BYTE #%00111000 + BYTE #%00000000 + +; character 49 + BYTE #%00011000 + BYTE #%01111000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00011000 + BYTE #%00111100 + BYTE #%00000000 + +; character 50 + BYTE #%01111100 + BYTE #%11000110 + BYTE #%00000110 + BYTE #%00011000 + BYTE #%00110000 + BYTE #%01100110 + BYTE #%11111110 + BYTE #%00000000 + +; character 51 + BYTE #%11111110 + BYTE #%00001100 + BYTE #%00011000 + BYTE #%00111100 + BYTE #%00000100 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%00000000 + +; character 52 + BYTE #%00011100 + BYTE #%00111000 + BYTE #%01100000 + BYTE #%11000000 + BYTE #%10001100 + BYTE #%11111110 + BYTE #%00001100 + BYTE #%00000000 + +; character 53 + BYTE #%11111110 + BYTE #%11000000 + BYTE #%11111100 + BYTE #%00000110 + BYTE #%00000110 + BYTE #%11001100 + BYTE #%01111000 + BYTE #%00000000 + +; character 54 + BYTE #%00111100 + BYTE #%01100110 + BYTE #%11000000 + BYTE #%11111100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%00000000 + +; character 55 + BYTE #%01111110 + BYTE #%11000110 + BYTE #%00000110 + BYTE #%01111100 + BYTE #%00011000 + BYTE #%00110000 + BYTE #%01100000 + BYTE #%00000000 + +; character 56 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01111100 + BYTE #%00000000 + +; character 57 + BYTE #%00111000 + BYTE #%01101100 + BYTE #%11000110 + BYTE #%11000110 + BYTE #%01111110 + BYTE #%00000110 + BYTE #%11001100 + BYTE #%01111000 + +; character 58 + BYTE #%01100111 + BYTE #%10101110 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101110 + BYTE #%10101101 + BYTE #%10111101 + +; character 59 + BYTE #%01010101 + BYTE #%01010110 + BYTE #%01011010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%10101010 + BYTE #%10101011 + +; character 60 + BYTE #%11101001 + BYTE #%11110101 + BYTE #%10110110 + BYTE #%10110110 + BYTE #%10110110 + BYTE #%10110110 + BYTE #%11110110 + BYTE #%11110110 + +; character 61 + BYTE #%11101010 + BYTE #%01010111 + BYTE #%01101011 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101011 + BYTE #%10101011 + +; character 62 + BYTE #%10101111 + BYTE #%10111101 + BYTE #%11110101 + BYTE #%11010110 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%11011010 + +; character 63 + BYTE #%11111010 + BYTE #%10111111 + BYTE #%10101101 + BYTE #%10101101 + BYTE #%10111101 + BYTE #%10101101 + BYTE #%10101101 + BYTE #%10111101 + +; character 64 + BYTE #%01101111 + BYTE #%11111101 + BYTE #%11010110 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%10110110 + +; character 65 + BYTE #%11011010 + BYTE #%10110110 + BYTE #%10101101 + BYTE #%10101111 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101111 + BYTE #%10101111 + +; character 66 + BYTE #%10111111 + BYTE #%11110111 + BYTE #%11010101 + BYTE #%01011010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01101010 + +; character 67 + BYTE #%01011101 + BYTE #%10101101 + BYTE #%10101101 + BYTE #%11111111 + BYTE #%01010101 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%11111111 + +; character 68 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%11111111 + BYTE #%01110101 + BYTE #%10110110 + BYTE #%10110110 + BYTE #%11111111 + +; character 69 + BYTE #%11010101 + BYTE #%11011010 + BYTE #%11011010 + BYTE #%11111111 + BYTE #%01010111 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%11111111 + +; character 70 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11010101 + BYTE #%11010101 + BYTE #%11010101 + BYTE #%11011111 + BYTE #%11010111 + BYTE #%11010101 + +; character 71 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01111101 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + +; character 72 + BYTE #%11111111 + BYTE #%11111110 + BYTE #%01010110 + BYTE #%01010110 + BYTE #%01010110 + BYTE #%11110110 + BYTE #%11010110 + BYTE #%01010110 + +; character 73 + BYTE #%11010101 + BYTE #%11010111 + BYTE #%11011111 + BYTE #%11010101 + BYTE #%11010101 + BYTE #%11010101 + BYTE #%11101010 + BYTE #%10101010 + +; character 74 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%01111101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%10101010 + +; character 75 + BYTE #%01010110 + BYTE #%11010110 + BYTE #%11110110 + BYTE #%01010110 + BYTE #%01010110 + BYTE #%01010110 + BYTE #%10101010 + BYTE #%10101010 + +; character 76 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01111111 + BYTE #%01111111 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01111010 + +; character 77 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + +; character 78 + BYTE #%01010101 + BYTE #%01010111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%10100111 + BYTE #%10100111 + BYTE #%10100111 + BYTE #%10100111 + +; character 79 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01111010 + BYTE #%01100101 + BYTE #%10111111 + BYTE #%11111111 + +; character 80 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%11111111 + BYTE #%11111111 + +; character 81 + BYTE #%00000000 + BYTE #%00101000 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%00101000 + BYTE #%00000000 + +; character 82 + BYTE #%01010100 + BYTE #%01101011 + BYTE #%10101011 + BYTE #%10101111 + BYTE #%10110000 + BYTE #%11000000 + BYTE #%00000000 + BYTE #%00000000 + +; character 83 + BYTE #%01010100 + BYTE #%01101011 + BYTE #%10101011 + BYTE #%11111011 + BYTE #%00001111 + BYTE #%00000011 + BYTE #%00000000 + BYTE #%00000000 + +; character 84 + BYTE #%00000000 + BYTE #%00001111 + BYTE #%10101111 + BYTE #%10110101 + BYTE #%00110101 + BYTE #%11010101 + BYTE #%11010101 + BYTE #%10101010 + +; character 85 + BYTE #%00000000 + BYTE #%11110000 + BYTE #%11011010 + BYTE #%01101010 + BYTE #%01011000 + BYTE #%01011010 + BYTE #%01010110 + BYTE #%10101010 + +; character 86 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%10101010 + BYTE #%11111111 + BYTE #%00000000 + BYTE #%10101010 + BYTE #%11111111 + BYTE #%00000000 + +; character 87 + BYTE #%11111110 + BYTE #%11100110 + BYTE #%11000010 + BYTE #%11000000 + BYTE #%11100000 + BYTE #%11111010 + BYTE #%11111110 + BYTE #%11001100 + +; character 88 + BYTE #%00000011 + BYTE #%00000111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%00111111 + BYTE #%00011111 + BYTE #%00111111 + BYTE #%01111111 + +; character 89 + BYTE #%11000000 + BYTE #%11100000 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111100 + BYTE #%11111000 + BYTE #%11111100 + BYTE #%11111110 + +; character 90 + BYTE #%00010101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10101000 + BYTE #%00100000 + BYTE #%00100000 + BYTE #%10000000 + +; character 91 + BYTE #%01011010 + BYTE #%01101011 + BYTE #%10101111 + BYTE #%10111110 + BYTE #%11101011 + BYTE #%10101010 + BYTE #%10111011 + BYTE #%11111111 + +; character 92 + BYTE #%11111011 + BYTE #%11101111 + BYTE #%10101011 + BYTE #%10111111 + BYTE #%10101100 + BYTE #%10111100 + BYTE #%11111100 + BYTE #%11110000 + +; character 93 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%01010100 + BYTE #%00100000 + +; character 94 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%01011001 + BYTE #%01011001 + +; character 95 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%10101010 + +; character 96 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%11101111 + BYTE #%11101111 + +; character 97 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%11111111 + BYTE #%11111100 + +; character 98 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + +; character 99 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + +; character 100 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + +; character 101 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + +; character 102 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + +; character 103 + BYTE #%00111111 + BYTE #%01010111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11111111 + +; character 104 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + BYTE #%11110111 + +; character 105 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + +; character 106 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + BYTE #%10011010 + +; character 107 + BYTE #%10101000 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + +; character 108 + BYTE #%00001010 + BYTE #%00101111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111111 + BYTE #%10111011 + BYTE #%10100010 + +; character 109 + BYTE #%10101010 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11101011 + BYTE #%10010110 + +; character 110 + BYTE #%10100000 + BYTE #%11111000 + BYTE #%11111110 + BYTE #%11111110 + BYTE #%11111110 + BYTE #%11111110 + BYTE #%11101110 + BYTE #%10001010 + +; character 111 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%00111110 + BYTE #%00001011 + BYTE #%00001011 + BYTE #%00011110 + BYTE #%10101010 + BYTE #%11111111 + +; character 112 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%10111110 + BYTE #%11101011 + BYTE #%11101011 + BYTE #%10111110 + BYTE #%10101010 + BYTE #%11111111 + +; character 113 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%10111100 + BYTE #%11100000 + BYTE #%11100000 + BYTE #%10111000 + BYTE #%10101010 + BYTE #%11111111 + +; character 114 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00010000 + BYTE #%00111000 + BYTE #%00111000 + BYTE #%00111000 + BYTE #%00111000 + +; character 115 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000001 + BYTE #%00000011 + +; character 116 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000100 + BYTE #%00001110 + BYTE #%00001110 + BYTE #%00001110 + BYTE #%10001110 + +; character 117 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00011100 + +; character 118 + BYTE #%00000000 + BYTE #%00000001 + BYTE #%00000111 + BYTE #%00001111 + BYTE #%00011111 + BYTE #%00111100 + BYTE #%01111001 + BYTE #%11111111 + +; character 119 + BYTE #%00111100 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11101111 + BYTE #%11111111 + BYTE #%11101111 + +; character 120 + BYTE #%00000000 + BYTE #%10000000 + BYTE #%11100000 + BYTE #%11110000 + BYTE #%11111000 + BYTE #%00111100 + BYTE #%10011110 + BYTE #%11111111 + +; character 121 + BYTE #%01101010 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101011 + BYTE #%10101111 + BYTE #%10101111 + BYTE #%10111100 + +; character 122 + BYTE #%11111100 + BYTE #%01011000 + BYTE #%01111000 + BYTE #%10101100 + BYTE #%10101100 + BYTE #%10111100 + BYTE #%10110000 + BYTE #%10110000 + +; character 123 + BYTE #%10110000 + BYTE #%11100000 + BYTE #%01110000 + BYTE #%10110000 + BYTE #%10110000 + BYTE #%11000000 + BYTE #%11000000 + BYTE #%11000000 + +; character 124 + BYTE #%00010101 + BYTE #%01010110 + BYTE #%01011010 + BYTE #%01011010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%00011010 + +; character 125 + BYTE #%00101111 + BYTE #%00010101 + BYTE #%00010110 + BYTE #%00011010 + BYTE #%00011010 + BYTE #%00011010 + BYTE #%00011010 + BYTE #%00000110 + +; character 126 + BYTE #%00000110 + BYTE #%00000110 + BYTE #%00000111 + BYTE #%00000101 + BYTE #%00000001 + BYTE #%00000001 + BYTE #%00000001 + BYTE #%00000001 + +; character 127 + BYTE #%11000011 + BYTE #%01100011 + BYTE #%00100011 + BYTE #%00110110 + BYTE #%00111110 + BYTE #%01111110 + BYTE #%01101111 + BYTE #%11001101 + +; character 128 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + +; character 129 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00000001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%11111111 + +; character 130 + BYTE #%00000111 + BYTE #%00110011 + BYTE #%00110011 + BYTE #%00000111 + BYTE #%00110011 + BYTE #%00111001 + BYTE #%00000011 + BYTE #%11111111 + +; character 131 + BYTE #%11000011 + BYTE #%10011001 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%10011001 + BYTE #%11000011 + BYTE #%11111111 + +; character 132 + BYTE #%00000111 + BYTE #%00110011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00110011 + BYTE #%00000111 + BYTE #%11111111 + +; character 133 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111111 + BYTE #%00000111 + BYTE #%00111111 + BYTE #%00111001 + BYTE #%00000011 + BYTE #%11111111 + +; character 134 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111111 + BYTE #%00000111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%11111111 + +; character 135 + BYTE #%11000011 + BYTE #%10011001 + BYTE #%00111111 + BYTE #%00100001 + BYTE #%00111001 + BYTE #%10011001 + BYTE #%11000011 + BYTE #%11111111 + +; character 136 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00000001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%11111111 + +; character 137 + BYTE #%10000001 + BYTE #%00100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%10000001 + BYTE #%11111111 + +; character 138 + BYTE #%10000001 + BYTE #%00110011 + BYTE #%11110011 + BYTE #%11110011 + BYTE #%11110011 + BYTE #%00100111 + BYTE #%10001111 + BYTE #%11111111 + +; character 139 + BYTE #%00111001 + BYTE #%00110011 + BYTE #%00100111 + BYTE #%00001111 + BYTE #%00100111 + BYTE #%00110011 + BYTE #%00111001 + BYTE #%11111111 + +; character 140 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111001 + BYTE #%00000011 + BYTE #%11111111 + +; character 141 + BYTE #%00111001 + BYTE #%00010001 + BYTE #%00000001 + BYTE #%00101001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%11111111 + +; character 142 + BYTE #%00100011 + BYTE #%00001001 + BYTE #%00011001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%11111111 + +; character 143 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + BYTE #%11111111 + +; character 144 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00000011 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%11111111 + +; character 145 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00110101 + BYTE #%10010011 + BYTE #%11001001 + BYTE #%11111111 + +; character 146 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00000011 + BYTE #%00100111 + BYTE #%00110011 + BYTE #%00111001 + BYTE #%11111111 + +; character 147 + BYTE #%10000011 + BYTE #%00111001 + BYTE #%00111111 + BYTE #%10000011 + BYTE #%11110001 + BYTE #%00111001 + BYTE #%10000011 + BYTE #%11111111 + +; character 148 + BYTE #%10000001 + BYTE #%00100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11111111 + +; character 149 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10000011 + BYTE #%11111111 + +; character 150 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + BYTE #%11101111 + BYTE #%11111111 + +; character 151 + BYTE #%00111001 + BYTE #%00101001 + BYTE #%00101001 + BYTE #%00000001 + BYTE #%00010001 + BYTE #%00111001 + BYTE #%01111101 + BYTE #%11111111 + +; character 152 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%11111111 + +; character 153 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + BYTE #%11001111 + BYTE #%10011111 + BYTE #%11111111 + +; character 154 + BYTE #%10000001 + BYTE #%00111001 + BYTE #%11110011 + BYTE #%11100111 + BYTE #%11001111 + BYTE #%10011001 + BYTE #%00000011 + BYTE #%11111111 + +; character 155 + BYTE #%11000011 + BYTE #%10111101 + BYTE #%01100110 + BYTE #%01011110 + BYTE #%01011110 + BYTE #%01100110 + BYTE #%10111101 + BYTE #%11000011 + +; character 156 + BYTE #%11111010 + BYTE #%11010110 + BYTE #%11010100 + BYTE #%01010000 + BYTE #%10000000 + BYTE #%10100101 + BYTE #%10010101 + BYTE #%01000101 + +; character 157 + BYTE #%11111010 + BYTE #%10100101 + BYTE #%01010101 + BYTE #%01010000 + BYTE #%00010010 + BYTE #%00001010 + BYTE #%01001001 + BYTE #%01000101 + +; character 158 + BYTE #%11111111 + BYTE #%00101111 + BYTE #%10100111 + BYTE #%00010100 + BYTE #%00000001 + BYTE #%01010000 + BYTE #%01010100 + BYTE #%01000000 + +; character 159 + BYTE #%00000001 + BYTE #%10010000 + BYTE #%10010100 + BYTE #%10100101 + BYTE #%00010000 + BYTE #%11010101 + BYTE #%11100101 + BYTE #%11111010 + +; character 160 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + +; character 161 + BYTE #%00100000 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%01000101 + BYTE #%00000011 + BYTE #%00010111 + BYTE #%01011111 + BYTE #%01111111 + +; character 162 + BYTE #%11111111 + BYTE #%11111110 + BYTE #%11111010 + BYTE #%11101001 + BYTE #%11101001 + BYTE #%10010100 + BYTE #%10010100 + BYTE #%01100000 + +; character 163 + BYTE #%11111010 + BYTE #%10100110 + BYTE #%01010101 + BYTE #%01010100 + BYTE #%00011000 + BYTE #%00100001 + BYTE #%01000001 + BYTE #%01001001 + +; character 164 + BYTE #%10111111 + BYTE #%10011011 + BYTE #%10010111 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%00001001 + BYTE #%01000100 + BYTE #%00010100 + +; character 165 + BYTE #%10100110 + BYTE #%10010000 + BYTE #%10010010 + BYTE #%10001000 + BYTE #%11100101 + BYTE #%11100110 + BYTE #%11100100 + BYTE #%11110101 + +; character 166 + BYTE #%10100101 + BYTE #%10010100 + BYTE #%01010100 + BYTE #%01000010 + BYTE #%00001001 + BYTE #%01011001 + BYTE #%01000100 + BYTE #%00000001 + +; character 167 + BYTE #%00000100 + BYTE #%00100000 + BYTE #%10010100 + BYTE #%00000000 + BYTE #%01010001 + BYTE #%01000011 + BYTE #%01100011 + BYTE #%00011111 + +; character 168 + BYTE #%11100011 + BYTE #%11001111 + BYTE #%11011111 + BYTE #%10011111 + BYTE #%11011111 + BYTE #%11001111 + BYTE #%11100011 + BYTE #%11111111 + +; character 169 + BYTE #%11000111 + BYTE #%11110011 + BYTE #%11111011 + BYTE #%11111001 + BYTE #%11111011 + BYTE #%11110011 + BYTE #%11000111 + BYTE #%11111111 + +; character 170 + BYTE #%10111111 + BYTE #%10011011 + BYTE #%10010111 + BYTE #%01010111 + BYTE #%10010101 + BYTE #%01011001 + BYTE #%01000101 + BYTE #%00010100 + +; character 171 + BYTE #%10100110 + BYTE #%10100110 + BYTE #%10010010 + BYTE #%10000101 + BYTE #%11011001 + BYTE #%11100110 + BYTE #%11100100 + BYTE #%11110101 + +; character 172 + BYTE #%10100101 + BYTE #%10010100 + BYTE #%01010000 + BYTE #%01000001 + BYTE #%00010100 + BYTE #%01010101 + BYTE #%01000100 + BYTE #%00000000 + +; character 173 + BYTE #%00000100 + BYTE #%00010000 + BYTE #%01010100 + BYTE #%01000000 + BYTE #%01010011 + BYTE #%01000011 + BYTE #%00000011 + BYTE #%00001111 + +; character 174 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11111111 + +; character 175 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%10110111 + BYTE #%10111011 + BYTE #%11011101 + BYTE #%11000111 + BYTE #%11111111 + BYTE #%11111111 + +; character 176 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + BYTE #%11111111 + +; character 177 + BYTE #%11100111 + BYTE #%10000111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11100111 + BYTE #%11000011 + BYTE #%11111111 + +; character 178 + BYTE #%10000011 + BYTE #%00111001 + BYTE #%11111001 + BYTE #%11100111 + BYTE #%11001111 + BYTE #%10011001 + BYTE #%00000001 + BYTE #%11111111 + +; character 179 + BYTE #%10000011 + BYTE #%00111001 + BYTE #%11111001 + BYTE #%11000011 + BYTE #%11110011 + BYTE #%11111001 + BYTE #%00111001 + BYTE #%10000011 + +; character 180 + BYTE #%11100011 + BYTE #%11000011 + BYTE #%10010011 + BYTE #%00110011 + BYTE #%00110011 + BYTE #%00000001 + BYTE #%11110011 + BYTE #%11110011 + +; character 181 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111111 + BYTE #%00000011 + BYTE #%11111001 + BYTE #%11111001 + BYTE #%00110011 + BYTE #%10000111 + +; character 182 + BYTE #%11000011 + BYTE #%10011001 + BYTE #%00111111 + BYTE #%00000011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10010011 + BYTE #%11000111 + +; character 183 + BYTE #%10000001 + BYTE #%00111001 + BYTE #%11111001 + BYTE #%11110011 + BYTE #%11100111 + BYTE #%11001111 + BYTE #%10011111 + BYTE #%00111111 + +; character 184 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%10000011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10000011 + BYTE #%11111111 + +; character 185 + BYTE #%11000111 + BYTE #%10010011 + BYTE #%00111001 + BYTE #%00111001 + BYTE #%10000001 + BYTE #%11111001 + BYTE #%00110011 + BYTE #%10000111 + +; character 186 + BYTE #%10011000 + BYTE #%01010001 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010001 + BYTE #%01010010 + BYTE #%01000010 + +; character 187 + BYTE #%10101010 + BYTE #%10101001 + BYTE #%10100101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%01010101 + BYTE #%01010100 + +; character 188 + BYTE #%00010110 + BYTE #%00001010 + BYTE #%01001001 + BYTE #%01001001 + BYTE #%01001001 + BYTE #%01001001 + BYTE #%00001001 + BYTE #%00001001 + +; character 189 + BYTE #%00010101 + BYTE #%10101000 + BYTE #%10010100 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010100 + BYTE #%01010100 + +; character 190 + BYTE #%01010000 + BYTE #%01000010 + BYTE #%00001010 + BYTE #%00101001 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%00100101 + +; character 191 + BYTE #%00000101 + BYTE #%01000000 + BYTE #%01010010 + BYTE #%01010010 + BYTE #%01000010 + BYTE #%01010010 + BYTE #%01010010 + BYTE #%01000010 + +; character 192 + BYTE #%10010000 + BYTE #%00000010 + BYTE #%00101001 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%01001001 + +; character 193 + BYTE #%00100101 + BYTE #%01001001 + BYTE #%01010010 + BYTE #%01010000 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010000 + BYTE #%01010000 + +; character 194 + BYTE #%01000000 + BYTE #%00001000 + BYTE #%00101010 + BYTE #%10100101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10010101 + +; character 195 + BYTE #%10100010 + BYTE #%01010010 + BYTE #%01010010 + BYTE #%00000000 + BYTE #%10101010 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%00000000 + +; character 196 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%00000000 + BYTE #%10001010 + BYTE #%01001001 + BYTE #%01001001 + BYTE #%00000000 + +; character 197 + BYTE #%00101010 + BYTE #%00100101 + BYTE #%00100101 + BYTE #%00000000 + BYTE #%10101000 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%00000000 + +; character 198 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00101010 + BYTE #%00101010 + BYTE #%00101010 + BYTE #%00100000 + BYTE #%00101000 + BYTE #%00101010 + +; character 199 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10000010 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + +; character 200 + BYTE #%00000000 + BYTE #%00000001 + BYTE #%10101001 + BYTE #%10101001 + BYTE #%10101001 + BYTE #%00001001 + BYTE #%00101001 + BYTE #%10101001 + +; character 201 + BYTE #%00101010 + BYTE #%00101000 + BYTE #%00100000 + BYTE #%00101010 + BYTE #%00101010 + BYTE #%00101010 + BYTE #%00010101 + BYTE #%01010101 + +; character 202 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%10000010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%01010101 + +; character 203 + BYTE #%10101001 + BYTE #%00101001 + BYTE #%00001001 + BYTE #%10101001 + BYTE #%10101001 + BYTE #%10101001 + BYTE #%01010101 + BYTE #%01010101 + +; character 204 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10000000 + BYTE #%10000000 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10000101 + +; character 205 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + +; character 206 + BYTE #%10101010 + BYTE #%10101000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%01011000 + BYTE #%01011000 + BYTE #%01011000 + BYTE #%01011000 + +; character 207 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10000101 + BYTE #%10011010 + BYTE #%01000000 + BYTE #%00000000 + +; character 208 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%01010101 + BYTE #%10101010 + BYTE #%00000000 + BYTE #%00000000 + +; character 209 + BYTE #%11111111 + BYTE #%11010111 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%11010111 + BYTE #%11111111 + +; character 210 + BYTE #%10101011 + BYTE #%10010100 + BYTE #%01010100 + BYTE #%01010000 + BYTE #%01001111 + BYTE #%00111111 + BYTE #%11111111 + BYTE #%11111111 + +; character 211 + BYTE #%10101011 + BYTE #%10010100 + BYTE #%01010100 + BYTE #%00000100 + BYTE #%11110000 + BYTE #%11111100 + BYTE #%11111111 + BYTE #%11111111 + +; character 212 + BYTE #%11111111 + BYTE #%11110000 + BYTE #%01010000 + BYTE #%01001010 + BYTE #%11001010 + BYTE #%00101010 + BYTE #%00101010 + BYTE #%01010101 + +; character 213 + BYTE #%11111111 + BYTE #%00001111 + BYTE #%00100101 + BYTE #%10010101 + BYTE #%10100111 + BYTE #%10100101 + BYTE #%10101001 + BYTE #%01010101 + +; character 214 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%01010101 + BYTE #%00000000 + BYTE #%11111111 + BYTE #%01010101 + BYTE #%00000000 + BYTE #%11111111 + +; character 215 + BYTE #%00000001 + BYTE #%00011001 + BYTE #%00111101 + BYTE #%00111111 + BYTE #%00011111 + BYTE #%00000101 + BYTE #%00000001 + BYTE #%00110011 + +; character 216 + BYTE #%11111100 + BYTE #%11111000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%11000000 + BYTE #%11100000 + BYTE #%11000000 + BYTE #%10000000 + +; character 217 + BYTE #%00111111 + BYTE #%00011111 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000011 + BYTE #%00000111 + BYTE #%00000011 + BYTE #%00000001 + +; character 218 + BYTE #%11101010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01101010 + BYTE #%01010111 + BYTE #%11011111 + BYTE #%11011111 + BYTE #%01111111 + +; character 219 + BYTE #%10100101 + BYTE #%10010100 + BYTE #%01010000 + BYTE #%01000001 + BYTE #%00010100 + BYTE #%01010101 + BYTE #%01000100 + BYTE #%00000000 + +; character 220 + BYTE #%00000100 + BYTE #%00010000 + BYTE #%01010100 + BYTE #%01000000 + BYTE #%01010011 + BYTE #%01000011 + BYTE #%00000011 + BYTE #%00001111 + +; character 221 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%10101011 + BYTE #%11011111 + +; character 222 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%10100110 + BYTE #%10100110 + +; character 223 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%01010101 + +; character 224 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%00010000 + BYTE #%00010000 + +; character 225 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%00000000 + BYTE #%00000011 + +; character 226 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + BYTE #%11110000 + +; character 227 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + +; character 228 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + +; character 229 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + +; character 230 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + BYTE #%00001111 + +; character 231 + BYTE #%11000000 + BYTE #%10101000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00000000 + +; character 232 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + BYTE #%00001000 + +; character 233 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%10101010 + +; character 234 + BYTE #%10101010 + BYTE #%10101010 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + BYTE #%01100101 + +; character 235 + BYTE #%01010111 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + +; character 236 + BYTE #%11110101 + BYTE #%11010000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000000 + BYTE #%01000100 + BYTE #%01011101 + +; character 237 + BYTE #%01010101 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00010100 + BYTE #%01101001 + +; character 238 + BYTE #%01011111 + BYTE #%00000111 + BYTE #%00000001 + BYTE #%00000001 + BYTE #%00000001 + BYTE #%00000001 + BYTE #%00010001 + BYTE #%01110101 + +; character 239 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%11000001 + BYTE #%11110100 + BYTE #%11110100 + BYTE #%11100001 + BYTE #%01010101 + BYTE #%00000000 + +; character 240 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%01000001 + BYTE #%00010100 + BYTE #%00010100 + BYTE #%01000001 + BYTE #%01010101 + BYTE #%00000000 + +; character 241 + BYTE #%10101010 + BYTE #%01010101 + BYTE #%01000011 + BYTE #%00011111 + BYTE #%00011111 + BYTE #%01000111 + BYTE #%01010101 + BYTE #%00000000 + +; character 242 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11101111 + BYTE #%11000111 + BYTE #%11000111 + BYTE #%11000111 + BYTE #%11000111 + +; character 243 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111110 + BYTE #%11111100 + +; character 244 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111011 + BYTE #%11110001 + BYTE #%11110001 + BYTE #%11110001 + BYTE #%01110001 + +; character 245 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11111111 + BYTE #%11110111 + BYTE #%11100011 + +; character 246 + BYTE #%11111111 + BYTE #%11111110 + BYTE #%11111000 + BYTE #%11110000 + BYTE #%11100000 + BYTE #%11000011 + BYTE #%10000110 + BYTE #%00000000 + +; character 247 + BYTE #%11000011 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00000000 + BYTE #%00010000 + BYTE #%00000000 + BYTE #%00010000 + +; character 248 + BYTE #%11111111 + BYTE #%01111111 + BYTE #%00011111 + BYTE #%00001111 + BYTE #%00000111 + BYTE #%11000011 + BYTE #%01100001 + BYTE #%00000000 + +; character 249 + BYTE #%10010101 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010100 + BYTE #%01010000 + BYTE #%01010000 + BYTE #%01000011 + +; character 250 + BYTE #%00000011 + BYTE #%10100111 + BYTE #%10000111 + BYTE #%01010011 + BYTE #%01010011 + BYTE #%01000011 + BYTE #%01001111 + BYTE #%01001111 + +; character 251 + BYTE #%01001111 + BYTE #%00011111 + BYTE #%10001111 + BYTE #%01001111 + BYTE #%01001111 + BYTE #%00111111 + BYTE #%00111111 + BYTE #%00111111 + +; character 252 + BYTE #%11101010 + BYTE #%10101001 + BYTE #%10100101 + BYTE #%10100101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%10010101 + BYTE #%11100101 + +; character 253 + BYTE #%11010000 + BYTE #%11101010 + BYTE #%11101001 + BYTE #%11100101 + BYTE #%11100101 + BYTE #%11100101 + BYTE #%11100101 + BYTE #%11111001 + +; character 254 + BYTE #%11111001 + BYTE #%11111001 + BYTE #%11111000 + BYTE #%11111010 + BYTE #%11111110 + BYTE #%11111110 + BYTE #%11111110 + BYTE #%11111110 + +; character 255 + BYTE #%00111100 + BYTE #%10011100 + BYTE #%11011100 + BYTE #%11001001 + BYTE #%11000001 + BYTE #%10000001 + BYTE #%10010000 + BYTE #%00110010 + diff --git a/zeropage.asm b/src/zeropage.asm similarity index 58% rename from zeropage.asm rename to src/zeropage.asm index 172d297..0df0ee4 100644 --- a/zeropage.asm +++ b/src/zeropage.asm @@ -1,4 +1,4 @@ -; Zero page utilities +; Zero page utility pointers ; ---------------------------------------------------------------------- ; Where is the snake head in video memory? Do math to calculate address ; using pointer at tileMem,tileMem+1 @@ -9,12 +9,9 @@ printStatusString DS 2 ; Pointer to intro string printIntroString DS 2 -; Pointer to screen position where to print intro string ($fb-$fc) +; Pointer to screen position where to print intro string introScreenStart DS 2 -#if DEBUG = 1 - ; Locations $90-$FF in zeropage are used by kernal - ECHO "End of zeropage variables. Space left: ",($90 - .) -#endif +; Note: Locations $90-$FF in zeropage are used by kernal diff --git a/util/explodefont.cpp b/util/explodefont.cpp new file mode 100644 index 0000000..514eee1 --- /dev/null +++ b/util/explodefont.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; + +int main() { + int count = 0; + + while (cin.good()) { + char c; + cin.get(c); + if (! cin.good()) break; + + if (count % 8 == 0) { + cout << "; character " << count / 8 << endl; + } + cout << " BYTE #%"; + for (int i = 7; i >= 0; --i) { + cout << ((c >> i) & 1); + } + cout << endl; + + if (count % 8 == 7) { + cout << endl; + } + + count++; + } + + return 0; +} diff --git a/tggs.font b/util/tggs.font similarity index 100% rename from tggs.font rename to util/tggs.font