This page contains notes for the game The Brain (MSX).
MSX-BASIC Listing#
This is the de-tokenized form of the MSX-BASIC code contained in the ROM.
10 '***********************************
20 '***** *****
30 '***** The BRAIN *****
40 '*****Copyright (C) 1983 ASCII *****
50 '***** Written by H.Nagahara *****
60 '***** on August 29 1983 *****
70 '*****Music compose by M.Ohkuma*****
80 '***** Thank you *****
90 '***** *****
95 '***********************************
100 '--init--
110 CLEAR2000:COLOR15,1,1:SCREEN1,2,0:KEYOFF:WIDTH32:DEFINTA-Z
120 DIM KS(1,8),PX(7),PY(7),SX(7),SY(7),SC(7),SC$(7),SM$(7),SQ(1000),MT(1,3),TN(6),NM$(6),SP$(3),MS$(1,1),ML$(1,1)
130 RESTORE 60000
140 FOR I=0 TO 3:SP$(I)="":FOR J=0 TO 31:READ W$:W=VAL("&H"+W$):SP$(I)=SP$(I)+CHR$(W):NEXT:NEXT
150 DEFFNR(Z)=RND(1)*(Z+1)
160 MS$(0,0)=CHR$(&HA4)+CHR$(&HA5):MS$(0,1)=CHR$(&HA6)+CHR$(&HA7)
170 MS$(1,0)=CHR$(&HAC)+CHR$(&HAD):MS$(1,1)=CHR$(&HAE)+CHR$(&HAF)
180 ML$(0,0)=CHR$(&HA4)+STRING$(4,&HA3)+CHR$(&HA5):ML$(0,1)=CHR$(&HA6)+STRING$(4,&HA2)+CHR$(&HA7)
190 ML$(1,0)=CHR$(&HAC)+STRING$(4,&HAB)+CHR$(&HAD):ML$(1,1)=CHR$(&HAE)+STRING$(4,&HAA)+CHR$(&HAF)
200 I=RND(-TIME)
1000 '--game--
1010 GOSUB8333:I=RND(-TIME):'demo
1020 ON N-1 GOTO 54000,55000,56000,57000,58000,14866
1030 RESTORE53000:GOTO6432
1040 RESTORE54000:GOTO6432
1050 RESTORE55000:GOTO6432
1060 RESTORE56000:GOTO6432
1070 RESTORE57000:GOTO6432
1080 RESTORE58000
1090 FOR I=0 TO1:FOR J=0 TO 8:READ KS(I,J):NEXT:NEXT
1100 FOR I=0 TO N:READ PX(I),PY(I):NEXT
1110 FOR I=0 TO N:READ SX(I),SY(I):NEXT
1120 FOR I=0 TO N:READ SC(I):READ W$:SC$(I)=CHR$(VAL("&h"+W$)):READ SM$(I):NEXT
1130 FOR I=0 TO 1:FOR J=0 TO 3:READ MT(I,J):NEXT:NEXT
1135 FOR I=1 TO PN:TN(I)=0:NEXT
1140 GOSUB 8331:'play
1150 GOSUB 30010:'ending
1160 LOCATE7,20:PRINT"Hit CR key to start";:LOCATE 3,21:PRINT"with same players & sells";:LOCATE 8,22:PRINT"Othewise any key";
1165 FOR I=1 TO 255:W$=INKEY$:NEXT
1170 W=0:FOR I=1 TO 5000
1180 W$=INKEY$:IF W$=CHR$(13) THEN W=-1
1185 IF W$<>"" THEN I=20000
1190 NEXT
1200 IF W THEN 17933 ELSE 25830
10000 '--demo--
10010 GOSUB 35883:'title
10020 IF W THEN 10105
10030 GOSUB 11565:'instraction
10040 IF W THEN 10105
10050 GOSUB 16640:'demo play
10060 IF W THEN 10105
10070 GOTO 9350
10100 'get name..
10105 FOR I=1 TO 200:W$=INKEY$:NEXT
10110 COLOR15,1,12:SCREEN1:WIDTH32
10120 LOCATE 7,0:PRINT"--- The BRAIN ---";
10130 LOCATE2,3:PRINT"How many sells do you try?";:LOCATE6,4:W$="":INPUT "(3-8)";W$
10140 IF W$="" THEN W$="4"
10150 N=VAL(W$):IF N<3 OR N>8 THEN 25971
10155 LOCATE 11,4:PRINTN;SPACE$(10);
10160 LOCATE2,6:PRINT"How many players(1-6)";:W$="":W$="":INPUT W$
10170 IF W$="" THEN W$="1"
10180 PN=VAL(W$):IF PN<1 OR PN>6 THEN 27760
10185 LOCATE 23,6:PRINTPN;SPACE$(10);
10190 LOCATE 2,8:PRINT"Input names within 5 letters.";
10200 FOR I=1 TO PN
10210 LOCATE 3,I*2+8:PRINT USING "Player##:";I;:W$="":INPUT W$
10220 IF W$="" THEN W$="Man"+STR$(I)
10230 NM$(I)=LEFT$(W$,5):LOCATE12,I*2+8:PRINT NM$(I);SPACE$(20);
10240 NEXT
10250 N=N-1
10260 IF SD=1 OR N<4 THEN 11565
10270 LOCATE 2,22:PRINT "Use numerical key? (y/n)";:W$=INPUT$(1)
10280 IF W$="y" OR W$="Y" THEN PD=2:GOTO 22304
10290 IF W$="n" OR W$="N" OR W$=CHR$(13) THEN 22304
10295 GOTO 25965
10300 LOCATE 26,22:IF PD=2 THEN W$="Yes" ELSE W$="No"
10310 PRINT W$;
10320 RETURN
11000 '--title--
11010 RESTORE40000:COLOR15,4,7:SCREEN2,2,0:CLS:OPEN"GRP:"AS#1
11020 COLOR 3
11030 FOR Y=10 TO 39
11040 DRAW"C3BM80,=Y;":RF=-1:GOSUB11565
11050 READ W:IF W=0 THEN 61273
11060 IF RF THEN DRAW"R=W;" ELSE DRAW"BR=W;"
11070 RF=NOT(RF):GOTO35436
11080 NEXT
11090 COLOR 9
11100 FOR Y=45 TO 99
11110 DRAW"C9BM0,=Y;":RF=-1:GOSUB11565
11120 READ W:IF W=0 THEN 26478
11130 IF RF THEN DRAW"C9R=W;" ELSE DRAW"BR=W;"
11140 RF=NOT(RF):GOTO35565
11150 NEXT
11170 W$="Challenge the limit of your memory":COLOR 1
11180 FOR I=1 TO LEN(W$)
11190 PSET(24+6*I,102),4:PRINT#1,MID$(W$,I,1);
11200 NEXT
11210 W$="Copyright (C) 1983 ASCII"
11220 FOR I=1 TO LEN(W$)
11230 PSET(45+6*I,130),4:PRINT#1,MID$(W$,I,1);
11240 NEXT
11241 W$="Hit space to start"
11242 FOR I=1 TO LEN(W$)
11243 PSET(74+5*I,160),4:PRINT#1,MID$(W$,I,1);
11244 NEXT
11250 CLOSE #1:FOR J=1 TO 1500:GOSUB11565:NEXT:W=0
11260 RETURN
12000 '--instruction--
12010 COLOR 15,3,3:SCREEN1:WIDTH30:CLS
12015 VPOKE BASE(6)+4,&H80
12020 LOCATE 8,1:PRINT"$ The BRAIN $"
12030 LOCATE 3,3:PRINT"BRAINê ëàŸÙ îÞã,":PRINT:PRINT" ëà ÞýêÞýæ ŸÙæÞà ·°"
12040 PRINT:PRINT" ãõ ¹Þ°ÑãÞ."
12050 LOCATE 3,10:PRINT"&&ŒÞ®²¥œÃš¯žé âà":PRINT
12060 PRINT" é4âéŸÙê éîæ œÃšžä æø ãÞï¡ àé 1~4âéŸÙê ÎÞÀÝåÞ÷ àä æø ãÞï¡":PRINT
12070 PRINT" &&·°ÎÞ°ÄÞé âà":PRINT
12080 PRINT" ¶°¿Ù·°äœÍß°œ·°â〜Ú¯žä åÞöæ æø ï¡ ŸÙÞ4Þ ùäê 1~8é·°âãó æø ãÞï¡"
12090 LOCATE 6,23:PRINT"Push space or buttan";
12100 FOR I=1 TO 3500:GOSUB11565:NEXT
12110 LOCATE 0,10:FORY=10TO22:PRINTSPACE$(30);:NEXT
12120 LOCATE 2,10:PRINT"&&ëäøãÞ ìÞä":PRINT
12130 PRINT" à÷ŸÙê ºÝËß°ÀÞ òï¡":PRINT
12140 PRINT" &&ìàøÞãÞ ìÞä":PRINT
12150 PRINT" éŸÙê ºÝËß°ÀÞòï¡ âÞ÷ê ÞæàÞã ÌßÚ²àëäÞ 1âéŸÙâã àÞ¡ ïáÞùä éëäê ÌßÚ²ãÞå åøï¡"
12160 FOR I=1 TO 3500:GOSUB11565:NEXT
12170 LOCATE 0,10:FORY=10TO22:PRINTSPACE$(30);:NEXT
12180 LOCATE 2,10:PRINT"&&äãý":PRINT
12190 PRINT" ààÞ·° àëÞæ ŸÙéÞæ ÞàäãýÞ à÷úï¡":PRINT
12200 PRINT" ãê åàé ø àòãðãàÞ¡"
12210 FOR I=1 TO 3500:GOSUB11565:NEXT
12220 W=0:RETURN
13000 '--demo play--
13010 N=INT(RND(1)*6)+2:PN=1:NM$(1)="Demo":TN(1)=0
13020 ON N-1 GOTO 54000,55000,56000,57000,58000,14866
13030 RESTORE53000:GOTO6432
13040 RESTORE54000:GOTO6432
13050 RESTORE55000:GOTO6432
13060 RESTORE56000:GOTO6432
13070 RESTORE57000:GOTO6432
13080 RESTORE58000
13090 FOR I=0 TO1:FOR J=0 TO 8:READ KS(I,J):NEXT:GOSUB11565:NEXT
13100 FOR I=0 TO N:READ PX(I),PY(I):NEXT
13110 FOR I=0 TO N:READ SX(I),SY(I):NEXT
13120 FOR I=0 TO N:READ SC(I):READ W$:SC$(I)=CHR$(VAL("&h"+W$)):READ SM$(I):NEXT
13130 FOR I=0 TO 1:FOR J=0 TO 3:READ MT(I,J):NEXT:GOSUB11565:NEXT
13150 FOR I=1 TO 5:SQ(I)=FNR(N):GOSUB 11565:NEXT:NN=5:PD=0
13160 GOSUB 21010:TM$="80":L$="8":PLAY"V4"
13165 LOCATE 1,23:PRINT"Hit space to start";
13170 GOSUB 39620:GOSUB 11565
13175 LOCATE20,11:PRINT"Demo";:LOCATE 20,11:PRINT"Input ans";:
13177 FOR J=1 TO 500:GOSUB11565:NEXT
13180 FOR I=2 TO 3:SPRITE$(I)=SP$(I):NEXT
13190 FOR I=1 TO NN
13200 GOSUB 11565
13210 S=SQ(I):X=PX(S):Y=PY(S)
13215 IF S>3 THEN ST=1:GOSUB 41116
13220 IF S<4 THEN Y=Y+18:SP=2 ELSE Y=Y-18:SP=3
13230 PUT SPRITE 10,(X,Y),5,SP
13240 PUT SPRITE S,,SC(S),1
13245 VPOKE BASE(6)+ASC(SC$(S))\8,&HE1
13250 W$="T100"+SM$(S):PLAY W$
13260 IF PLAY(0) THEN GOSUB 11565:GOTO 3360
13265 VPOKE BASE(6)+ASC(SC$(S))\8,SC(S)*16+1
13270 PUT SPRITE S,,1,0:PUT SPRITE 10,(0,207),0
13272 TN(1)=TN(1)+N-(N>3):LOCATE 29,17:PRINTUSING"###";TN(1);
13275 IF S>3 THEN ST=0:GOSUB 41116
13280 NEXT
13285 FOR J=1 TO 400:GOSUB 11565:NEXT
13290 NN=NN+1:SQ(NN)=FNR(N)
13300 IF NN<10 THEN 4056
13310 W=0:RETURN
18000 '--set pcg--
18010 RESTORE50000
18100 A=BASE(7)
18110 FOR I=&HC0 TO &HF8 STEP 8:FOR J=0 TO 7
18111 VPOKE A+I*8+J,&HFF:READ D$:D=VAL("&H"+D$):VPOKE A+(I+1)*8+J,D
18112 NEXT:NEXT
18131 FOR I=&HA0 TO &HBF:FOR J=0 TO 7
18132 READ D$:D=VAL("&H"+D$):VPOKE A+I*8+J,D
18133 NEXT:NEXT
18140 A=BASE(6)
18150 FOR I=20 TO 31:READ D$:D=VAL("&H"+D$+"1"):VPOKE A+I,D:NEXT
18160 RETURN
19000 '--check start--
19010 IF STRIG(0) THEN PD=0:RETURN 29286
19015 IF STRIG(1) THEN PD=1:RETURN 29286
19020 RETURN
19030 W=-1:CLOSE
19040 RETURN:'from demo sub
20000 '--play--
20001 IF PN=1 THEN 20046
20002 FOR I=1 TO 5
20003 W1=INT(RND(1)*PN)+1:W2=INT(RND(1)*PN)+1:IF W1=W2 THEN 14866
20004 SWAP NM$(W1),NM$(W2)
20005 NEXT
20010 GOSUB 21010:'put
20020 NN=0:TM$="50":L$="8":PLAY"V8":P=1
20030 IF PN>1 THEN 21074
20040 'one
20050 NN=NN+1:SQ(NN)=FNR(N)
20060 GOSUB39620:'disp ans
20070 GOSUB58012:'get ans
20080 IF RI THEN 10322
20090 RETURN
20100 'some
20105 P=0:RR=0
20110 NN=1:SQ(NN)=FNR(N):DIM PL(PN):L=PN
20120 GOSUB39620:'disp ans
20130 P=P+1:IF P>PN THEN P=1
20132 IF PL(P) THEN 4847
20135 LOCATE20,P+16:PRINT CHR$(&HBE);:LOCATE21,11:PRINTNM$(P);
20140 GOSUB58012:'get ans
20150 IF NOT(RI) THEN 14864
20160 LOCATE20,11:PRINT "Select Sell ";:LOCATE20,12:PRINT " to append ! ";
20170 GOSUB40737:'get sell
20180 NN=NN+1:SQ(NN)=W:LOCATE20,P+16:PRINT " ";
20190 GOTO13312
20200 PL(P)=-1:LOCATE20,P+16:IFRR=0 THENPRINT CHR$(&HB7); ELSE PRINTCHR$(&HA1);
20210 L=L-1:IF L>1 THEN 13312
20230 FOR I=1 TO PN
20240 IF PL(I)=0 THEN P=I:I=PN
20250 NEXT:ERASE PL
20260 LOCATE 20,P+16:PRINT CHR$(&HBE);
20270 LOCATE 20,13:PRINT"Last Player!";
20280 GOTO 46592
21000 'put screen
21010 COLOR15,1,1:SCREEN1,2,0::WIDTH32:GOSUB23188
21020 LOCATE20,0:PRINT"The BRAIN";:LOCATE21,1:PRINT"(C) 1983";:LOCATE22,2:PRINT"by ASCII";
21030 ST=0:GOSUB41116:'map
21040 LOCATE21,14:PRINT"COUNT:";
21050 LOCATE20,16:PRINT"PLAYER SCORE";
21060 FOR I=1 TO PN:LOCATE21,I+16:PRINTUSING"& &--####";NM$(I),TN(I);:NEXT
21070 FOR I=0 TO N
21080 X=SX(I):Y=SY(I)
21090 FOR J=0 TO 3:LOCATE X,Y+J:PRINTSTRING$(4,SC$(I));:NEXT
21095 IF PD=2 THEN LOCATE X,Y:PRINT CHR$(ASC(SC$(I))+1);
21100 NEXT
21110 FOR I=0 TO 1:SPRITE$(I)=SP$(I):NEXT
21120 FOR I=0 TO N:PUT SPRITE I,(PX(I),PY(I)),1,0:NEXT
21130 RETURN
22000 '--disp ans--
22002 LOCATE27,14:PRINTUSING"##";NN;:LOCATE20,11:PRINTSPACE$(12);:LOCATE20,12:PRINTSPACE$(12);
22009 I=FRE(""):FOR I=1 TO 500:NEXT
22010 FOR I=1 TO NN
22020 W=SQ(I):PUT SPRITE W,,SC(W),1
22022 VPOKE BASE(6)+ASC(SC$(W))\8,&HE1
22025 W$="T"+TM$+SM$(W)+L$
22030 PLAY W$
22040 IF PLAY(0) THEN 50774
22045 VPOKE BASE(6)+ASC(SC$(W))\8,SC(W)*16+1
22050 PUT SPRITE W,,1,0
22060 NEXT
22070 W=VAL(TM$):W=W+5:IF W<=255 THEN 39982
22080 W=VAL(TM$)/2:W2=VAL(L$)*2:IF W2>64 THEN W2=64:W=255
22090 L$=MID$(STR$(W2),2)
22100 TM$=MID$(STR$(W),2)
22110 FOR I=1 TO 255:W$=INKEY$:IF W$="" THEN I=255
22120 NEXT
22130 RETURN
23000 '--get ans--
23010 LOCATE21,12:PRINT"Input ans";
23020 I=1:ST=0
23030 GOSUB40737:'get sell
23040 IF SQ(I)<>W THEN 12338
23041 TN(P)=TN(P)+N-(N>3):IFTN(P)>10000THEN RI=0:RR=-1:LOCATE 28,16+P:PRINT "GOOD";:GOTO 13135
23042 LOCATE28,16+P:PRINTUSING"####";TN(P);:I=I+1:IF I<=NN THEN 40192
23045 RI=-1
23050 PLAY "T100O4V5C","T100O4V5E","T100O4V5G":PLAY"V8"
23060 IF PLAY(0) THEN 36442
23070 RETURN
23080 RI=0
23090 W1$="T120V8O4C8.O3A16F8.G16A8.B16A8.G16O4C8.O3A16F8.G16A8.B16A8.G16"
23091 W2$="T120V5O3C8E8G8E8G8E8G8C8E8G8O4C8O3G8E8G8E8C8"
23092 W3$="T120V5O3CO2GO3CO2GO3CO2GO3CO2G"
23093 W4$="O4F8.D16F8.D16F8.E16C8.O3B16O4C2."
23094 W5$="O4C8O3B8A8F8A8B8C8D8C64B64C64B64C64B64C64B64C64B64C64B64C64B64C64B64C64B64"
23095 W6$="O3ECECC2."
23096 PLAY W1$,W2$,W3$:PLAY W4$,W5$,W6$
23100 PLAY "V8","V8","V8"
23106 IF PLAY(0) THEN 36442
23110 RETURN
24000 '--get sell--
24005 IF PD<>2 THEN 61268
24006 W$=INKEY$:IF W$="" THEN 40754
24007 W=VAL(W$):IF W<1 OR W>N+1 THEN 40754
24008 W=W-1:GOTO 63391
24010 GOSUB41116:'map
24020 T=STRIG(PD):IF T<>ST THEN ST=T:GOSUB41116
24030 S=STICK(PD):W=KS(ABS(T),S)
24040 IF W<0 THEN 55840
24050 PUT SPRITE W,,SC(W),1
24055 VPOKE BASE(6)+ASC(SC$(W))\8,&HE1
24060 PLAY "T200"+SM$(W)
24070 IF PLAY(0) THEN 35678
24075 IF PD=2 THEN 64553
24080 IF STICK(PD)=S THEN 25088
24085 VPOKE BASE(6)+ASC(SC$(W))\8,SC(W)*16+1
24090 PUT SPRITE W,,1,0
24100 RETURN
25000 '--disp map--
25005 IF PD=2 THEN 11623
25010 Z=ABS(ST)
25020 K=MT(Z,0):LOCATE28,4:PRINTMS$(K,0);:LOCATE28,5:PRINTMS$(K,1);
25030 K=MT(Z,1):LOCATE26,6:PRINTMS$(K,0);:LOCATE26,7:PRINTMS$(K,1);
25040 K=MT(Z,2):LOCATE30,6:PRINTMS$(K,0);:LOCATE30,7:PRINTMS$(K,1);
25045 K=MT(Z,3):LOCATE28,8:PRINTMS$(K,0);:LOCATE28,9:PRINTMS$(K,1);
25050 LOCATE20,8:PRINTML$(Z,0);:LOCATE20,9:PRINTML$(Z,1);
25130 RETURN
30000 '--ending--
30010 COLOR15,12,6:SCREEN1:WIDTH30
30015 IF PN=1 THEN 21058
30020 FOR I=1 TO PN-1:FOR J=I+1 TO PN
30030 IF TN(I)<TN(J) THEN SWAP TN(I),TN(J):SWAP NM$(I),NM$(J)
30040 NEXT:NEXT
30050 LOCATE 7,1:PRINT"*** The BRAIN ***";
30060 LOCATE 8,5:PRINT"Player Score";
30070 FOR I=1 TO PN
30080 LOCATE 9,I*2+5:PRINT USING "& &¥¥¥¥#####";NM$(I),TN(I);
30085 IF TN(I)>10000 THEN LOCATE 14,I*2+6:PRINT "êÞ÷ !!";
30090 NEXT
30100 RETURN
40000 '--title1--
40010 DATA 90,0
40020 DATA 90,0
40030 DATA 90,0
40040 DATA 90,0
40050 DATA 3,24,8,4,12,4,10,20,5,0
40060 DATA 3,24,8,4,12,4,10,20,5,0
40070 DATA 3,24,8,4,12,4,10,20,5,0
40080 DATA 14,3,18,4,12,4,10,3,22,0
40090 DATA 14,3,18,4,12,4,10,3,22,0
40100 DATA 14,3,18,4,12,4,10,3,22,0
40110 DATA 14,3,18,4,12,4,10,3,22,0
40120 DATA 14,3,18,4,12,4,10,3,22,0
40130 DATA 14,3,18,4,12,4,10,3,22,0
40140 DATA 14,3,18,4,12,4,10,3,22,0
40150 DATA 14,3,18,20,10,17,8,0
40160 DATA 14,3,18,20,10,17,8,0
40170 DATA 14,3,18,20,10,17,8,0
40180 DATA 14,3,18,4,12,4,10,3,22,0
40190 DATA 14,3,18,4,12,4,10,3,22,0
40200 DATA 14,3,18,4,12,4,10,3,22,0
40210 DATA 14,3,18,4,12,4,10,3,22,0
40220 DATA 14,3,18,4,12,4,10,3,22,0
40230 DATA 14,3,18,4,12,4,10,3,22,0
40240 DATA 14,3,18,4,12,4,10,20,5,0
40250 DATA 14,3,18,4,12,4,10,20,5,0
40260 DATA 14,3,18,4,12,4,10,20,5,0
40270 DATA 90,0
40280 DATA 90,0
40290 DATA 90,0
40300 DATA 90,0
40310 '--title2--
40320 DATA 255,0
40330 DATA 255,0
40340 DATA 255,0
40350 DATA 255,0
40360 DATA 255,0
40361 DATA 255,0
40370 DATA 10,29,21,28,41,2,34,30,15,12,16,12,6,0
40380 DATA 10,31,19,31,38,2,34,30,15,12,16,12,6,0
40390 DATA 10,32,18,34,35,2,34,30,15,12,16,12,6,0
40400 DATA 10,34,16,35,33,4,33,30,15,12,16,12,6,0
40410 DATA 10,35,15,36,32,4,33,30,15,12,16,12,6,0
40420 DATA 10,36,14,39,28,6,32,30,15,12,16,12,6,0
40430 DATA 10,36,14,39,28,6,32,30,15,12,16,12,6,0
40440 DATA 10,37,13,39,27,8,31,30,15,13,15,12,6,0
40450 DATA 10,37,13,40,26,8,31,30,15,14,14,12,6,0
40460 DATA 10,38,12,40,26,8,31,30,15,15,13,12,6,0
40470 DATA 10,38,12,40,25,10,35,20,20,16,12,12,6,0
40480 DATA 10,37,13,40,25,10,35,20,20,17,11,12,6,0
40490 DATA 10,37,13,40,24,12,34,20,20,18,10,12,6,0
40500 DATA 10,37,13,40,24,12,34,20,20,19,9,12,6,0
40510 DATA 10,36,14,40,24,12,34,20,20,20,8,12,6,0
40520 DATA 10,36,14,40,23,14,33,20,20,21,7,12,6,0
40530 DATA 10,36,14,40,23,14,33,20,20,22,6,12,6,0
40540 DATA 10,35,15,40,22,16,32,20,20,23,5,12,6,0
40550 DATA 10,35,15,39,23,16,32,20,20,24,4,12,6,0
40560 DATA 10,33,17,38,23,18,31,20,20,25,3,12,6,0
40570 DATA 10,31,19,37,24,18,31,20,20,26,2,12,6,0
40580 DATA 10,30,20,36,24,20,30,20,20,27,1,12,6,0
40590 DATA 10,31,19,35,25,20,30,20,20,40,6,0
40600 DATA 10,33,17,34,26,20,30,20,20,40,6,0
40610 DATA 10,36,14,30,29,22,29,20,20,12,1,27,6,0
40620 DATA 10,37,13,12,6,12,29,22,29,20,20,12,2,26,6,0
40630 DATA 10,38,12,12,6,12,28,24,28,20,20,12,3,25,6,0
40640 DATA 10,39,11,12,7,11,28,24,28,20,20,12,4,24,6,0
40650 DATA 10,39,11,12,7,11,27,26,27,20,20,12,5,23,6,0
40660 DATA 10,40,10,12,8,10,27,26,27,20,20,12,6,22,6,0
40665 DATA 10,40,10,12,9,10,25,28,26,20,20,12,8,20,6,0
40670 DATA 10,40,10,12,10,10,24,28,26,20,20,12,9,19,6,0
40680 DATA 10,40,10,12,11,10,22,30,25,20,20,12,10,18,6,0
40690 DATA 10,40,10,12,11,10,22,30,25,20,20,12,11,17,6,0
40700 DATA 10,40,10,12,11,11,20,32,19,30,15,12,12,16,6,0
40710 DATA 10,40,10,12,11,12,19,32,19,30,15,12,13,15,6,0
40720 DATA 10,40,10,12,11,12,18,34,18,30,15,12,14,14,6,0
40730 DATA 10,39,11,12,11,13,17,34,18,30,15,12,15,13,6,0
40740 DATA 10,39,11,12,11,13,17,34,18,30,15,12,16,12,6,0
40750 DATA 10,38,12,12,11,14,15,36,17,30,15,12,16,12,6,0
40760 DATA 10,37,13,12,11,15,14,36,17,30,15,12,16,12,6,0
40770 DATA 10,36,14,12,11,15,13,38,16,30,15,12,16,12,6,0
40780 DATA 10,35,15,12,11,16,12,38,16,30,15,12,16,12,6,0
40790 DATA 10,33,17,12,11,17,10,40,15,30,15,12,16,12,6,0
40800 DATA 255,0
40810 DATA 255,0
40820 DATA 255,0
40830 DATA 255,0
40840 DATA 255,0
50000 '--font--
50010 DATA FF,C1,BE,BE,F9,E7,DF,80
50020 DATA FF,80,BF,BF,81,FE,BE,C1
50030 DATA FF,C1,BE,FE,E1,FE,BE,C1
50040 DATA FF,F7,E7,D7,F7,F7,F7,C3
50050 DATA FF,FB,F3,EB,DB,80,FB,FB
50060 DATA FF,C1,BE,BF,81,BE,BE,C1
50070 DATA FF,C1,BE,BE,C1,BE,BE,C1
50080 DATA FF,81,BE,FE,FD,FB,F7,EF
50090 DATA FF,FF,FF,FF,FF,FF,FF,FF
50100 DATA 18,99,BD,6E,76,7E,7E,00
50110 DATA 00,00,00,00,00,FF,00,00
50120 DATA 00,00,FF,00,00,00,00,00
50130 DATA 00,00,3F,20,20,20,20,20
50140 DATA 00,00,FC,04,04,04,04,04
50150 DATA 20,20,20,20,20,3F,00,00
50160 DATA 04,04,04,04,04,FC,00,00
50250 DATA FF,FF,FF,FF,FF,FF,FF,FF
50260 DATA 00,00,00,00,00,00,00,00
50270 DATA FF,FF,FF,FF,FF,FF,00,00
50280 DATA 00,00,FF,FF,FF,FF,FF,FF
50290 DATA 00,00,3F,3F,3F,3F,3F,3F
50300 DATA 00,00,FC,FC,FC,FC,FC,FC
50310 DATA 3F,3F,3F,3F,3F,3F,00,00
50320 DATA FC,FC,FC,FC,FC,FC,00,00
50410 DATA FF,FF,FF,FF,FF,FF,FF,FF
50420 DATA 00,00,00,00,00,00,00,00
50430 DATA 00,00,00,00,00,00,00,00
50440 DATA 00,00,00,00,00,00,00,00
50450 DATA 00,00,00,00,00,00,00,00
50460 DATA 00,00,00,00,00,00,00,00
50470 DATA 00,00,00,00,00,00,00,00
50480 DATA 3C,7E,5A,7E,3C,3C,18,00
50570 DATA FF,FF,FF,FF,FF,FF,FF,FF
50580 DATA 00,00,00,00,00,00,00,00
50590 DATA 00,00,00,00,00,00,00,00
50600 DATA 00,00,00,00,00,00,00,00
50610 DATA 00,00,00,00,00,00,00,00
50620 DATA 00,00,00,00,00,00,00,00
50630 DATA 08,04,02,FF,02,04,08,00
50640 DATA FF,FF,FF,FF,FF,FF,FF,FF
50650 '--color--
50660 DATA D,8,7,C,4,D,A,8,2,7,9,C
53000 '--3 sells--
53010 DATA -1,0,-1,2,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
53020 DATA 72,40,24,104,120,104
53030 DATA 8,4,2,12,14,12
53040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G
53050 DATA 1,1,1,0,0,0,0,0
54000 '--4 sells--
54010 DATA -1,0,-1,2,-1,3,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
54020 DATA 72,40,24,88,120,88,72,136
54030 DATA 8,4,2,10,14,10,8,16
54040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G,2,E0,O3B
54050 DATA 1,1,1,1,0,0,0,0
55000 '--5 sells--
55010 DATA -1,0,-1,2,-1,3,-1,1,-1,-1,4,-1,-1,-1,-1,-1,-1,-1
55020 DATA 72,16,32,56,112,56,72,96,72,152
55030 DATA 8,1,3,6,13,6,8,11,8,18
55040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G,2,E0,O3B,13,C8,O5C
55050 DATA 1,1,1,1,1,0,0,0
56000 '--6 sells--
56010 DATA -1,0,-1,2,-1,3,-1,1,-1,-1,-1,-1,5,-1,-1,-1,4,-1
56020 DATA 72,16,32,56,112,56,72,96,32,152,112,152
56030 DATA 8,1,3,6,13,6,8,11,3,18,13,18
56040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G,2,E0,O3B,13,C8,O5C,7,E8,O5E
56050 DATA 1,1,1,1,0,1,1,0
57000 '--7 sells--
57010 DATA -1,0,-1,2,-1,3,-1,1,-1,-1,4,-1,6,-1,-1,-1,5,-1
57020 DATA 72,8,32,40,112,40,72,72,72,128,32,160,112,160
57030 DATA 8,0,3,4,13,4,8,8,8,15,3,19,13,19
57040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G,2,E0,O3B,13,C8,O5C,7,E8,O5E,12,F8,O5G
57050 DATA 1,1,1,1,1,1,1,0
58000 '--8 sells--
58010 DATA -1,0,-1,2,-1,3,-1,1,-1,-1,4,-1,6,-1,7,-1,5,-1
58020 DATA 72,8,32,32,112,32,72,56,72,112,32,136,112,136,72,160
58030 DATA 8,0,3,3,13,3,8,6,8,13,3,16,13,16,8,19
58040 DATA 8,D8,O3C,4,C0,O3E,10,D0,O3G,2,E0,O3B,13,C8,O5C,7,E8,O5E,12,F8,O5G,9,F0,O5B
58050 DATA 1,1,1,1,1,1,1,1
60000 '--sprite--
60010 DATA 02,05,25,55,55,48,40,20,10,08,08,09,09,09,09,09,20,50,52,55,55,89,01,02,04,08,88,48,48,48,48,48
60020 DATA FD,FA,DA,AA,AA,B7,BF,DF,EF,F7,F7,F6,F6,F6,F6,F6,DF,AF,AD,AA,AA,76,FE,FD,FB,F7,77,B7,B7,B7,B7,B7
60030 DATA 30,30,30,30,30,3F,3F,7F,7F,3F,1F,0F,0F,0F,0F,0F,00,00,00,00,00,00,F8,F8,F8,F8,F0,F0,F0,F0,F0,F0
60040 DATA 0F,0F,0F,0F,0F,0F,1F,1F,1F,1F,00,00,00,00,00,00,F0,F0,F0,F0,F0,F8,FC,FE,FE,FC,FC,0C,0C,0C,0C,0C