nxu/ff.tal

483 lines
19 KiB
Tal
Raw Normal View History

2022-08-24 23:49:21 -04:00
( ff.tal )
%TILE-NW { #70 }
%TILE-NE { #6e }
%TILE-SE { #7d }
%TILE-SW { #6d }
%TILE-VERT { #5d }
%TILE-HORIZ { #40 }
( devices )
|00 @System [ &vector $2 &pad $6 &r $2 &g $2 &b $2 ]
|10 @Console [ &vector $2 &read $1 &pad $5 &write $1 ]
|20 @Screen [ &vector $2 &width $2 &height $2 &auto $1 &pad $1
&x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ]
|80 @Controller [ &vector $2 &button $1 &key $1 ]
|b0 @DateTime [ &y $2 &m $1 &d $1 &H $1 &M $1
&S $1 &dotw $1 &doty $2 &isdst $1 ]
( variables )
|0000
( program )
|0100
;redraw .Screen/vector DEO2 ( set up screen )
;on-key .Controller/vector DEO2 ( set up keyboard )
;init-rng JSR2 ( initialize rng )
#0100 .Screen/width DEO2 ( 256 pixels wide; 32 tiles )
#00e0 .Screen/height DEO2 ( 224 pixels high; 28 tiles )
#08f3 .System/r DEO2
#0cd5 .System/g DEO2
#0b66 .System/b DEO2
#0000 #0000 #1e #0c ;draw-box JSR2
#0000 #0070 #09 #0c ;draw-box JSR2
#0058 #0070 #08 #0c ;draw-box JSR2
#00a8 #0070 #09 #0c ;draw-box JSR2
#00e0 #0008 ;goto JSR2 #03 ;draw-sprite-23 JSR2
#00e0 #0020 ;goto JSR2 #07 ;draw-sprite-23 JSR2
#00e0 #0038 ;goto JSR2 #11 ;draw-sprite-23 JSR2
#00e0 #0050 ;goto JSR2 #0a ;draw-sprite-23 JSR2
#0060 #0080 ;goto JSR2 #1e ;draw-tile JSR2
#0068 #0080 ;goto JSR2 ;fight ;draw-string JSR2
#0068 #0090 ;goto JSR2 ;run ;draw-string JSR2
#0068 #00a0 ;goto JSR2 ;magic ;draw-string JSR2
#0068 #00b0 ;goto JSR2 ;drink ;draw-string JSR2
#0068 #00c0 ;goto JSR2 ;item ;draw-string JSR2
#0008 #0078 ;goto JSR2 ;imp ;draw-string JSR2
#0008 #0080 ;goto JSR2 ;wolf ;draw-string JSR2
#00b0 #0078 ;goto JSR2 ;asta ;draw-string JSR2
#00b0 #0080 ;goto JSR2 ;asta-2 ;draw-string JSR2
#00b0 #0090 ;goto JSR2 ;brek ;draw-string JSR2
#00b0 #0098 ;goto JSR2 ;brek-2 ;draw-string JSR2
#00b0 #00a8 ;goto JSR2 ;dain ;draw-string JSR2
#00b0 #00b0 ;goto JSR2 ;dain-2 ;draw-string JSR2
#00b0 #00c0 ;goto JSR2 ;garl ;draw-string JSR2
#00b0 #00c8 ;goto JSR2 ;garl-2 ;draw-string JSR2
BRK
@load-tile ( offset* -> )
#00 SWP #40 SFT2
;petscii ADD2 .Screen/addr DEO2
JMP2r
@draw ( -> )
#81 .Screen/sprite DEO JMP2r
@draw-tile ( index^ -> )
,load-tile JSR ,draw JMP
@draw-sprite-23 ( index^ -> )
STH
#01 .Screen/auto DEO
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2
.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2
.Screen/x DEI2 #0010 SUB2 .Screen/x DEO2
.Screen/y DEI2 #0008 ADD2 .Screen/y DEO2
STHkr ;draw-tile JSR2 STHkr ;draw-tile JSR2
POPr
JMP2r
@goto ( x* y* -> )
.Screen/y DEO2 .Screen/x DEO2 JMP2r
@draw-string ( s* -> )
STH2
#01 .Screen/auto DEO
&loop
STH2kr LDA DUP ,&continue JCN
POP POP2r JMP2r
&continue
#20 SUB ;draw-tile JSR2
INC2r ,&loop JMP
@vertical-line ( count^ -> )
#02 .Screen/auto DEO
TILE-VERT ;load-tile JSR2
#00 SWP SUB
&loop ;draw JSR2 INC DUP ,&loop JCN POP
JMP2r
@horizontal-line ( count^ -> )
#01 .Screen/auto DEO
TILE-HORIZ ;load-tile JSR2
#00 SWP SUB
&loop ;draw JSR2 INC DUP ,&loop JCN POP
JMP2r
( w and h refer to the "internal" size of the box )
@draw-box ( x* y* w^ h^ -> )
,&h STR ,&w STR ,&y STR2 ,&x STR2
( top line )
#01 .Screen/auto DEO
,&x LDR2 .Screen/x DEO2
,&y LDR2 .Screen/y DEO2
TILE-NW ;draw-tile JSR2
,&w LDR ;horizontal-line JSR2
TILE-NE ;draw-tile JSR2
( stash some variables here )
,&continue JMP
[ &x $2 &y $2 &w $1 &h $1 ]
&continue
( bottom line )
,&x LDR2 .Screen/x DEO2
,&y LDR2 #00 ,&h LDR INC2 #30 SFT2 ADD2 .Screen/y DEO2
TILE-SW ;draw-tile JSR2
,&w LDR ;horizontal-line JSR2
TILE-SE ;draw-tile JSR2
( prepare to draw vertical lines )
,&h LDR DUP
( left line )
,&x LDR2 .Screen/x DEO2
,&y LDR2 #0008 ADD2 STH2k .Screen/y DEO2
;vertical-line JSR2
( right line )
,&x LDR2 #00 ,&w LDR INC2 #30 SFT2 ADD2 .Screen/x DEO2
STH2r .Screen/y DEO2
;vertical-line JSR2
( reset )
#00 .Screen/auto DEO
JMP2r
( draw the screen )
@randomize
#01 .Screen/auto DEO ( ; auto update x pos )
#0008 ( row )
&rows ( row )
DUP2 .Screen/y DEO2 ( row ; y=row )
#0008 DUP2 .Screen/x DEO2 ( row col ; x=0 )
&cols ( row col )
;draw-random-sprite JSR2 ( ; random sprite/style )
#0008 ADD2 ( row col+8 )
DUP2 #0078 LTH2 ,&cols JCN ( row col+8 )
POP2 #0008 ADD2 ( row+8 )
DUP2 #0068 LTH2 ,&rows JCN ( row+8 )
POP2 #00 .Screen/auto DEO ( )
JMP2r ( )
( draw a random sprite with a random style )
@draw-random-sprite
;rng JSR2 NIP ;load-tile JSR2
#81 .Screen/sprite DEO
JMP2r
( redraw the screen )
@redraw
BRK
( respond to key-presses and controllers )
@on-key
;randomize JSR2
BRK
( initialize the rng seed )
( TODO: consider using date/time? )
@init-rng
#1234 ,rng/x STR2
#5678 ,rng/y STR2
JMP2r
( returns the next number in a length 4294967295 sequence. )
@rng ( -> n* )
,&x LDR2 ( x )
DUP2 #50 SFT2 EOR2 ( t=x^(x<<5) )
DUP2 #03 SFT2 EOR2 ( u=t^(t>>3) )
,&y LDR2 DUP2 ,&x STR2 ( u y ; x<-y )
DUP2 #01 SFT2 EOR2 EOR2 ( v=u^(y^(y>>1)) )
,&y STR2k POP ( v ; y<-v )
JMP2r [ &x $2 &y $2 ] ( v )
( string constants )
@asta "asta 00
@asta-2 "hp 20 "36/ 20 "37 00
@brek "brek 00
@brek-2 "hp 20 "17/ 20 "21 00
@dain "dain 00
@dain-2 "hp 20 "28/ 20 "31 00
@garl "garl 00
@garl-2 "hp 20 "16/ 20 "16 00
@fight "fight 00
@run "run 00
@magic "magic 00
@drink "drink 00
@item "item 00
@imp "imp 00
@wolf "wolf 00
( PETSCII tiles, 2-bit binary data )
@petscii
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
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