From 0ac15218136593ac931a54ba01c067b62dc3cfb7 Mon Sep 17 00:00:00 2001 From: d6 Date: Sat, 10 Sep 2022 22:07:58 -0400 Subject: [PATCH] more work --- ff.tal | 522 +++++++++++++++++++++++---------------------------------- 1 file changed, 214 insertions(+), 308 deletions(-) diff --git a/ff.tal b/ff.tal index dfa0853..de6e166 100644 --- a/ff.tal +++ b/ff.tal @@ -19,9 +19,12 @@ ( variables ) |0000 + @draw-mode $1 ( program ) |0100 + #81 .draw-mode STZ + ;redraw .Screen/vector DEO2 ( set up screen ) ;on-key .Controller/vector DEO2 ( set up keyboard ) ;init-rng JSR2 ( initialize rng ) @@ -33,59 +36,146 @@ #0cd5 .System/g DEO2 #0b66 .System/b DEO2 - #0000 #0000 #1e #10 ;draw-box JSR2 - #0000 #0090 #09 #08 ;draw-box JSR2 - #0058 #0090 #08 #08 ;draw-box JSR2 + + ;draw-scene 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 + #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 - #00d8 #0040 ;goto JSR2 #07 ;draw-sprite-23 JSR2 - #00d8 #0058 ;goto JSR2 #11 ;draw-sprite-23 JSR2 - #00d8 #0070 ;goto JSR2 #0a ;draw-sprite-23 JSR2 +@draw-scene ( -> ) + #0000 #0000 #1e #10 ;draw-box JSR2 + ;draw-party-sprites 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 #0068 #0098 ;goto JSR2 ;fight ;draw-string JSR2 #0068 #00a0 ;goto JSR2 ;run ;draw-string JSR2 #0068 #00a8 ;goto JSR2 ;magic ;draw-string JSR2 #0068 #00b0 ;goto JSR2 ;drink ;draw-string JSR2 #0068 #00b8 ;goto JSR2 ;item ;draw-string JSR2 + JMP2r - #0008 #0098 ;goto JSR2 ;imp ;draw-string JSR2 - #0008 #00a0 ;goto JSR2 ;wolf ;draw-string JSR2 +@draw-monsters ( -> ) + #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 - #00b0 #00a0 ;goto JSR2 ;asta-2 ;draw-string JSR2 - #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* -> ) +@load-tile ( offset* base* -> ) + STH2 #00 SWP #40 SFT2 - ;petscii ADD2 .Screen/addr DEO2 + STH2r ( ;petscii ) ADD2 .Screen/addr DEO2 JMP2r @draw ( -> ) #81 .Screen/sprite DEO JMP2r @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^ -> ) - 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 - 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 + ,&rows STR ,&cols STR STH + #00 + &row-loop + #00 + &col-loop + STHkr ;draw-sprite-tile JSR2 INCr + INC DUP ,&cols LDR LTH ,&col-loop JCN + POP INC + .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* -> ) .Screen/y DEO2 .Screen/x DEO2 JMP2r @@ -97,27 +187,34 @@ STH2kr LDA DUP ,&continue JCN POP POP2r JMP2r &continue - #20 SUB ;draw-tile JSR2 +( #20 SUB ;draw-tile JSR2 ) + ;draw-ascii JSR2 INC2r ,&loop JMP @vertical-line ( count^ -> ) + .draw-mode LDZ STH #02 .Screen/auto DEO - TILE-VERT ;load-tile JSR2 + TILE-VERT ;petscii ;load-tile JSR2 #00 SWP SUB - &loop ;draw JSR2 INC DUP ,&loop JCN POP + &loop STHkr .Screen/sprite DEO INC DUP ,&loop JCN + POP POPr JMP2r @horizontal-line ( count^ -> ) + .draw-mode LDZ STH #01 .Screen/auto DEO - TILE-HORIZ ;load-tile JSR2 + TILE-HORIZ ;petscii ;load-tile JSR2 #00 SWP SUB - &loop ;draw JSR2 INC DUP ,&loop JCN POP + &loop STHkr .Screen/sprite DEO INC DUP ,&loop JCN + POP POPr 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 + #83 .draw-mode STZ + ( top line ) #01 .Screen/auto DEO ,&x LDR2 .Screen/x DEO2 @@ -175,7 +272,7 @@ ( draw a random sprite with a random style ) @draw-random-sprite - ;rng JSR2 NIP ;load-tile JSR2 + ;rng JSR2 NIP ;petscii ;load-tile JSR2 #81 .Screen/sprite DEO JMP2r @@ -211,14 +308,6 @@ JMP2r [ &x $2 &y $2 ] ( v ) ( 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 @run "run 00 @@ -229,272 +318,89 @@ @imp "imp 00 @wolf "wolf 00 -( pc stats: ) +( pc stats: 13 bytes per hero ) ( - 1 byte: class ) -( - 5 bytes: name ) +( - 8 bytes: name ) ( - 2 bytes: cur hp ) ( - 2 bytes: max hp ) -@pc1 01 "asta 00 0024 0025 -@pc2 01 "brek 00 0011 0015 -@pc3 01 "dain 00 001c 001f -@pc4 01 "garl 00 0010 0010 +@party + 03 "asta 00 00 00 00 0024 0025 + 02 "brek 00 00 00 00 0011 0015 + 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 ) ( TODO: these could be 1-bit instead ) @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 + ~chr/petscii.tal + +( sprite tiles, 2-bit binary data ) +@sprites + ~chr/tiles.tal