more work

This commit is contained in:
~d6 2022-09-10 22:07:58 -04:00
parent 20197ef198
commit 0ac1521813
1 changed files with 214 additions and 308 deletions

522
ff.tal
View File

@ -19,9 +19,12 @@
( variables ) ( variables )
|0000 |0000
@draw-mode $1
( program ) ( program )
|0100 |0100
#81 .draw-mode STZ
;redraw .Screen/vector DEO2 ( set up screen ) ;redraw .Screen/vector DEO2 ( set up screen )
;on-key .Controller/vector DEO2 ( set up keyboard ) ;on-key .Controller/vector DEO2 ( set up keyboard )
;init-rng JSR2 ( initialize rng ) ;init-rng JSR2 ( initialize rng )
@ -33,59 +36,146 @@
#0cd5 .System/g DEO2 #0cd5 .System/g DEO2
#0b66 .System/b DEO2 #0b66 .System/b DEO2
#0000 #0000 #1e #10 ;draw-box JSR2
#0000 #0090 #09 #08 ;draw-box JSR2 ;draw-scene JSR2
#0058 #0090 #08 #08 ;draw-box JSR2 ;draw-party-info JSR2
;draw-menu JSR2
;draw-monsters JSR2
( #0008 #0008 ;goto JSR2 #1234 ;draw-dec2 JSR2 )
( #0008 #0010 ;goto JSR2 )
( #32 ;draw-dec-pad JSR2 LIT '/ ;draw-ascii JSR2 #35 ;draw-dec-pad JSR2 )
( ;party ;draw-health JSR2 )
BRK
@draw-name ( hero* -> )
INC2 ;draw-string JSR2
JMP2r
@draw-health ( hero* -> )
#0009 ADD2 STH2k #0002 ADD2 LDA2 STH2r LDA2
( ;draw-dec2-pad JSR2 LIT '/ ;draw-ascii JSR2 ;draw-dec2-pad JSR2 )
;draw-dec2 JSR2 LIT '/ ;draw-ascii JSR2 ;draw-dec2 JSR2
JMP2r
@draw-party-info ( -> )
#00a8 #0090 #09 #08 ;draw-box JSR2 #00a8 #0090 #09 #08 ;draw-box JSR2
#81 .draw-mode STZ
;party LIT2r 0098
&loop
#00b0 STH2kr ;goto JSR2
DUP2 ;draw-name JSR2
LIT2r 0008 ADD2r
#00d0 STH2kr ;goto JSR2
DUP2 ;draw-health JSR2
LIT2r 0008 ADD2r
#000d ADD2
DUP2 ;party-limit LTH2 ,&loop JCN
POP2 POP2r
JMP2r
#00d8 #0028 ;goto JSR2 #03 ;draw-sprite-23 JSR2 @draw-scene ( -> )
#00d8 #0040 ;goto JSR2 #07 ;draw-sprite-23 JSR2 #0000 #0000 #1e #10 ;draw-box JSR2
#00d8 #0058 ;goto JSR2 #11 ;draw-sprite-23 JSR2 ;draw-party-sprites JSR2
#00d8 #0070 ;goto JSR2 #0a ;draw-sprite-23 JSR2 ;draw-monster-sprites JSR2
;draw-background-sprites JSR2
JMP2r
@draw-background-sprites
#0008
&loop
DUP2 #0008 ;goto JSR2
#c0 #05 #04 ;draw-sprite-nn JSR2
#0028 ADD2
DUP2 #00d8 LTH2 ,&loop JCN
POP2
JMP2r
( #00d8 #0028 ;goto JSR2 #00 ;draw-sprite-23 JSR2
#00d8 #0040 ;goto JSR2 #10 ;draw-sprite-23 JSR2
#00d8 #0058 ;goto JSR2 #20 ;draw-sprite-23 JSR2
#00d8 #0070 ;goto JSR2 #30 ;draw-sprite-23 JSR2 )
@draw-party-sprites ( -> )
#0000
&loop
( DUP2 #0018 MUL2 #0028 ADD2 #00d8 SWP2 ;goto JSR2 )
DUP2 #0018 MUL2 #0028 ADD2 #00d0 SWP2 ;goto JSR2
DUP2 #000d MUL2 ;party ADD2 LDA #40 SFT ;draw-sprite-23 JSR2
INC2
DUP2 #0004 LTH2 ,&loop JCN
POP2 JMP2r
@draw-monster-sprites ( -> )
#0018 #0028 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0018 #0048 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0018 #0068 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0038 #0028 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0038 #0048 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0038 #0068 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0058 #0028 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0058 #0048 ;goto JSR2 #60 ;draw-sprite-33 JSR2
#0058 #0068 ;goto JSR2 #60 ;draw-sprite-33 JSR2
JMP2r
@draw-menu ( -> )
#0058 #0090 #08 #08 ;draw-box JSR2
#81 .draw-mode STZ
#0060 #0098 ;goto JSR2 #1e ;draw-tile JSR2 #0060 #0098 ;goto JSR2 #1e ;draw-tile JSR2
#0068 #0098 ;goto JSR2 ;fight ;draw-string JSR2 #0068 #0098 ;goto JSR2 ;fight ;draw-string JSR2
#0068 #00a0 ;goto JSR2 ;run ;draw-string JSR2 #0068 #00a0 ;goto JSR2 ;run ;draw-string JSR2
#0068 #00a8 ;goto JSR2 ;magic ;draw-string JSR2 #0068 #00a8 ;goto JSR2 ;magic ;draw-string JSR2
#0068 #00b0 ;goto JSR2 ;drink ;draw-string JSR2 #0068 #00b0 ;goto JSR2 ;drink ;draw-string JSR2
#0068 #00b8 ;goto JSR2 ;item ;draw-string JSR2 #0068 #00b8 ;goto JSR2 ;item ;draw-string JSR2
JMP2r
#0008 #0098 ;goto JSR2 ;imp ;draw-string JSR2 @draw-monsters ( -> )
#0008 #00a0 ;goto JSR2 ;wolf ;draw-string JSR2 #0000 #0090 #09 #08 ;draw-box JSR2
#81 .draw-mode STZ
#0018 #0098 ;goto JSR2 ;imp ;draw-string JSR2
#0018 #00a0 ;goto JSR2 ;wolf ;draw-string JSR2
JMP2r
#00b0 #0098 ;goto JSR2 ;asta ;draw-string JSR2 @load-tile ( offset* base* -> )
#00b0 #00a0 ;goto JSR2 ;asta-2 ;draw-string JSR2 STH2
#00b0 #00a8 ;goto JSR2 ;brek ;draw-string JSR2
#00b0 #00b0 ;goto JSR2 ;brek-2 ;draw-string JSR2
#00b0 #00b8 ;goto JSR2 ;dain ;draw-string JSR2
#00b0 #00c0 ;goto JSR2 ;dain-2 ;draw-string JSR2
#00b0 #00c8 ;goto JSR2 ;garl ;draw-string JSR2
#00b0 #00d0 ;goto JSR2 ;garl-2 ;draw-string JSR2
BRK
@load-tile ( offset* -> )
#00 SWP #40 SFT2 #00 SWP #40 SFT2
;petscii ADD2 .Screen/addr DEO2 STH2r ( ;petscii ) ADD2 .Screen/addr DEO2
JMP2r JMP2r
@draw ( -> ) @draw ( -> )
#81 .Screen/sprite DEO JMP2r #81 .Screen/sprite DEO JMP2r
@draw-tile ( index^ -> ) @draw-tile ( index^ -> )
,load-tile JSR ,draw JMP ;petscii ,load-tile JSR ( ,draw JMP )
.draw-mode LDZ .Screen/sprite DEO JMP2r
@draw-fg ( -> )
#c3 .Screen/sprite DEO JMP2r
@draw-sprite-tile ( index^ -> )
;sprites ,load-tile JSR ,draw-fg JMP
@draw-sprite-23 ( index^ -> ) @draw-sprite-23 ( index^ -> )
STH #02 #03 ,draw-sprite-nn JMP
@draw-sprite-33 ( index^ -> )
#03 #03 ,draw-sprite-nn JMP
@draw-sprite-nn ( index^ cols^ rows^ -> )
#01 .Screen/auto DEO #01 .Screen/auto DEO
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2 ,&rows STR ,&cols STR STH
.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2 #00
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 &row-loop
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2 #00
.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2 &col-loop
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2 STHkr ;draw-sprite-tile JSR2 INCr
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2 INC DUP ,&cols LDR LTH ,&col-loop JCN
POPr POP INC
JMP2r .Screen/x DEI2 #00 ,&cols LDR #0008 MUL2 SUB2 .Screen/x DEO2
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
DUP ,&rows LDR LTH ,&row-loop JCN
POP POPr
JMP2r [ &cols $1 &rows $1 ]
@goto ( x* y* -> ) @goto ( x* y* -> )
.Screen/y DEO2 .Screen/x DEO2 JMP2r .Screen/y DEO2 .Screen/x DEO2 JMP2r
@ -97,27 +187,34 @@
STH2kr LDA DUP ,&continue JCN STH2kr LDA DUP ,&continue JCN
POP POP2r JMP2r POP POP2r JMP2r
&continue &continue
#20 SUB ;draw-tile JSR2 ( #20 SUB ;draw-tile JSR2 )
;draw-ascii JSR2
INC2r ,&loop JMP INC2r ,&loop JMP
@vertical-line ( count^ -> ) @vertical-line ( count^ -> )
.draw-mode LDZ STH
#02 .Screen/auto DEO #02 .Screen/auto DEO
TILE-VERT ;load-tile JSR2 TILE-VERT ;petscii ;load-tile JSR2
#00 SWP SUB #00 SWP SUB
&loop ;draw JSR2 INC DUP ,&loop JCN POP &loop STHkr .Screen/sprite DEO INC DUP ,&loop JCN
POP POPr
JMP2r JMP2r
@horizontal-line ( count^ -> ) @horizontal-line ( count^ -> )
.draw-mode LDZ STH
#01 .Screen/auto DEO #01 .Screen/auto DEO
TILE-HORIZ ;load-tile JSR2 TILE-HORIZ ;petscii ;load-tile JSR2
#00 SWP SUB #00 SWP SUB
&loop ;draw JSR2 INC DUP ,&loop JCN POP &loop STHkr .Screen/sprite DEO INC DUP ,&loop JCN
POP POPr
JMP2r JMP2r
( w and h refer to the "internal" size of the box ) ( w and h refer to the "internal" size of the box )
@draw-box ( x* y* w^ h^ -> ) @draw-box ( x* y* w^ h^ -> )
,&h STR ,&w STR ,&y STR2 ,&x STR2 ,&h STR ,&w STR ,&y STR2 ,&x STR2
#83 .draw-mode STZ
( top line ) ( top line )
#01 .Screen/auto DEO #01 .Screen/auto DEO
,&x LDR2 .Screen/x DEO2 ,&x LDR2 .Screen/x DEO2
@ -175,7 +272,7 @@
( draw a random sprite with a random style ) ( draw a random sprite with a random style )
@draw-random-sprite @draw-random-sprite
;rng JSR2 NIP ;load-tile JSR2 ;rng JSR2 NIP ;petscii ;load-tile JSR2
#81 .Screen/sprite DEO #81 .Screen/sprite DEO
JMP2r JMP2r
@ -211,14 +308,6 @@
JMP2r [ &x $2 &y $2 ] ( v ) JMP2r [ &x $2 &y $2 ] ( v )
( string constants ) ( string constants )
@asta "asta 00
@asta-2 20 20 20 "36/ 20 "37 00
@brek "brek 00
@brek-2 20 20 20 "17/ 20 "21 00
@dain "dain 00
@dain-2 20 20 20 "28/ 20 "31 00
@garl "garl 00
@garl-2 20 20 20 "16/ 20 "16 00
@fight "fight 00 @fight "fight 00
@run "run 00 @run "run 00
@ -229,272 +318,89 @@
@imp "imp 00 @imp "imp 00
@wolf "wolf 00 @wolf "wolf 00
( pc stats: ) ( pc stats: 13 bytes per hero )
( - 1 byte: class ) ( - 1 byte: class )
( - 5 bytes: name ) ( - 8 bytes: name )
( - 2 bytes: cur hp ) ( - 2 bytes: cur hp )
( - 2 bytes: max hp ) ( - 2 bytes: max hp )
@pc1 01 "asta 00 0024 0025 @party
@pc2 01 "brek 00 0011 0015 03 "asta 00 00 00 00 0024 0025
@pc3 01 "dain 00 001c 001f 02 "brek 00 00 00 00 0011 0015
@pc4 01 "garl 00 0010 0010 01 "dain 00 00 00 00 001c 001f
00 "garl 00 00 00 00 0010 0010
@party-limit
@draw-ascii ( c^ -> )
#20 SUB ;draw-tile JMP2
@draw-dec ( n^ -> )
#01 .Screen/auto DEO
LITr 00 ( n [0] )
&read ( n [k] )
#0a DIVk STHk MUL SUB STHr INCr ( n%10 n/10 [k+1] )
DUP ,&read JCN
POP ( top element was 0000 )
&write ( n0 n1 ... nk [k+1] )
#30 ADD ( #18 DEO ) ;draw-ascii JSR2 LITr 01 SUBr ( n0 ... n{k-1} [k] )
STHkr ,&write JCN
POPr JMP2r
@draw-dec-pad ( n^ -> )
#01 .Screen/auto DEO
LITr 00 ( n [0] )
&read ( n [k] )
#0a DIVk STHk MUL SUB STHr INCr ( n%10 n/10 [k+1] )
STHkr #03 LTH ,&read JCN
POP ( top element was 0000 )
&write0 ( n0 n1 ... nk [k+1] )
DUP ,draw-dec/write JCN
POP #00 ;draw-tile JSR2 ( sp ) LITr 01 SUBr
STHkr ,&write0 JCN
POPr JMP2r
@draw-dec2 ( n* -> )
#01 .Screen/auto DEO
LITr 00 ( n [0] )
&read ( n [k] )
#000a DIV2k STH2k MUL2 SUB2 STH2r INCr ( n%10 n/10 [k+1] )
DUP2 ORA ,&read JCN
POP2 ( top element was 0000 )
&write ( n0 n1 ... nk [k+1] )
NIP #30 ADD ( #18 DEO ) ;draw-ascii JSR2 LITr 01 SUBr ( n0 ... n{k-1} [k] )
STHkr ,&write JCN
POPr JMP2r
@draw-dec2-pad ( n* -> )
#01 .Screen/auto DEO
LITr 00 ( n [0] )
&read ( n [k] )
#000a DIV2k STH2k MUL2 SUB2 STH2r INCr ( n%10 n/10 [k+1] )
STHkr #05 LTH ,&read JCN
POP2 ( top element was 0000 )
&write0 ( n0 n1 ... nk [k+1] )
DUP2 ORA ,draw-dec2/write JCN
POP2 #00 ;draw-tile JSR2 ( sp ) LITr 01 SUBr
STHkr ,&write0 JCN
POPr JMP2r
@draw-dec2-vpad ( n* pad^ -> )
#01 .Screen/auto DEO
LITr 00 ( n [0] )
&read ( n [k] )
#000a DIV2k STH2k MUL2 SUB2 STH2r INCr ( n%10 n/10 [k+1] )
STHkr #05 LTH ,&read JCN
POP2 ( top element was 0000 )
&write0 ( n0 n1 ... nk [k+1] )
DUP2 ORA ,draw-dec2/write JCN
POP2 #00 ;draw-tile JSR2 ( sp ) LITr 01 SUBr
STHkr ,&write0 JCN
POPr JMP2r
( PETSCII tiles, 2-bit binary data ) ( PETSCII tiles, 2-bit binary data )
( TODO: these could be 1-bit instead ) ( TODO: these could be 1-bit instead )
@petscii @petscii
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ~chr/petscii.tal
18 18 18 18 18 00 18 00 00 00 00 00 00 00 00 00
66 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00 ( sprite tiles, 2-bit binary data )
66 66 ff 66 ff 66 66 00 00 00 00 00 00 00 00 00 @sprites
18 3e 40 3c 02 7c 18 00 00 00 00 00 00 00 00 00 ~chr/tiles.tal
62 66 0c 18 30 66 46 00 00 00 00 00 00 00 00 00
3c 66 3c 38 67 66 3f 00 00 00 00 00 00 00 00 00
0c 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00
0c 18 30 30 30 18 0c 00 00 00 00 00 00 00 00 00
30 18 0c 0c 0c 18 30 00 00 00 00 00 00 00 00 00
00 66 3c ff 3c 66 00 00 00 00 00 00 00 00 00 00
00 18 18 7e 18 18 00 00 00 00 00 00 00 00 00 00
00 00 00 00 18 18 30 00 00 00 00 00 00 00 00 00
00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 18 18 00 00 00 00 00 00 00 00 00
03 06 0c 18 30 60 c0 00 00 00 00 00 00 00 00 00
3c 66 6e 76 66 66 3c 00 00 00 00 00 00 00 00 00
18 18 38 18 18 18 7e 00 00 00 00 00 00 00 00 00
3c 66 06 0c 30 60 7e 00 00 00 00 00 00 00 00 00
3c 66 06 1c 06 66 3c 00 00 00 00 00 00 00 00 00
0c 1c 3c cc fe 0c 0c 00 00 00 00 00 00 00 00 00
7e 60 7c 06 06 66 3c 00 00 00 00 00 00 00 00 00
3c 66 60 7c 66 66 3c 00 00 00 00 00 00 00 00 00
7e 66 0c 18 18 18 18 00 00 00 00 00 00 00 00 00
3c 66 66 3c 66 66 3c 00 00 00 00 00 00 00 00 00
3c 66 66 3e 06 66 3c 00 00 00 00 00 00 00 00 00
00 00 18 00 18 00 00 00 00 00 00 00 00 00 00 00
00 00 18 00 18 18 30 00 00 00 00 00 00 00 00 00
0e 18 30 60 30 18 0e 00 00 00 00 00 00 00 00 00
00 00 7e 00 7e 00 00 00 00 00 00 00 00 00 00 00
70 18 0c 06 0c 18 70 00 00 00 00 00 00 00 00 00
3c 66 06 0c 18 00 18 00 00 00 00 00 00 00 00 00
3c 66 6e 6e 60 62 3c 00 00 00 00 00 00 00 00 00
00 00 3c 06 3e 46 3e 00 00 00 00 00 00 00 00 00
00 60 60 7c 66 66 7c 00 00 00 00 00 00 00 00 00
00 00 3c 60 60 60 3c 00 00 00 00 00 00 00 00 00
00 06 06 3e 66 66 3e 00 00 00 00 00 00 00 00 00
00 00 3c 66 7e 60 3c 00 00 00 00 00 00 00 00 00
00 0e 18 3e 18 18 18 00 00 00 00 00 00 00 00 00
00 00 3e 66 66 3e 06 7c 00 00 00 00 00 00 00 00
00 60 60 7c 66 66 66 00 00 00 00 00 00 00 00 00
00 18 00 38 18 18 3c 00 00 00 00 00 00 00 00 00
00 06 00 06 06 06 06 3c 00 00 00 00 00 00 00 00
00 60 60 6c 78 6c 66 00 00 00 00 00 00 00 00 00
00 38 18 18 18 18 3c 00 00 00 00 00 00 00 00 00
00 00 66 7f 7f 6b 63 00 00 00 00 00 00 00 00 00
00 00 7c 66 66 66 66 00 00 00 00 00 00 00 00 00
00 00 3c 66 66 66 3c 00 00 00 00 00 00 00 00 00
00 00 7c 66 66 7c 60 60 00 00 00 00 00 00 00 00
00 00 3e 66 66 3e 06 06 00 00 00 00 00 00 00 00
00 00 7c 66 60 60 60 00 00 00 00 00 00 00 00 00
00 00 3e 60 3c 06 7c 00 00 00 00 00 00 00 00 00
00 18 7e 18 18 18 0e 00 00 00 00 00 00 00 00 00
00 00 66 66 66 66 3e 00 00 00 00 00 00 00 00 00
00 00 66 66 66 3c 18 00 00 00 00 00 00 00 00 00
00 00 63 6b 7f 3e 36 00 00 00 00 00 00 00 00 00
00 00 66 3c 18 3c 66 00 00 00 00 00 00 00 00 00
00 00 66 66 66 3e 0c 78 00 00 00 00 00 00 00 00
00 00 7e 0c 18 30 7e 00 00 00 00 00 00 00 00 00
3c 30 30 30 30 30 3c 00 00 00 00 00 00 00 00 00
0c 12 30 7c 30 62 fc 00 00 00 00 00 00 00 00 00
3c 0c 0c 0c 0c 0c 3c 00 00 00 00 00 00 00 00 00
00 18 3c 7e 18 18 18 18 00 00 00 00 00 00 00 00
00 10 30 7f 7f 30 10 00 00 00 00 00 00 00 00 00
00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00
18 3c 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
7c 66 66 7c 66 66 7c 00 00 00 00 00 00 00 00 00
3c 66 60 60 60 66 3c 00 00 00 00 00 00 00 00 00
78 6c 66 66 66 6c 78 00 00 00 00 00 00 00 00 00
7e 60 60 78 60 60 7e 00 00 00 00 00 00 00 00 00
7e 60 60 78 60 60 60 00 00 00 00 00 00 00 00 00
3c 66 60 6e 66 66 3c 00 00 00 00 00 00 00 00 00
66 66 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
3c 18 18 18 18 18 3c 00 00 00 00 00 00 00 00 00
1e 0c 0c 0c 0c 6c 38 00 00 00 00 00 00 00 00 00
66 6c 78 70 78 6c 66 00 00 00 00 00 00 00 00 00
60 60 60 60 60 60 7e 00 00 00 00 00 00 00 00 00
63 77 7f 6b 63 63 63 00 00 00 00 00 00 00 00 00
66 76 7e 7e 6e 66 66 00 00 00 00 00 00 00 00 00
3c 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
7c 66 66 7c 60 60 60 00 00 00 00 00 00 00 00 00
3c 66 66 66 66 3c 0e 00 00 00 00 00 00 00 00 00
7c 66 66 7c 78 6c 66 00 00 00 00 00 00 00 00 00
3c 66 60 3c 06 66 3c 00 00 00 00 00 00 00 00 00
7e 18 18 18 18 18 18 00 00 00 00 00 00 00 00 00
66 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
66 66 66 66 66 3c 18 00 00 00 00 00 00 00 00 00
63 63 63 6b 7f 77 63 00 00 00 00 00 00 00 00 00
66 66 3c 18 3c 66 66 00 00 00 00 00 00 00 00 00
66 66 66 3c 18 18 18 00 00 00 00 00 00 00 00 00
7e 06 0c 18 30 60 7e 00 00 00 00 00 00 00 00 00
18 18 18 ff ff 18 18 18 00 00 00 00 00 00 00 00
c0 c0 30 30 c0 c0 30 30 00 00 00 00 00 00 00 00
18 18 18 18 18 18 18 18 00 00 00 00 00 00 00 00
cc cc 33 33 cc cc 33 33 00 00 00 00 00 00 00 00
33 99 cc 66 33 99 cc 66 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 f0 f0 f0 f0 00 00 00 00 00 00 00 00
00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00
cc cc 33 33 cc cc 33 33 00 00 00 00 00 00 00 00
03 03 03 03 03 03 03 03 00 00 00 00 00 00 00 00
00 00 00 00 cc cc 33 33 00 00 00 00 00 00 00 00
cc 99 33 66 cc 99 33 66 00 00 00 00 00 00 00 00
03 03 03 03 03 03 03 03 00 00 00 00 00 00 00 00
18 18 18 1f 1f 18 18 18 00 00 00 00 00 00 00 00
00 00 00 00 0f 0f 0f 0f 00 00 00 00 00 00 00 00
18 18 18 1f 1f 00 00 00 00 00 00 00 00 00 00 00
00 00 00 f8 f8 18 18 18 00 00 00 00 00 00 00 00
00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00
00 00 00 1f 1f 18 18 18 00 00 00 00 00 00 00 00
18 18 18 ff ff 00 00 00 00 00 00 00 00 00 00 00
00 00 00 ff ff 18 18 18 00 00 00 00 00 00 00 00
18 18 18 f8 f8 18 18 18 00 00 00 00 00 00 00 00
c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00
e0 e0 e0 e0 e0 e0 e0 e0 00 00 00 00 00 00 00 00
07 07 07 07 07 07 07 07 00 00 00 00 00 00 00 00
ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 ff ff ff 00 00 00 00 00 00 00 00
01 03 06 6c 78 70 60 00 00 00 00 00 00 00 00 00
00 00 00 00 f0 f0 f0 f0 00 00 00 00 00 00 00 00
0f 0f 0f 0f 00 00 00 00 00 00 00 00 00 00 00 00
18 18 18 f8 f8 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 00 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 0f 0f 0f 0f 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
18 18 18 18 18 00 18 00 00 00 00 00 00 00 00 00
66 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00
66 66 ff 66 ff 66 66 00 00 00 00 00 00 00 00 00
18 3e 40 3c 02 7c 18 00 00 00 00 00 00 00 00 00
62 66 0c 18 30 66 46 00 00 00 00 00 00 00 00 00
3c 66 3c 38 67 66 3f 00 00 00 00 00 00 00 00 00
0c 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00
0c 18 30 30 30 18 0c 00 00 00 00 00 00 00 00 00
30 18 0c 0c 0c 18 30 00 00 00 00 00 00 00 00 00
00 66 3c ff 3c 66 00 00 00 00 00 00 00 00 00 00
00 18 18 7e 18 18 00 00 00 00 00 00 00 00 00 00
00 00 00 00 18 18 30 00 00 00 00 00 00 00 00 00
00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 18 18 00 00 00 00 00 00 00 00 00
03 06 0c 18 30 60 c0 00 00 00 00 00 00 00 00 00
3c 66 6e 76 66 66 3c 00 00 00 00 00 00 00 00 00
18 18 38 18 18 18 7e 00 00 00 00 00 00 00 00 00
3c 66 06 0c 30 60 7e 00 00 00 00 00 00 00 00 00
3c 66 06 1c 06 66 3c 00 00 00 00 00 00 00 00 00
0c 1c 3c cc fe 0c 0c 00 00 00 00 00 00 00 00 00
7e 60 7c 06 06 66 3c 00 00 00 00 00 00 00 00 00
3c 66 60 7c 66 66 3c 00 00 00 00 00 00 00 00 00
7e 66 0c 18 18 18 18 00 00 00 00 00 00 00 00 00
3c 66 66 3c 66 66 3c 00 00 00 00 00 00 00 00 00
3c 66 66 3e 06 66 3c 00 00 00 00 00 00 00 00 00
00 00 18 00 18 00 00 00 00 00 00 00 00 00 00 00
00 00 18 00 18 18 30 00 00 00 00 00 00 00 00 00
0e 18 30 60 30 18 0e 00 00 00 00 00 00 00 00 00
00 00 7e 00 7e 00 00 00 00 00 00 00 00 00 00 00
70 18 0c 06 0c 18 70 00 00 00 00 00 00 00 00 00
3c 66 06 0c 18 00 18 00 00 00 00 00 00 00 00 00
3c 66 6e 6e 60 62 3c 00 00 00 00 00 00 00 00 00
18 3c 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
7c 66 66 7c 66 66 7c 00 00 00 00 00 00 00 00 00
3c 66 60 60 60 66 3c 00 00 00 00 00 00 00 00 00
78 6c 66 66 66 6c 78 00 00 00 00 00 00 00 00 00
7e 60 60 78 60 60 7e 00 00 00 00 00 00 00 00 00
7e 60 60 78 60 60 60 00 00 00 00 00 00 00 00 00
3c 66 60 6e 66 66 3c 00 00 00 00 00 00 00 00 00
66 66 66 7e 66 66 66 00 00 00 00 00 00 00 00 00
3c 18 18 18 18 18 3c 00 00 00 00 00 00 00 00 00
1e 0c 0c 0c 0c 6c 38 00 00 00 00 00 00 00 00 00
66 6c 78 70 78 6c 66 00 00 00 00 00 00 00 00 00
60 60 60 60 60 60 7e 00 00 00 00 00 00 00 00 00
63 77 7f 6b 63 63 63 00 00 00 00 00 00 00 00 00
66 76 7e 7e 6e 66 66 00 00 00 00 00 00 00 00 00
3c 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
7c 66 66 7c 60 60 60 00 00 00 00 00 00 00 00 00
3c 66 66 66 66 3c 0e 00 00 00 00 00 00 00 00 00
7c 66 66 7c 78 6c 66 00 00 00 00 00 00 00 00 00
3c 66 60 3c 06 66 3c 00 00 00 00 00 00 00 00 00
7e 18 18 18 18 18 18 00 00 00 00 00 00 00 00 00
66 66 66 66 66 66 3c 00 00 00 00 00 00 00 00 00
66 66 66 66 66 3c 18 00 00 00 00 00 00 00 00 00
63 63 63 6b 7f 77 63 00 00 00 00 00 00 00 00 00
66 66 3c 18 3c 66 66 00 00 00 00 00 00 00 00 00
66 66 66 3c 18 18 18 00 00 00 00 00 00 00 00 00
7e 06 0c 18 30 60 7e 00 00 00 00 00 00 00 00 00
3c 30 30 30 30 30 3c 00 00 00 00 00 00 00 00 00
0c 12 30 7c 30 62 fc 00 00 00 00 00 00 00 00 00
3c 0c 0c 0c 0c 0c 3c 00 00 00 00 00 00 00 00 00
00 18 3c 7e 18 18 18 18 00 00 00 00 00 00 00 00
00 10 30 7f 7f 30 10 00 00 00 00 00 00 00 00 00
00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00
08 1c 3e 7f 7f 1c 3e 00 00 00 00 00 00 00 00 00
18 18 18 18 18 18 18 18 00 00 00 00 00 00 00 00
00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00
00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00
00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00 00
30 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00
0c 0c 0c 0c 0c 0c 0c 0c 00 00 00 00 00 00 00 00
00 00 00 e0 f0 38 18 18 00 00 00 00 00 00 00 00
18 18 1c 0f 07 00 00 00 00 00 00 00 00 00 00 00
18 18 38 f0 e0 00 00 00 00 00 00 00 00 00 00 00
c0 c0 c0 c0 c0 c0 ff ff 00 00 00 00 00 00 00 00
c0 e0 70 38 1c 0e 07 03 00 00 00 00 00 00 00 00
03 07 0e 1c 38 70 e0 c0 00 00 00 00 00 00 00 00
ff ff c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00
ff ff 03 03 03 03 03 03 00 00 00 00 00 00 00 00
00 3c 7e 7e 7e 7e 3c 00 00 00 00 00 00 00 00 00
00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00 00
36 7f 7f 7f 3e 1c 08 00 00 00 00 00 00 00 00 00
60 60 60 60 60 60 60 60 00 00 00 00 00 00 00 00
00 00 00 07 0f 1c 18 18 00 00 00 00 00 00 00 00
c3 e7 7e 3c 3c 7e e7 c3 00 00 00 00 00 00 00 00
00 3c 7e 66 66 7e 3c 00 00 00 00 00 00 00 00 00
18 18 66 66 18 18 3c 00 00 00 00 00 00 00 00 00
06 06 06 06 06 06 06 06 00 00 00 00 00 00 00 00
08 1c 3e 7f 3e 1c 08 00 00 00 00 00 00 00 00 00
18 18 18 ff ff 18 18 18 00 00 00 00 00 00 00 00
c0 c0 30 30 c0 c0 30 30 00 00 00 00 00 00 00 00
18 18 18 18 18 18 18 18 00 00 00 00 00 00 00 00
00 00 03 3e 76 36 36 00 00 00 00 00 00 00 00 00
ff 7f 3f 1f 0f 07 03 01 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 f0 f0 f0 f0 00 00 00 00 00 00 00 00
00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00
ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00
cc cc 33 33 cc cc 33 33 00 00 00 00 00 00 00 00
03 03 03 03 03 03 03 03 00 00 00 00 00 00 00 00
00 00 00 00 cc cc 33 33 00 00 00 00 00 00 00 00
ff fe fc f8 f0 e0 c0 80 00 00 00 00 00 00 00 00
03 03 03 03 03 03 03 03 00 00 00 00 00 00 00 00
18 18 18 1f 1f 18 18 18 00 00 00 00 00 00 00 00
00 00 00 00 0f 0f 0f 0f 00 00 00 00 00 00 00 00
18 18 18 1f 1f 00 00 00 00 00 00 00 00 00 00 00
00 00 00 f8 f8 18 18 18 00 00 00 00 00 00 00 00
00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 00
00 00 00 1f 1f 18 18 18 00 00 00 00 00 00 00 00
18 18 18 ff ff 00 00 00 00 00 00 00 00 00 00 00
00 00 00 ff ff 18 18 18 00 00 00 00 00 00 00 00
18 18 18 f8 f8 18 18 18 00 00 00 00 00 00 00 00
c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 00 00 00 00 00
e0 e0 e0 e0 e0 e0 e0 e0 00 00 00 00 00 00 00 00
07 07 07 07 07 07 07 07 00 00 00 00 00 00 00 00
ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 ff ff ff 00 00 00 00 00 00 00 00
03 03 03 03 03 03 ff ff 00 00 00 00 00 00 00 00
00 00 00 00 f0 f0 f0 f0 00 00 00 00 00 00 00 00
0f 0f 0f 0f 00 00 00 00 00 00 00 00 00 00 00 00
18 18 18 f8 f8 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 00 00 00 00 00 00 00 00 00 00 00 00
f0 f0 f0 f0 0f 0f 0f 0f 00 00 00 00 00 00 00 00