100 GOTO 2140 110 RN=INT(3*RND)+1 120 L=0 130 ON RN GOTO 140,260,200 140 CX=X1 150 NX=X1 160 CY=Y1 170 NY=Y1 180 C=96 190 GOTO 310 200 CX=X3 210 NX=X3 220 CY=Y3 230 NY=Y3 240 C=112 250 GOTO 310 260 C=104 270 CY=Y2 280 NY=Y2 290 CX=X2 300 NX=X2 310 L=L+1 320 W=ABS(CX-AX)+ABS(CY-AY) 330 Z=ABS(CX-BX)+ABS(CY-BY) 340 IF ZAX THEN 410 390 IF CX=AX THEN 420 400 NX=NX+2 410 NX=NX-1 420 IF CY>AY THEN 520 430 IF CY=AY THEN 530 440 GOTO 510 450 IF CX>BX THEN 480 460 IF CX=BX THEN 490 470 NX=NX+2 480 NX=NX-1 490 IF CY>BY THEN 520 500 IF CY=BY THEN 530 510 NY=NY+2 520 NY=NY-1 530 CALL SOUND(400,-5,20) 540 CALL GCHAR(NY,NX,Z) 550 CALL GCHAR(CY,CX,W) 560 CALL HCHAR(CY,CX,C) 570 FOR T=1 TO 9 580 NEXT T 590 CALL HCHAR(CY,CX,C+1) 600 FOR T=1 TO 9 610 NEXT T 620 CALL HCHAR(NY,NX,C+1) 630 CALL HCHAR(CY,CX,W) 640 CALL HCHAR(NY,NX,C) 650 CALL SOUND(1,-7,1) 660 IF Z<>120 THEN 680 670 KL=1 680 IF Z<>128 THEN 700 690 KL=2 700 CALL HCHAR(NY,NX,Z) 710 ON RN GOTO 720,760,800 720 X1=NX 730 Y1=NY 740 IF KL=0 THEN 840 750 RETURN 760 X2=NX 770 Y2=NY 780 IF KL=0 THEN 840 790 RETURN 800 X3=NX 810 Y3=NY 820 IF KL=0 THEN 840 830 RETURN 840 IF L=DF THEN 830 850 ON RN GOTO 140,260,200 860 FOR N=1 TO 24 870 CALL HCHAR(N,5,109,24) 880 NEXT N 890 CALL HCHAR(2,13,98) 900 CALL HCHAR(2,14,99) 910 CALL HCHAR(2,15,100) 920 CALL HCHAR(2,18,98) 930 CALL HCHAR(2,19,99) 940 CALL HCHAR(2,20,100) 950 CALL HCHAR(3,13,101) 960 CALL HCHAR(3,14,102) 970 CALL HCHAR(3,15,103) 980 CALL HCHAR(3,18,101) 990 CALL HCHAR(3,19,102) 1000 CALL HCHAR(3,20,103) 1010 CALL HCHAR(4,12,98) 1020 CALL HCHAR(4,13,99) 1030 CALL HCHAR(4,14,100) 1040 CALL HCHAR(4,19,98) 1050 CALL HCHAR(4,20,99) 1060 CALL HCHAR(4,21,100) 1070 CALL HCHAR(5,12,101) 1080 CALL HCHAR(5,13,102) 1090 CALL HCHAR(5,14,103) 1100 CALL HCHAR(5,19,101) 1110 CALL HCHAR(5,20,102) 1120 CALL HCHAR(5,21,103) 1130 CALL HCHAR(6,13,98) 1140 CALL HCHAR(6,14,99) 1150 CALL HCHAR(6,15,100) 1160 CALL HCHAR(6,18,98) 1170 CALL HCHAR(6,19,99) 1180 CALL HCHAR(6,20,100) 1190 CALL HCHAR(7,13,101) 1200 CALL HCHAR(7,14,102) 1210 CALL HCHAR(7,15,103) 1220 CALL HCHAR(7,18,101) 1230 CALL HCHAR(7,19,102) 1240 CALL HCHAR(7,20,103) 1250 CALL HCHAR(11,8,144) 1260 CALL HCHAR(11,9,145) 1270 CALL HCHAR(11,10,146) 1280 CALL HCHAR(12,8,147) 1290 CALL HCHAR(12,9,138) 1300 CALL HCHAR(12,10,148) 1310 CALL HCHAR(13,8,106) 1320 CALL HCHAR(13,9,107) 1330 CALL HCHAR(13,10,108) 1340 CALL HCHAR(11,23,152) 1350 CALL HCHAR(11,24,153) 1360 CALL HCHAR(11,25,154) 1370 CALL HCHAR(12,23,155) 1380 CALL HCHAR(12,24,130) 1390 CALL HCHAR(12,25,156) 1400 CALL HCHAR(13,23,106) 1410 CALL HCHAR(13,24,107) 1420 CALL HCHAR(13,25,108) 1430 CALL HCHAR(20,15,114) 1440 CALL HCHAR(20,16,115) 1450 CALL HCHAR(20,17,116) 1460 CALL HCHAR(20,18,117) 1470 CALL HCHAR(21,15,115) 1480 CALL HCHAR(21,16,116) 1490 CALL HCHAR(21,17,115) 1500 CALL HCHAR(21,18,116) 1510 CALL HCHAR(22,15,116) 1520 CALL HCHAR(22,16,115) 1530 CALL HCHAR(22,17,116) 1540 CALL HCHAR(22,18,115) 1550 CALL HCHAR(23,15,118) 1560 CALL HCHAR(23,16,116) 1570 CALL HCHAR(23,17,115) 1580 CALL HCHAR(23,18,119) 1590 RANDOMIZE 1600 X1=INT(7*RND)+13 1610 Y1=INT(5*RND)+2 1620 X2=INT(7*RND)+13 1630 Y2=INT(4*RND)+10 1640 X3=INT(3*RND)+15 1650 Y3=INT(3*RND)+20 1660 SA=0 1670 SB=0 1680 AX=9 1690 BX=24 1700 XB=4 1710 YB=-4 1720 W=J 1730 GOSUB 5000 1740 J=J-1 1750 IF J=1 THEN 1770 1760 J=2 1770 GOSUB 5000 1780 J=W 1790 SA=100 1800 SB=100 1810 CALL HCHAR(12,9,139) 1820 CALL HCHAR(13,9,149) 1830 CALL HCHAR(12,9,140) 1840 FOR T=0 TO 30 STEP 15 1850 CALL SOUND(-99,-7,T) 1860 NEXT T 1870 C=145 1880 FOR AY=12 TO 14 1890 CALL HCHAR(AY-1,9,C) 1900 CALL GCHAR(AY,9,C) 1910 CALL HCHAR(AY,9,120) 1920 FOR T=0 TO 30 STEP 15 1930 CALL SOUND(-99,500,T,1625,T,3375,T) 1940 NEXT T 1950 NEXT AY 1960 CALL HCHAR(12,24,131) 1970 CALL HCHAR(13,24,157) 1980 CALL HCHAR(12,24,132) 1990 FOR T=0 TO 30 STEP 15 2000 CALL SOUND(-99,-7,T) 2010 NEXT T 2020 C=153 2030 FOR BY=12 TO 14 2040 CALL HCHAR(BY-1,24,C) 2050 CALL GCHAR(BY,24,C) 2060 CALL HCHAR(BY,24,128) 2070 FOR T=0 TO 30 STEP 15 2080 CALL SOUND(-99,1000,T,3250,T,6750,T) 2090 NEXT T 2100 NEXT BY 2110 AY=14 2120 BY=14 2130 RETURN 2140 CALL CLEAR 2150 CALL SCREEN(2) 2160 DATA 96,0098BCDAFCE6FEC3,97,193D5B3F677FC300,98,04044E5FE5F1533F,99,081C1C3E0908A0E2 2170 DATA 100,02474FE2FA485C1C,101,397C7CFEFE383800,102,7277FFFF2F220200,103,3E3E7FFF9C1C0000 2180 DATA 104,FFE72400C381993C,105,666600C381993CFF,106,0080F0F0FFFFFFFF,107,0000000000FFFFFF 2190 DATA 108,00010F0FFFFFFFFF,109,FFFFFFFFFFFFFFFF,112,7EFF99DBFF81DB7E,113,7EFF99DBFFFFFF7E 2200 DATA 114,000107133E6F3BFF,115,DDF7BE6ECBF95E6C,116,22B7EE7A47EC96A3,117,80A0F0D8F0B4F8EE 2210 DATA 118,773F2D0F1B0F0501,119,FFDCF67CC8E08000,120,0002044830304800,121,007B7B7B00DEDEDE 2220 DATA 128,FFBFDFEDF3F3EDFF,129,FFC3663C3C66C3FF,141,FFFFE7C3C3E7FFFF,142,FFA5C38181C3A5FF 2230 DATA 143,6681810000818166,130,FF81BDBDBDBDBDFF,131,FF81818181FFBDFF,132,FF81818181818181 2240 DATA 144,6B7F77773E3E3637,145,00000000000066FF,146,D6FEEEEE7C7C6CEC,147,3F3F3736373F3F3F 2250 DATA 148,FCFCEC6CECFCFCFC,149,7E7E7EFFFFFFFFFF,13,4,4,2,10,4,15,16,11,13,16,7,16,2,11,2 2260 RESTORE 2160 2270 FOR N=1 TO 29 2280 READ X,G$ 2290 CALL CHAR(X,G$) 2300 NEXT N 2310 FOR N=1 TO 9 2320 READ X,G$ 2330 CALL CHAR(X,G$) 2340 CALL CHAR(X+8,G$) 2350 NEXT N 2360 FOR N=9 TO 16 2370 READ X,Y 2380 CALL COLOR(N,X,Y) 2390 NEXT N 2400 FOR N=1 TO 8 2410 CALL COLOR(N,16,1) 2420 NEXT N 2430 DIM A(8),B(8) 2440 RESTORE 2450 2450 DATA 0,0,0,4,4,4,4,0,4,-4,0,-4,-4,-4,-4,0,-4,4 2460 FOR N=0 TO 8 2470 READ A(N) 2480 READ B(N) 2490 NEXT N 2500 TA=0 2510 TB=0 2520 J=2 2530 GOSUB 860 2540 TA=0 2550 TB=0 2560 J=INT(2*RND)+1 2570 DATA 8,10,12,121,121,121,32,87,65,76,76,83,32,121,121,121,9,14,4,32,65,78,68,32 2580 DATA 10,9,14,129,129,129,32,66,82,73,68,71,69,83,32,129,129,129 2590 DATA 15,11,10,32,67,79,80,89,82,73,71,72,84,32,16,12,8,32,49,57,56,51,32,66,89,32 2600 DATA 17,10,13,32,84,73,77,65,71,73,78,65,84,73,79,78,32 2610 DATA 24,6,15,80,76,65,89,69,82,83,40,49,32,79,82,32,50,41,58 2620 DATA 24,6,18,68,73,70,70,73,67,85,76,84,89,40,49,32,84,79,32,51,41,58 2630 DATA 24,6,20,83,69,67,84,79,82,32,77,65,82,75,83,40,89,32,79,82,32,78,41,58 2640 DATA 24,6,21,65,68,86,65,78,67,69,32,76,73,77,73,84,40,49,32,84,79,32,53,41,58 2650 RESTORE 2570 2660 FOR N=1 TO 6 2670 READ Y,X,Z 2680 FOR W=X TO X+Z 2690 READ C 2700 CALL HCHAR(Y,W,C) 2710 NEXT W 2720 NEXT N 2730 Q=0 2740 Q1=0 2750 FOR N=1 TO 4 2760 READ Y,X,Z 2770 FOR W=X TO X+Z 2780 READ C 2790 CALL HCHAR(Y,W,C) 2800 NEXT W 2810 CALL KEY(3,X,S) 2820 IF S=0 THEN 2810 2830 CALL HCHAR(Y,W,X) 2840 ON N GOTO 2870,2910,2950,3020 2850 CALL SOUND(100,110,1) 2860 GOTO 2810 2870 IF X>50 THEN 2850 2880 IF X<49 THEN 2850 2890 K=X-48 2900 GOTO 3050 2910 IF X>51 THEN 2850 2920 IF X<49 THEN 2850 2930 DF=X-48 2940 GOTO 3050 2950 IF X=89 THEN 3000 2960 IF X=78 THEN 2980 2970 GOTO 2850 2980 CALL CHAR(109,"FFFFFFFFFFFFFFFF") 2990 GOTO 3050 3000 CALL CHAR(109,"FFFFFFE7E7FFFFFF") 3010 GOTO 3050 3020 IF X>53 THEN 2850 3030 IF X<49 THEN 2850 3040 LM=X-48 3050 CALL SOUND(100,2000,1) 3060 NEXT N 3070 IF Q1=1 THEN 5250 3080 GOSUB 860 3090 IF J=1 THEN 3110 3100 J=0 3110 J=J+1 3120 Q=Q+1 3130 IF Q<10 THEN 3160 3140 Q=0 3150 Q1=1 3160 N=Q+48 3170 N1=Q1+48 3180 KL=0 3190 RN=1 3200 L=DF-1 3210 GOSUB 140 3220 RN=3 3230 L=DF-1 3240 GOSUB 200 3250 L=DF-1 3260 RN=2 3270 GOSUB 260 3280 RESTORE 3290 3290 DATA 82,79,85,78,68,58 3300 FOR X=12 TO 17 3310 READ C 3320 CALL HCHAR(1,X,C) 3330 NEXT X 3340 CALL HCHAR(1,18,N1) 3350 CALL HCHAR(1,19,N) 3360 CALL SOUND(100,260,5,262,1,264,5) 3370 CALL SOUND(100,347,5,349,1,351,5) 3380 CALL SOUND(100,438,5,440,1,442,5) 3390 CALL SOUND(200,521,5,523,1,525,5) 3400 CALL SOUND(100,438,5,440,1,442,5) 3410 CALL SOUND(900,521,5,523,1,525,5) 3420 FOR X=12 TO 19 3430 CALL HCHAR(1,X,109) 3440 NEXT X 3450 FOR T=1 TO 300 3460 NEXT T 3470 IF J=2 THEN 4070 3480 J=1 3490 S=LM+1 3500 S=S-1 3510 IF S=0 THEN 3610 3520 CALL SOUND(30,-7,1) 3530 CALL HCHAR(AY,AX,S+48) 3540 FOR T=4*DF TO 12 3550 CALL JOYST(1,X,Y) 3560 NEXT T 3570 IF X<>0 THEN 3610 3580 IF Y<>0 THEN 3610 3590 CALL HCHAR(AY,AX,121) 3600 GOTO 3500 3610 S=S-1 3620 YA=AY-Y/4 3630 XA=AX+X/4 3640 IF YA<25 THEN 3660 3650 YA=1 3660 IF YA>0 THEN 3680 3670 YA=24 3680 IF XA<29 THEN 3700 3690 XA=5 3700 IF XA>4 THEN 3720 3710 XA=28 3720 CALL HCHAR(AY,AX,109) 3730 CALL GCHAR(YA,XA,C) 3740 CALL HCHAR(AY,AX,121) 3750 CALL HCHAR(YA,XA,120) 3760 AX=XA 3770 AY=YA 3780 IF C=109 THEN 3980 3790 CALL HCHAR(AY,AX,141) 3800 CALL HCHAR(AY,AX,142) 3810 CALL HCHAR(AY,AX,143) 3820 FOR W=1 TO 30 3830 CALL SOUND(100,-5,W) 3840 NEXT W 3850 CALL VCHAR(20,29,94,4) 3860 SB=SB+1 3870 GOSUB 5000 3880 CALL SOUND(200,521,5,523,1,525,5) 3890 FOR L=1 TO 3 3900 CALL SOUND(50,521,5,523,1,525,5) 3910 NEXT L 3920 CALL SOUND(200,521,5,523,1,525,5) 3930 CALL SOUND(225,438,5,440,1,442,5) 3940 CALL SOUND(250,521,5,523,1,525,5) 3950 CALL SOUND(1000,696,5,698,1,700,5) 3960 CALL VCHAR(20,29,32,4) 3970 GOTO 3070 3980 FOR W=0 TO 30 STEP 15 3990 CALL SOUND(-99,500,W,1625,W,3375,W) 4000 NEXT W 4010 SA=SA+1 4020 IF S>0 THEN 3610 4030 GOSUB 110 4040 IF KL=0 THEN 4070 4050 J=KL 4060 ON J GOTO 3790,4730 4070 J=2 4080 IF K=2 THEN 4430 4090 G=0 4100 S=0 4110 W=1 4120 L=DF*LM 4130 CALL SOUND(30,999,1) 4140 CALL HCHAR(BY,BX,63) 4150 FOR N=1 TO 8 4160 Z=0 4170 Z=Z+1 4180 XB=BX+Z*A(N)/4 4190 YB=BY-Z*B(N)/4 4200 IF YB<25 THEN 4220 4210 YB=YB-24 4220 IF YB>0 THEN 4240 4230 YB=YB+24 4240 IF XB<29 THEN 4260 4250 XB=XB-24 4260 IF XB>4 THEN 4280 4270 XB=XB+24 4280 CALL GCHAR(YB,XB,C) 4290 IF C<>109 THEN 4370 4300 T=ABS(YB-Y1)+ABS(XB-X1)+ABS(YB-Y2)+2*(Z-1) 4310 T=T+ABS(XB-X2)+ABS(YB-Y3)+ABS(XB-X3) 4320 IF T0 THEN 4550 4520 IF Y<>0 THEN 4550 4530 CALL HCHAR(BY,BX,129) 4540 GOTO 4440 4550 S=S-1 4560 YB=BY-Y/4 4570 XB=BX+X/4 4580 IF YB<25 THEN 4600 4590 YB=1 4600 IF YB>0 THEN 4620 4610 YB=24 4620 IF XB<29 THEN 4640 4630 XB=5 4640 IF XB>4 THEN 4660 4650 XB=28 4660 CALL HCHAR(BY,BX,109) 4670 CALL GCHAR(YB,XB,C) 4680 CALL HCHAR(BY,BX,129) 4690 CALL HCHAR(YB,XB,128) 4700 BX=XB 4710 BY=YB 4720 IF C=109 THEN 4910 4730 CALL HCHAR(BY,BX,141) 4740 CALL HCHAR(BY,BX,142) 4750 CALL HCHAR(BY,BX,143) 4760 FOR V=1 TO 30 4770 CALL SOUND(100,-5,V) 4780 NEXT V 4790 CALL VCHAR(20,4,94,4) 4800 SA=SA+1 4810 GOSUB 5000 4820 CALL SOUND(200,438,5,440,1,442,5) 4830 CALL SOUND(200,347,5,349,1,351,5) 4840 CALL SOUND(200,438,5,440,1,442,5) 4850 CALL SOUND(225,521,5,523,1,525,5) 4860 CALL SOUND(250,438,5,440,1,442,5) 4870 CALL SOUND(275,521,5,523,1,525,5) 4880 CALL SOUND(1000,696,5,698,1,700,5) 4890 CALL VCHAR(20,4,32,4) 4900 GOTO 3070 4910 FOR W=0 TO 30 STEP 15 4920 CALL SOUND(-99,1000,W,3250,W,6750,W) 4930 NEXT W 4940 SB=SB+1 4950 IF S>0 THEN 4550 4960 GOSUB 110 4970 IF KL=0 THEN 3480 4980 J=KL 4990 ON J GOTO 3790,4730 5000 IF J=2 THEN 5050 5010 X=29 5020 TB=TB+SB 5030 S=TB 5040 GOTO 5080 5050 X=4 5060 TA=TA+SA 5070 S=TA 5080 DATA 83,67,79,82,69 5090 RESTORE 5080 5100 FOR Y=9 TO 13 5110 READ C 5120 CALL HCHAR(Y,X,C) 5130 NEXT Y 5140 S1=INT(S/1000) 5150 S=S-(1000*S1) 5160 S2=INT(S/100) 5170 S=S-(100*S2) 5180 S3=INT(S/10) 5190 S=S-(10*S3) 5200 CALL HCHAR(15,X,S1+48) 5210 CALL HCHAR(16,X,S2+48) 5220 CALL HCHAR(17,X,S3+48) 5230 CALL HCHAR(18,X,S+48) 5240 RETURN 5250 IF TA=TB THEN 5670 5260 DATA 80,76,65,89,69,82 5270 RESTORE 5260 5280 FOR X=14 TO 19 5290 READ C 5300 CALL HCHAR(5,X,C) 5310 NEXT X 5320 DATA 79,78,69 5330 DATA 84,87,79 5340 RESTORE 5320 5350 IF TA>TB THEN 5370 5360 RESTORE 5330 5370 FOR X=15 TO 17 5380 READ C 5390 CALL HCHAR(7,X,C) 5400 NEXT X 5410 DATA 87,73,78,83 5420 RESTORE 5410 5430 FOR X=16 TO 19 5440 READ C 5450 CALL HCHAR(9,X,C) 5460 NEXT X 5470 W=300 5480 FOR N=1 TO 4 5490 W=W+100 5500 CALL SOUND(W,330,1,392,1,523,1,-1,1) 5510 FOR Z=3 TO 8 5520 CALL COLOR(Z,2,16) 5530 NEXT Z 5540 CALL SOUND(W,349,1,440,1,523,1,-1,1) 5550 FOR Z=3 TO 8 5560 CALL COLOR(Z,16,2) 5570 NEXT Z 5580 NEXT N 5590 FOR W=1 TO 100 5600 NEXT W 5610 FOR W=30 TO 1 STEP-1 5620 CALL SOUND(-100,392,W,523,W,659,W,-1,W) 5630 NEXT W 5640 FOR W=1 TO 500 5650 NEXT W 5660 GOTO 2520 5670 DATA 84,79,85,82,78,65,77,69,78,84,73,83,32,65,68,82,65,87 5680 RESTORE 5670 5690 FOR X=12 TO 21 5700 READ C 5710 CALL HCHAR(5,X,C) 5720 NEXT X 5730 FOR X=15 TO 18 5740 READ C 5750 CALL HCHAR(7,X,C) 5760 NEXT X 5770 FOR X=15 TO 18 5780 READ C 5790 CALL HCHAR(9,X,C) 5800 NEXT X 5810 GOTO 5480