REM REM ************************************************* REM * Dragon file header: * REM * Start: $1801 Length: $2814 Exec: $8b8d * REM *(Start: 06145 Length: 10260 Exec: 35725) * REM ************************************************* REM 10 GO TO 42::'V1.1 20 IF PEEK (341)= AN THEN N=0:: ELSE IF PEEK (342)= AN THEN N=63:: ELSE N=32 30 IF PEEK (343)= AN THEN M=0:: ELSE IF PEEK (344)= AN THEN M=63:: ELSE M=32 40 RETURN 42 PMODE 1,1: PCLEAR 2: CLS 4: PRINT @257,"DRAGON OR TANDY COLOR?(D OR T)"; 44 POKE 65314,8:A$= INKEY$ : IF A$="D" THEN AN=223:: ELSE IF A$="T" THEN AN=247:: ELSE 44 50 CLS 3: PRINT @263,"JOYSTICKS? (Y OR N)"; 60 A$= INKEY$ : IF A$="Y" THEN JS=1:: ELSE IF A$="N" THEN JS=0:: ELSE 60 70 PMODE 1,1: CLS 3: PCLS 4 80 COLOR 3,1: PLAY "O4;V31": DIM MA(5),MB(8),F(8),G(8),FA(8),GA(8),XR(2),YR(2),RD(2),J(2),QB(4) 90 FOR Y=0 TO 176 STEP 44: LINE (0,Y)-(224,Y+10), PSET ,BF: NEXT Y 100 CLS 4: FOR X=0 TO 224 STEP 56: LINE (X,0)-(X+14,191), PSET ,BF: NEXT 110 LINE (240,0)-(255,191), PRESET ,BF 120 LINE (224,88)-(255,98), PSET ,BF 130 CLS 5:XP=2:YP=0: LINE (0,188)-(255,191), PRESET ,BF 140 ZJ=0:ZZ=3: DIM RA(3),VA(3),VB(3),U(3):F(0)=228:F(1)=228:F(2)=228:G(0)=0:G(1)=88:G(2)=176:A=0:B=0 150 GET (2,100)-(11,111),U 160 DRAW "BM232,176;C2;D6;U2;E4;G4;H4;F4;D2;F4;H4;G4" 170 GET (228,176)-(237,187),VA 180 DRAW "BM6,0;C1;D6;U2;E4;G4;H4;F4;D2;F4;H4;G4" 190 GET (2,0)-(11,11),VB 200 COLOR 2,3 210 FOR Y=0 TO 176 STEP 44: LINE (92,Y)-(92,Y+10), PSET : LINE (204,Y)-(204,Y+10), PSET : NEXT 220 FOR X=56 TO 224 STEP 56: LINE (X,26)-(X+14,26), PSET : LINE (X,162)-(X+14,162), PSET : NEXT 230 FOR X=56 TO 112 STEP 56: LINE (X,70)-(X+14,70), PSET : LINE (X,114)-(X+14,114), PSET : NEXT 240 FOR Y=44 TO 132 STEP 88: LINE (36,Y)-(36,Y+10), PSET : NEXT 250 LINE (148,88)-(148,98), PSET 260 Q=200-ZZ*10-ZJ*25 270 SCREEN 1,0 280 IF JS=0 THEN GO SUB 20:: ELSE M= JOYSTK (0):N= JOYSTK (1) 290 PUT (XP,YP)-(XP+9,YP+11),U 300 IF M>48 THEN IF PPOINT (XP+18,YP)=3 THEN IF PPOINT (XP+18,YP+10)=3 THEN XP=XP+8 310 IF XP=2 THEN 320:: ELSE IF M<16 THEN IF PPOINT (XP-6,YP)=3 THEN IF PPOINT (XP-6,YP+10)=3 THEN XP=XP-8 320 IF N>48 THEN IF PPOINT (XP,YP+14)=3 THEN IF PPOINT (XP+8,YP+14)=3 THEN YP=YP+4 330 IF YP=0 THEN 340: ELSE IF N<16 THEN IF PPOINT (XP,YP-2)=3 THEN IF PPOINT (XP+8,YP-2)=3 THEN YP=YP-4 340 IF YP=172 THEN IF N>48 THEN YP=YP+4 350 IF ABS (XP-F(A))<16 THEN IF ABS (YP-G(A))<16 THEN 950 360 PUT (XP,YP)-(XP+9,YP+11),VB: PLAY "T255;L255;G" 370 PUT (F(A),G(A))-(F(A)+9,G(A)+11),U: GO SUB 490:A=A+1: IF A=ZZ THEN A=0 380 IF A>0 THEN PUT (F(A-1),G(A-1))-(F(A-1)+9,G(A-1)+11),VA:: ELSE PUT (F(ZZ-1),G(ZZ-1))-(F(ZZ-1)+9,G(ZZ-1)+11),VA 390 IF ABS (XP-F(A))<16 THEN IF ABS (YP-G(A))<16 THEN 950 400 PUT (F(A),G(A))-(F(A)+9,G(A)+11),U: GO SUB 490:A=A+1: IF A=ZZ THEN A=0 410 IF A>0 THEN PUT (F(A-1),G(A-1))-(F(A-1)+9,G(A-1)+11),VA: GO TO 430 420 PUT (F(ZZ-1),G(ZZ-1))-(F(ZZ-1)+9,G(ZZ-1)+11),VA 430 IF XP>240 THEN 1060 440 Q=Q-1: IF Q<10 THEN GO SUB 790 450 IF Q<20 THEN SOUND 100,1 460 IF Q=0 THEN GO TO 780 470 IF ZJ>0 THEN ON RND (4-ZJ) GO SUB 2190 480 GO TO 280 490 IF FA(A)<>0 THEN 560:: ELSE IF GA(A)<>0 THEN 600 500 IF F(A)=XP+2 THEN IF G(A)10 THEN FA(A)=-7: RETURN 520 IF F(A)<220 THEN FA(A)=7: RETURN 530 IF G(A)>10 THEN GA(A)=-11: RETURN 540 IF G(A)<168 THEN GA(A)=11: RETURN 550 GO TO 510 560 IF G(A)=YP THEN 580:: ELSE IF FA(A)>0 THEN FA(A)=FA(A)-1:F(A)=F(A)+8:: ELSE FA(A)=FA(A)+1:F(A)=F(A)-8 570 RETURN 580 IF F(A)0 THEN GA(A)=GA(A)-1:G(A)=G(A)+4:: ELSE GA(A)=GA(A)+1:G(A)=G(A)-4 610 RETURN 620 IF G(A)F(A) THEN F(A)=F(A)+8: GO TO 700 670 IF F(A)>4 THEN IF PPOINT (F(A)-6,G(A))=3 THEN IF PPOINT (F(A)-6,G(A)+10)=3 THEN F(A)=F(A)-8: GO TO 690 680 GA(A)= RND (8)* INT ((-1)^( RND (2))): GO TO 500 690 IF F(A)<0 THEN F(A)=0 700 A=A+1: IF A=ZZZ THEN A=0 710 RETURN 720 FA(A)=0:GA(A)=0: PUT (F(A),G(A))-(F(A)+9,G(A)+11),U 730 PLAY "T255;L255;C" 740 IF PPOINT (F(A),G(A)+12)=3 THEN IF PPOINT (F(A)+10,G(A)+12)=3 THEN IF YP>G(A) THEN G(A)=G(A)+4: GO TO 770 750 IF G(A)>0 THEN IF PPOINT (F(A),G(A)-4)=3 THEN IF PPOINT (F(A)+10,G(A)-4)=3 THEN G(A)=G(A)-4: GO TO 770 760 FA(A)= RND (6)* INT ((-1)^( RND (2))): GO TO 500 770 GO TO 700 780 I=0: ON GN GO TO 830,890 790 IF Q=9 THEN GN= RND (2) 800 ON GN GO TO 810,820 810 FOR I=0 TO 176 STEP 44: PSET (230+Q,I+6,2): NEXT : RETURN 820 FOR I=0 TO 224 STEP 56: PSET (I+6,10-Q,2): NEXT : RETURN 830 I=I+1: FOR J=0 TO 176 STEP 44: LINE (234,J+6)-(0,J+6), PSET : NEXT 840 FOR J=0 TO 176 STEP 44: IF ABS (YP-J)<8 THEN FOR L=1 TO 10: PLAY "B": LINE (XP,YP)-(XP+10,YP+10), PSET ,BF: LINE (XP,YP)-(XP+10,YP+10), PRESET ,BF: NEXT :: ELSE 850 850 LINE (234,J+6)-(0,J+6), PRESET 860 PLAY "CFB": NEXT : IF I<10 THEN 830 870 FOR J=0 TO 176 STEP 44: IF ABS (YP-J)<8 THEN 950:: ELSE NEXT 880 FOR J=0 TO 176 STEP 44: LINE (238,J+6)-(0,J+6), PRESET : NEXT : GO TO 210 890 I=I+1: FOR J=0 TO 224 STEP 56: LINE (J+6,0)-(J+6,180), PSET : NEXT 900 FOR J=0 TO 224 STEP 56: IF ABS (XP-J)<8 THEN FOR L=1 TO 10: PLAY "B": LINE (XP,YP)-(XP+10,YP+10), PSET ,BF: LINE (XP,YP)-(XP+10,YP+10), PRESET ,BF: NEXT :: ELSE 910 910 LINE (J+6,0)-(J+6,180), PRESET 920 PLAY "CFB": NEXT : IF I<10 THEN 890 930 FOR J=0 TO 224 STEP 56: IF ABS (XP-J)<8 THEN 950:: ELSE NEXT 940 GO TO 880 950 CLS : PRINT @1, STRING$ (30,191): PRINT @32, STRING$ (32,175): PRINT @448, STRING$ (32,175);: PRINT @481, STRING$ (30,191);: PRINT @104,"THEY GOT YOU!!!" 960 FOR I=1 TO 50:G= RND (100): SOUND G,1: NEXT 970 PRINT : PRINT " YOUR SCORE: ";ST 980 IF ST>HS THEN HS=ST 990 PRINT : PRINT " HIGH SCORE: ";HS 1000 FOR I=0 TO ZZ:FA(I)=0:GA(I)=0: NEXT I: PLAY "O4" 1010 PRINT : PRINT " YOU WENT THROUGH"ZZ-3+ZJ*6+ZK*18"WINGS!": PRINT : PRINT " TRY AGAIN?"; 1020 A$= INKEY$ : IF A$="Y" THEN XP=2:YP=0:ZZ=3:ZJ=0:ZK=0: GO SUB 1040:ST=0:B=0: GO TO 1150:: ELSE IF A$="N" THEN END :: ELSE 1020 1030 END 1040 F(0)=228:F(1)=228:F(2)=228:G(0)=0:G(1)=88:G(2)=176:A=0 1050 RETURN 1060 COLOR 4,2:F(ZZ)=228:G(ZZ)=176:ZZ=ZZ+1: LINE (88,88)-(168,102), PRESET ,BF: FOR I=0 TO ZJ-1:RD(I)= INT (( ABS (XR(I)-XP))/3+( ABS (YR(I)-YP))/3): NEXT I 1070 PLAY "L187": IF ZZ=6 THEN K=4: GO SUB 1100: GO TO 1230 1080 K=4 1090 IF ZZ=9 THEN GO SUB 1930: GO SUB 1100: GO TO 1150: ELSE GO SUB 1100: GO TO 1150 1100 SCREEN 1,0: COLOR 4,2: FOR I=88 TO 2 STEP -2: LINE (I,I)-(I+80+(88-I)*2,I+14+(88-I)*2), PRESET ,B:XQ$= STR$ (I/2-(K-1)*12): IF I/2-(K-1)*12=0 THEN K=K-1:XQ$="12" 1110 PLAY "L10;T20":K$= RIGHT$ ( STR$ (K),1):V$="O"+K$+";"+ RIGHT$ (XQ$,2): PLAY V$: NEXT : PCLS 4: PLAY "O4" 1120 CLS :ST=ST+Q: FOR J=1 TO ZZ-1: FOR I=1 TO 3:ST=ST+50: PRINT @0, STRING$ (32,159); STRING$ (32,175); STRING$ (32,191); STRING$ (32,207); 1130 PRINT @384, STRING$ (32,207); STRING$ (32,191); STRING$ (32,175); STRING$ (31,159);: POKE 1535,159 1140 PRINT @205,"SCORE:": SOUND 200,1: PRINT @304- LEN ( STR$ (ST))/2-.5,ST: NEXT : NEXT : FOR I=152 TO 200 STEP 2: SOUND I,1: NEXT : RETURN 1150 CLS 3: PCLS 4: COLOR 3,1:XP=2:YP=0: FOR Y=0 TO 176 STEP 44: LINE (0,Y)-(224,Y+10), PSET ,BF: NEXT 1160 CLS 4: FOR X=0 TO 224 STEP 56: LINE (X,0)-(X+14,191), PSET ,BF: NEXT 1170 LINE (240,0)-(255,191), PRESET ,BF 1180 CLS 5: LINE (224,88)-(255,98), PSET ,BF 1190 LINE (0,188)-(255,191), PRESET ,BF 1200 IF ZZ=11 THEN ZZ=3 1210 FOR A=0 TO ZZ: IF F(A)<56 THEN F(A)=F(A)+56: NEXT :: ELSE NEXT 1220 CLS 7:A=0: GO TO 150 1230 SCREEN 1,0: FOR I=0 TO 2:J(I)=0: NEXT 1240 COLOR 2,1: PCLS 4: FOR X=72 TO 216 STEP 48: LINE (X,0)-(X,191), PSET : NEXT 1250 LINE (240,0)-(255,80), PRESET ,BF 1260 LINE (240,100)-(255,191), PRESET ,BF 1270 LINE (0,180)-(255,191), PRESET ,BF 1280 COLOR 2,3: FOR X=24 TO 216 STEP 96: LINE (X,0)-(X,178), PRESET : NEXT 1290 LINE (0,162)-(26,178), PRESET ,B: LINE (98,0)-(122,18), PRESET ,B: LINE (194,162)-(218,178), PRESET ,B 1300 FOR Y=20 TO 160 STEP 20: LINE (24,Y)-(238,Y), PSET : NEXT 1310 DRAW "C2;BM132,94;U8;H2;D2;R6;U2;G2;D4;R4;L10;R4;D2;F6;H4;U2;G6" 1320 FOR I=0 TO 2:TS(I)=-1: NEXT I 1330 MX=128:MY=84: GET (128,84)-(139,99),MA 1340 GET (128,64)-(139,99),MB 1350 DRAW "BM12,6;C1;D6;U2;E4;G4;H4;F4;D2;F4;H4;G4" 1360 GET (8,6)-(17,17),VB 1370 XP=8:YP=6: GET (8,20)-(17,31),U 1380 COLOR 3,4: LINE (98,20)-(122,20), PRESET : LINE (192,160)-(218,160), PRESET 1390 FOR I=24 TO 216 STEP 96: IF J((I-24)/96)<>1 THEN LINE (I,0)-(I,178), PRESET : LINE (I,(TS((I-24)/96)+1)*20)-(I,178), PSET : NEXT :: ELSE NEXT 1400 FOR I=8 TO 200 STEP 192: IF YP=166 THEN IF XP=I THEN IA=(I-8)/96: GO SUB 1750: NEXT I:: ELSE NEXT :: ELSE NEXT 1410 IF YP=6 THEN IF XP=104 THEN I=104:IA=1: GO SUB 1750 1420 PUT (XP,YP)-(XP+9,YP+11),U 1430 IF JS=0 THEN GO SUB 20:: ELSE M= JOYSTK (0):N= JOYSTK (1) 1440 IF M>48 THEN IF PPOINT (XP+16,YP+6)=4 THEN XP=XP+24 1450 IF M<16 THEN IF XP>8 THEN IF PPOINT (XP-8,YP+4)=4 THEN XP=XP-24 1460 IF N>48 THEN IF PPOINT (XP,YP+14)=4 THEN YP=YP+20 1470 IF N<16 THEN IF YP>6 THEN IF PPOINT (XP,YP-6)=4 THEN YP=YP-20 1480 PUT (XP,YP)-(XP+9,YP+11),VB 1490 PLAY "V15;G" 1500 PUT (MX,MY)-(MX+11,MY+15),MB 1510 IF MD=0 THEN MD=1: GO TO 1540 1520 IF MX=XP THEN SOUND 10,1: GO SUB 1790 1530 IF MY=YP-2 THEN SOUND 10,1: GO SUB 1850:: ELSE MD=0: GO TO 1550 1540 GG= RND (4): ON GG GO SUB 1590,1630,1680,1720 1550 PUT (MX,MY)-(MX+11,MY+15),MA 1560 IF ZJ>0 THEN ON RND (4-ZJ) GO SUB 2190 1570 IF XP>240 THEN PLAY "V31": GO TO 1060 1580 GO TO 1390 1590 IF MX=80 THEN IF MY=4 THEN RETURN 1600 IF MX=176 THEN IF MY=164 THEN RETURN 1610 IF MX<224 THEN LINE (MX+16,MY-2)-(MX+16,MY+14), PRESET :MX=MX+24 1620 RETURN 1630 IF MX=32 THEN IF MY=164 THEN RETURN 1640 IF MX=128 THEN IF MY=4 THEN RETURN 1650 IF MX=224 THEN IF MY=164 THEN RETURN 1660 IF MX>8 THEN LINE (MX-8,MY-2)-(MX-8,MY+14), PRESET :MX=MX-24 1670 RETURN 1680 IF MX=8 THEN IF MY=144 THEN RETURN 1690 IF MX=200 THEN IF MY=144 THEN RETURN 1700 IF MY<164 THEN LINE (MX-6,MY+16)-(MX+14,MY+16), PRESET :MY=MY+20 1710 RETURN 1720 IF MX=104 THEN IF MY=24 THEN RETURN 1730 IF MY>4 THEN LINE (MX-6,MY-4)-(MX+14,MY-4), PRESET :MY=MY-20 1740 RETURN 1750 IF TS(IA)>8 THEN RETURN 1760 SOUND 1,1 1770 TS(IA)=TS(IA)+1: IF TS(IA)=9 THEN J(IA)=1: RETURN 1780 RETURN 1790 IF MX=8 THEN IF MY=144 THEN RETURN 1800 IF MX=200 THEN IF MY=144 THEN RETURN 1810 IF MX=104 THEN IF MY=24 THEN RETURN 1820 IF MY>YP-2 THEN LINE (MX-6,MY-4)-(MX+14,MY-4), PRESET :MY=MY-20 1830 IF MYXP THEN LINE (MX-8,MY-2)-(MX-8,MY+14), PRESET :MX=MX-24 1910 IF MX2 THEN 2410:: ELSE PRINT @98,"YOU GOT THROUGH BUILDING";ZJ+ZK*3;"!";: PRINT @237,"BONUS:";: PRINT @301,ZJ*2000;:ST=ST+ZJ*2000: FOR L=1 TO 4: FOR I=250 TO 220 STEP -2: SOUND I,1: NEXT I: NEXT L: PCLS 3: IF ZJ>3 THEN B=0:ZK=ZK+1:ZJ=1: RETURN :: ELSE RETURN 2180 FOR I=0 TO 2:F(I)=228:G(I)=I*88: NEXT I: FOR I=0 TO 7:FA(I)=0:GA(I)=0: NEXT I: RETURN 2190 RD(B)=RD(B)-1: IF RD(B)>0 THEN 2310:: ELSE IF ZZ=6 THEN 2320 2200 IF RD(B)=0 THEN XR(B)=2:YR(B)=0: GO SUB 2300: RETURN 2210 GO SUB 2290: IF ABS (XR(B)-XP)<10 THEN IF ABS (YR(B)-YP)<10 THEN 950 2220 IF ABS (XR(B)-XP)< ABS (YR(B)-YP) THEN 2230:: ELSE 2260 2230 IF PPOINT (XR(B),YR(B)+12)=3 THEN IF PPOINT (XR(B)+10,YR(B)+12)=3 THEN IF YP>YR(B) THEN YR(B)=YR(B)+4: IF B=ZJ THEN B=0: GO SUB 2300: RETURN :: ELSE GO SUB 2300: RETURN 2240 IF YR(B)>3 THEN IF PPOINT (XR(B),YR(B)-4)=3 THEN IF PPOINT (XR(B)+10,YR(B)-4)=3 THEN YR(B)=YR(B)-4: IF B=ZJ THEN B=0: GO SUB 2300: RETURN :: ELSE GO SUB 2300: RETURN 2250 IF W=1 THEN GO SUB 2300: RETURN :: ELSE W=1: GO TO 2260 2260 IF PPOINT (XR(B)+16,YR(B))=3 THEN IF PPOINT (XR(B)+16,YR(B)+10)=3 THEN IF XP>XR(B) THEN XR(B)=XR(B)+8: IF B=ZJ THEN B=0: GO SUB 2300: RETURN :: ELSE GO SUB 2300: RETURN 2270 IF XR(B)>5 THEN IF PPOINT (XR(B)-4,YR(B))=3 THEN IF PPOINT (XR(B)-4,YR(B)+10)=3 THEN XR(B)=XR(B)-8: IF B=ZJ THEN B=0: GO SUB 2300: RETURN :: ELSE GO SUB 2300: RETURN 2280 IF W=1 THEN GO SUB 23U$A PROTECT NEXT READ LINE $X 14646 ,"PLEASE LEAVE THE play BUTTON DEPRESSED. WHEN READY": PRINT "PRESS ANY KEY" 0 REM REM ************************************************* REM * Dragon file header: * REM * Start: $2401 Length: $3ea1 Exec: $8b8d * REM *(Start: 09217 Length: 16033 Exec: 35725) * REM ************************************************* REM 1 PMODE 3: PCLS : SCREEN 1,0: LINE (35,19)-(225,172), PSET ,B: FOR J=1 TO 93: SOUND 100+J,1: LINE (129-J,20)-(129-J,171), PSET : LINE (129+J,20)-(129+J,171), PSET : NEXT J 2 CIRCLE (125,96),60,2: PAINT (128,39),2,2: SOUND 100,1: CIRCLE (95,90),10,3,1,0.75,0.25: SOUND 110,1: CIRCLE (95,110),10,3,1,0.75,0.25: SOUND 120,1: CIRCLE (93,90),6,3: SOUND 130,1: CIRCLE (93,110),6,3: SOUND 140,1 3 DRAW "C3BM95,80L15D40R15": SOUND 150,1: CIRCLE (120,100),10,1: SOUND 160,1: CIRCLE (120,100),5,1: SOUND 170,1: DRAW "C1BM123,92E5F3G6BD5F6G3H6": SOUND 180,1: DRAW "C3BM143,80D40R10U15R10D15R10U40L10D15L10U15L10": SOUND 190,1 4 PAINT (95,83),3,3: PAINT (120,93),1,1: PAINT (145,82),3,3: COLOR 4,1: FOR J=36 TO 129: LINE (J,20)-(J,171), PRESET : LINE (258-J,20)-(258-J,171), PRESET : NEXT J 5 CLEAR 500:H5=10:H4=30:H3=50:H2=100:H1=200:N1$="B&H SOFTWARE":N2$=N1$:N3$=N1$:N4$=N1$:N5$=N1$ 10 CLS 0: FOR K=1 TO 92: READ A,B: POKE A,B: NEXT 20 DATA 1064,135,1065,143,1066,143,1067,139,1070,143,1073,143,1076,143,1077,143,1078,143,1079,139 21 DATA 1096,143,1102,143,1105,143,1108,143,1111,142,1128,141,1129,143,1130,143,1131,139,1134,143,1137,143,1140,143,1141,143,1142,143,1143,138 22 DATA 1163,143,1166,143,1169,143,1172,143,1175,139,1192,141,1193,143,1194,143,1195,142,1198,141,1199,143,1200,143,1201,142,1204,143,1205,143,1206,143,1207,142 23 DATA 1285,143,1288,143,1291,143,1294,143,1297,143,1298,138,1300,143,1303,143,1304,143,1305,143,1306,143 24 DATA 1317,143,1320,143,1323,143,1326,143,1329,143,1330,133,1332,143,1336,133,1337,138 25 DATA 1349,143,1350,143,1351,143,1352,143,1355,143,1358,143,1361,143,1363,138,1364,143,1368,133,1369,138 26 DATA 1381,143,1384,143,1387,143,1390,143,1393,143,1395,133,1396,143,1400,133,1401,138 27 DATA 1413,143,1416,143,1419,141,1420,143,1421,143,1422,142,1425,143,1428,143,1432,133,1433,138 30 PRINT @456,"b";: PRINT @458,"and";: PRINT @462,"h";: PRINT @464,"software"; 40 PLAY "V31T2O2L8CP8DP8EP8F#P8L2FL8EDCO-B" 50 CLS : PRINT @6,"SUBMARINE CONTROLS": PRINT STRING$ (32,131);: PRINT @64,"^^^^^^^^^ ARROW KEYS ^^^^^^^^^^^"; 51 PRINT "UP -MOVES SUB FORWARD": PRINT "DOWN -PRESS TO DIVE": PRINT "LEFT -MOVES SUB LEFT": PRINT "RIGHT-MOVES SUB RIGHT" 52 PRINT : PRINT @256,"######## OTHER CONTROLS ########"; 53 PRINT "S -PRESS TO SURFACE": PRINT "@ -PRESS TO FIRE TORPEDO": PRINT "ENTER-PRESS TO RETURN TO BASE" 54 PRINT : PRINT "ALL KEYS ARE AUTO REPEAT": PRINT : SOUND 100,2: PRINT "PRESS ENTER********************"; 60 IF INKEY$ ="" THEN 60 70 CLS : PRINT @10,"BRIEFING": PRINT STRING$ (32,131); 71 PRINT "1.A DOT WILL FLASH ON YOUR RADAR YOU MUST LINE UP THE DOT AND THEN MOVE TOWARDS IT USING THE ARROW KEYS" 72 PRINT : PRINT "2.WHEN THE DOT IS WITHIN RANGE A WARNING WILL SOUND AND SHIPS WILL CROSS THE HORIZON" 73 PRINT : PRINT "3.YOU MUST SINK THE SHIPS USING TORPEDOES.A HIT IN THE CENTRE OF THE SHIP SCORES MAXIMUM POINTS" 75 SOUND 100,2: PRINT @480,"PRESS ENTER********************"; 76 IF INKEY$ ="" THEN 76 80 CLS : PRINT @10,"BRIEFING": PRINT STRING$ (32,131); 81 PRINT "4.IF YOU MISS A SHIP IT IS WISE TO DIVE AND WAIT": PRINT : PRINT "5.THE DEEPER YOU ARE THE SAFER YOU ARE FROM DEPTH CHARGES.BUT MORE FUEL IS USED" 82 PRINT : PRINT "6.WATCH YOUR FUEL LEVEL !!!": PRINT : PRINT "7.RANDOM AEROPLANES WILL ATTACK. YOU MAY DIVE TO AVOID THEM OR USE YOUR TORPEDOES TO HIT THEM AS THEY TOUCH THE HORIZON" 83 SOUND 100,2: PRINT @480,"PRESS ENTER********************"; 84 IF INKEY$ ="" THEN :QL= RND (12): GO TO 84 90 CLS : PRINT @10,"BRIEFING": PRINT STRING$ (32,131);: PRINT : PRINT "8.TO REFUEL OR TO TAKE ON MORE AMMUNITION YOU MUST RETURN TO BASE.BUT BEWARE OF MINES!! YOU MUST MOVE LEFT OR RIGHT TO AVOID THEM" 400 DIM S(0,15),BL(0,15),S1(0,30),SB(0,30),DC(0,15),DB(0,15),BM(0,15),MI(0,15),FL(0,30),FB(0,30),HE(0,50),SU(0,50),B1(0,50),M2(0,50),M1(0,30),AE(0,15) 410 GO SUB 2710 420 SOUND 100,2: PRINT @480,"PRESS ENTER********************"; 425 IF INKEY$ ="" THEN 425 450 CLS : PRINT @226,"YOUR SHIP IS BEING PREPARED": PRINT @264,"GOOD HUNTING!!!!" 500 AA=0:A2=30:ER=0:QQ=60:HH=0:JJ=0:XX=210:S2=54:D2=20:D=0:SS=0:G=0:T=0:H=0:M=0:L=0 520 Y1=189:Y2=122 530 A$="T55V31L6O1CDEFGABO+CDEFGABO+CDEFGAB" 540 RD=2 560 HT=3607:HP=3609:TP=3610:TH=3608 570 TS=4254 590 A=40:B=135: PMODE 1,1: PCLS 600 GET (10,10)-(30,20),BL,G 601 DRAW "C6;BM10,16;R4ND2R4BR4R4ND2R4" 602 CIRCLE (20,16),4: PAINT (20,16),6 603 GET (10,10)-(30,20),AE 604 PCLS 610 DRAW "C6BM10,10;BD8F2R15E1U1L6U1L4U2L4NU2D3L2" 620 PAINT (20,18),6: GET (10,10)-(40,20),S,G: DRAW "C8" 630 PCLS 6: DRAW "C8BM10,10BD10BR4F10R4E10L6U4L4U4L4D4L4D4L6": PAINT (24,26),5,8: DRAW "C6R12ND10R12" 640 GET (10,10)-(40,30),S1 650 PCLS 6: GET (10,10)-(40,30),SB: GET (10,10)-(20,20),DB 660 LINE (12,12)-(18,18), PSET ,B: PAINT (16,16),5,8: LINE (13,12)-(13,18), PSET : LINE (18,12)-(18,18), PSET : GET (10,10)-(20,20),DC 670 DRAW "C5": PCLS 6: GET (10,10)-(20,20),BM: LINE (12,12)-(18,18), PSET ,B: PAINT (16,16),5: LINE (10,10)-(20,20), PSET : LINE (20,10)-(10,20), PSET : GET (10,10)-(20,20),MI 671 DRAW "C6": PCLS : LINE (0,100)-(256,192), PSET ,B: PAINT (100,160),6,6: PUT (60,50)-(90,60),S, PSET : PUT (150,50)-(170,60),AE: PUT (30,110)-(40,120),MI: PUT (210,110)-(220,120),DC: PUT (110,100)-(140,120),S1 672 DRAW "BM70,10ND8BR4R2F2D4G2L2U8BR8NR4D4NR4D4R4BR4U8F8U8BR4R2ND8R2BR4ND8BR4NR4D4NR4D4BR8U8BR4NR4D8R4BR4U4NR4U4R4ND8BR4R2ND8R2BR4ND8BR4R4D8L4U8BR8ND8F8U8" 673 DRAW "BM60,70NR4D4R4D4NL4BR4U4NU4R4ND4U4BR4ND8BR4D4ND4R4U4L4": DRAW "BM140,70R4D4L4ND4U4BR8D8R4BR4U4NR4U4R4ND8BR4ND8F8U8BR4NR4D4NR4D4R4" 674 DRAW "C5BM14,130ND8F4E4ND8BR4ND8BR4ND8F8U8BR4NR4D4NR4D4R4": DRAW "BM110,130NR4D4R4D4NL4BR4U4NU4R4ND4U4BR4ND8BR4R4D4L4ND4U4": DRAW "BM200,130R2F2D4G2L2U8BR8NR4D4NR4D4R4BR4U4R4U4L4ND4BR8R2ND8R2BR4D4ND4R4ND4U4" 675 DRAW "BM90,150R4D4L4NF4ND4U4BR8D4ND4R4ND4U4L4BR8ND8F4E4ND8BR4ND8F4E4ND8BR4ND8BR4ND8F8U8BR4NR4D8R4U4L2": DRAW "BM200,150NR4D8R4BR4U4NU4R4ND4U4BR4D4ND4R4ND4U4L4BR8R4D4L4NF4ND4U4BR8NR4D8R4U4NL2BD4BR4NR4U4NR4U4R4" 676 DRAW "BM80,180R4D4L4ND4U4BR8R4D4L4NF4ND4U4BR8NR4D4NR4D4R4BR4R4U4L4U4R4BR4NR4D4R4D4NL4BR16NR4U4NR4U4R4BR4ND8F8U8BR4R2ND8R2BR4NR4D4NR4D4R4BR4U4NF4R4U4L4D4" 677 SCREEN 1,1 678 IF INKEY$ ="" THEN 678 679 SCREEN 0,0 680 PCLS : DRAW "C8" 690 CIRCLE (40,155),35 700 DRAW "BM36,110;ND8F8U8" 705 DRAW "BM50,116;R10NH4NG4": DRAW "BM30,116;L10NE4NF4" 710 LINE (140,120)-(170,190), PSET ,BF 720 DRAW "BM142,110;NR4D4NR4D4BR8NU8R4U8BR5NR4D4NR4D4R4BR3NU8R4" 730 LINE (100,120)-(130,190), PSET ,BF 740 DRAW "BM96,110;D8R2E2U4H2L2BR8NR4D4NR4D4R4BR5U4R4U4L4ND4BR7R2ND8R2BR5D4ND4R4NU4D4" 750 DRAW "BM190,110;NR4D4R4D4NL4BR5NR4U8R4BR3D8R4U8NL4BR5D4ND4NF4R4U4NL4BR3NR4D4NR4D4R4" 760 DRAW "BM176,150;R2ND8R2BR5D8R4U8NL4BR3D4ND4NF4R4U4NL4BR5D4ND4R4U4NL4BR3NR4D4NR4D4R4BR5R2E2U4H2L2ND8BR7D8R4U8NL4BR5NR4D4NR4D4R4BR3R4U4L4U4R4" 770 LINE (180,122)-(238,144), PSET ,B: LINE (174,162)-(248,184), PSET ,B 780 GO SUB 1510 790 POKE 3612,63: POKE 3644,51: POKE 3676,51: POKE 3708,51: POKE 3740,63: POKE 3611,63: POKE 3643,51: POKE 3675,51: POKE 3707,51: POKE 3739,63 800 FOR K=4246 TO 4254: POKE K,60: POKE K+32,60: POKE K+64,60: POKE K+96,60: NEXT 810 DRAW "BM86,120R4D8L4U8": DRAW "BM80,150NR4D4R4D4L4BR9U8R4D8L4": DRAW "BM76,180D8BR5NR4U8R4ND8BR4D8R4U8L4" 820 PSET (96,124,6): PSET (96,154,6): PSET (96,184,6) 830 PSET (136,124,6): PSET (136,154,6): PSET (136,184,6) 840 IF D=0 THEN X3= RND (40)+20:Y3= RND (40)+135:R=0 850 CIRCLE (128,50),120,8,0.45 860 IF D=0 THEN LINE (10,50)-(246,50), PSET : ELSE DRAW "C6": LINE (10,50)-(246,50), PSET : DRAW "C8" 870 PAINT (100,60),6,8 880 IF D=1 THEN PAINT (100,48),6,8 : ELSE PAINT (100,18),5,8 890 CLS : SCREEN 1,1 900 LINE (40,155)-(A,B), PSET 910 GO SUB 1450 920 IF G>0 AND D=0 THEN GO SUB 1140 930 IF XX<=110 THEN GO SUB 1130 950 IF HH>0 AND XX<190 AND D=0 THEN PLAY A$: GO SUB 2170 960 GO SUB 2010 970 IF SS=0 AND D=0 AND G=0 THEN PSET (X3,Y3,6): SOUND 200,1: PRESET (X3,Y3) 980 IF G>0 THEN G=G-1: IF G=<4 THEN GO SUB 2070 990 P= PEEK (337): IF P=251 AND D=0 THEN GO SUB 1070 : ELSE IF P=239 THEN GO SUB 1970 : ELSE IF P=191 AND D=0 AND G=0 AND SS=0 THEN 2210 1000 P1= PEEK (344): IF P1=223 THEN GO SUB 1290 1010 P2= PEEK (343): IF P2=223 THEN GO SUB 1370 1020 P3= PEEK (341): IF P3=223 THEN GO SUB 1780 1030 P4= PEEK (342): IF P4=223 THEN GO SUB 1730 1031 IF SS=0 AND AA<1 AND D=0 THEN AR= RND (40): IF AR=10 THEN AA=1: PLAY A$ 1032 IF AA>0 THEN PUT (119,A2)-(139,A2+10),AE:A2=A2+2: IF A2=>38 THEN A2=38 1033 IF A2=38 THEN ER=ER+1: IF ER=3 THEN GO TO 5000 1040 IF R=1 AND D=0 THEN PLAY A$+"P16"+A$ 1050 GO SUB 1450: IF D=1 THEN PUT (110,S2)-(140,S2+20),SB:S2=54 1060 IF R=1 THEN 840 : ELSE 860 1070 IF JJ>0 THEN GO SUB 2060: RETURN : ELSE LL=1: DRAW "C6": FOR Y=96 TO 50 STEP -4: LINE (124,Y)-(128,Y+2), PRESET ,B: GO SUB 1450: LINE (124,Y)-(128,Y+2), PSET ,B: NEXT : DRAW "C8" 1080 IF PPOINT (126,46)=6 THEN GO SUB 1190 1090 FOR K=TS TO TS+96 STEP 32: POKE K,0: NEXT 1100 TS=TS-1: IF TS=<4245 THEN TS=4245: GO SUB 2060 1110 LL=0 1120 RETURN 1130 PUT (XX,38)-(XX+20,48),BL, AND :SS=0:XX=210:DD=0:G=20: RETURN 1140 IF DD=1 THEN RETURN : ELSE PUT (110,S2)-(140,S2+20),SB 1150 S2=S2+4: IF S2=>84 AND D=0 THEN 2790 1160 G=G-2: IF G=<2 THEN GO SUB 2070 1170 IF D=0 THEN PUT (110,S2)-(140,S2+20),S1: RETURN 1180 RETURN 1190 SOUND 10,10: FOR C=8 TO 5 STEP -1: FOR R=2 TO 20 STEP 2: CIRCLE (126,48),R,C,1,0.5,1: NEXT : NEXT 1200 IF SS>0 THEN SS=SS-1 1210 IF XX+9=128 OR XX+10=128 OR XX+11=128 THEN H=H+2: GO TO 1250 1220 IF XX+7=128 OR XX+8=128 OR XX+12=128 OR XX+13=128 THEN H=H+1:T=T+5: GO TO 1250 1230 IF XX+5=128 OR XX+6=128 OR XX+14=128 OR XX+15=128 THEN H=H+1: GO TO 1250 1240 T=T+5 1250 GO SUB 1510:XX=210:A2=30:AA=0:ER=0: RETURN 1260 DD=1: DRAW "C6BM110,30;D8R4E2U4H2L4BR11ND8BR5D4F4E4U4BR5NR8D4NR8D4NR8" 1270 DRAW "C8" 1280 RETURN 1290 LINE (40,155)-(A,B), PRESET : IF A>=40 THEN B=B+2 : ELSE B=B-2 1300 IF B>=155 THEN A=A-2 : ELSE A=A+2 1310 IF A>60 THEN A=60 1320 IF A<20 THEN A=20 1330 IF B>175 THEN B=175 1340 IF B<135 THEN B=135 1350 IF B>153 AND B<157 AND A-20 <40 AND A-20>30 THEN A=60 1360 RETURN 1370 LINE (40,155)-(A,B), PRESET : IF A<=40 THEN B=B+2 : ELSE B=B-2 1380 IF B<=155 THEN A=A-2 : ELSE A=A+2 1390 IF A>60 THEN A=60 1400 IF A<20 THEN A=20 1410 IF B>175 THEN B=175 1420 IF B<135 THEN B=135 1430 IF B>153 AND B<157 AND A-20 <40 AND A-20 >30 THEN A=60 1440 RETURN 1450 IF LL=1 THEN FOR K=0 TO 200: NEXT 1470 IF SS>0 AND D=0 THEN XX=XX- RND (8) 1480 IF HH>0 THEN GO SUB 1260 1490 IF SS>0 AND D=0 THEN PUT (XX,38)-(XX+30,48),S, PSET 1500 RETURN 1510 GO SUB 1690: IF T=0 THEN POKE TP,63: POKE TP+32,51: POKE TP+64,51: POKE TP+96,51: POKE TP+128,63 : ELSE POKE TP,63: POKE TP+32,48: POKE TP+64,63: POKE TP+96,3: POKE TP+128,63 1520 IF H=0 THEN POKE HP,63: POKE HP+32,51: POKE HP+64,51: POKE HP+96,51: POKE HP+128,63 : ELSE FOR K=HP TO HP+128 STEP 32: POKE K,0: NEXT 1530 IF M=0 THEN POKE TH,63: POKE TH+32,51: POKE TH+64,51: POKE TH+96,51: POKE TH+128,63 : ELSE FOR K=TH TO TH+128 STEP 32: POKE K,0: NEXT 1540 IF L=0 THEN POKE HT,63: POKE HT+32,51: POKE HT+64,51: POKE HT+96,51: POKE HT+128,63 : ELSE FOR K=HT TO HT+128 STEP 32: POKE K,0: NEXT 1550 V=HP: ON H GO SUB 1590,1600,1610,1620,1630,1640,1650,1660,1670 1560 V=TH: ON M GO SUB 1590,1600,1610,1620,1630,1640,1650,1660,1670 1570 V=HT: ON L GO SUB 1590,1600,1610,1620,1630,1640,1650,1660,1670 1580 RETURN 1590 FOR K=V TO V+128 STEP 32: POKE K,12: NEXT : RETURN 1600 POKE V,63: POKE V+32,3: POKE V+64,63: POKE V+96,48: POKE V+128,63: RETURN 1610 POKE V,63: POKE V+32,3: POKE V+64,63: POKE V+96,3: POKE V+128,63: RETURN 1620 POKE V,48: POKE V+32,48: POKE V+64,51: POKE V+96,63: POKE V+128,3: RETURN 1630 POKE V,63: POKE V+32,48: POKE V+64,63: POKE V+96,3: POKE V+128,63: RETURN 1640 POKE V,4H2$: GO SUB 408: FOR B=1 TO 7:XF(B)=XE(B): GO SUB 409: NEXT : RETURN 16951 $=B3$:H6$=H2$:H7$=H3$: GO TO 411