10 SUB SUBSTA 12 COMMON (A1) !MAP ARRAYS & A(18,22), F(18,22) !CURRENT AND OLD POSITIONS & , D(9) !DAMAGE & , S(9),SD(9) !STATUS & , AZ(8) !AZIMUTH INFO 15 COMMON (A2) !VARIABLES AND COUNTERS & IND !FUNCTION INDICATOR & , Z1,ZOLD !TURN COUNTER & , P,POLD !POWER & , D,DOLD !DEPTH & , S1,S2 !SUBMARINE COORDINATES & , S3,S4, S5,S6 !HEADQUARTERS COORDINATES & , Q5 !DIFFICULTY & , Q6 !ISLAND CUTS COUNTER & , S,S7 !SHIP COUNTERS & , C !CREW & , F !FUEL & , D2 !REARM COUNTER & , T,M !TORPEDO & MISSLE COUNTERS & , D8,D9 !UNIT VECTOR FOR SHIPS & , M1,M2 !UNIT VECTOR FOR HAZARDS & , RNG !DEPTH CHARGE RANGE & , N$ !NAME 17 E$=CHR$(155%) !ESCAPE 19 ON IND GOTO 190,8700,1225,20,190 !RESTART,X,REPAINT,START,RESTART 20 PRINT E$;"[2J";E$;"[8;1f";E$;"[7;m" !ERASE, POSITION CURSER, REVERSE VIDIO 40 PRINT E$;"#3 SUBMARINE" 50 PRINT E$;"#4 SUBMARINE" 60 PRINT E$;"[0;m";E$;"[14;36fREVISED BY" 70 PRINT\PRINT E$;"#6 Al Greist, Dick & Joe Lee" 80 PRINT\PRINT\PRINT\PRINT\INPUT"INTRODUCTION";I$ 90 IF LEFT$(I$,1)="Y" THEN GOSUB 8430 !BR FOR INTRO 94 DATA 1,-1,1,0,1,1,0,-1,0,1,-1,-1,-1,0,-1,1 95 DATA 0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1, 96 DATA 1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0, 110 REM ******************** PROGRAM FOLLOWS ****************************** 130 RANDOM 150 PRINT " WHAT IS YOUR RANK AND NAME"; 160 INPUT N$ 170 PRINT 190 REM ******************** SET UP AREA ********************************** 200 REM AREA = I: ROW J: COLUMN 220 FOR I=1 TO 18 !ASSIGN SEA AREA-ROW 230 FOR J=1 TO 22 !ASSIGN SEA AREA-COL 240 A(I,J)=0 !FILL ALL AREAS WITH A 0 250 F(I,J)=-1 260 NEXT J 280 NEXT I 310 REM ******************** SET UP ISLAND *********************************** 320 REM LAND = "#", LOCATION = A(X,Y), LAND MAY BE BLOWN AWAY 340 RESTORE 350 FOR X=1 TO 16\READ A9$\NEXT X 360 FOR X=7 TO 13 !MAIN ISLAND 370 FOR Y=7 TO 12 !MAIN ISLAND 380 READ A(X,Y) 390 NEXT Y 400 NEXT X 410 A(6,20)=1\A(6,18)=1\A(7,19)=1\A(6,19)=1\A(5,18)=1 !SECOND ISLAND 430 REM ******************** SET UP SUB ************************************** 440 REM SUB = "2", LOCATION = A(S1,S2) 460 S1=10\S2=10 470 A(S1,S2)=2 490 REM ******************** SET UP ENEMY SHIPS ****************************** 500 REM ENEMY SHIP = "3", LOCATION = A(X1,Y1), S = SHIP COUNT 520 PRINT " SKILL LEVEL (0-9 BEGINNER-EXPERT)";UL$;\INPUT S$\PRINT L$; 530 IF ASCII(S$)<48 OR ASCII(S$)>57 THEN PRINT"INPUT NUMBER ONLY";U$\GOTO 520 540 S=ASCII(S$)-48 545 RNG=INT(S/2+2) 550 S=INT(S*3.4+10) 560 RESTORE 580 FOR X=1 TO (INT(RND*4)+1)*2-1 590 READ D8,D9 600 NEXT X 610 FOR X=1 TO S 620 X1=INT(RND*18)+1 630 X2=INT(RND*22)+1 640 IF A(X1,X2)<>0 THEN 620 650 A(X1,X2)=3 660 NEXT X 670 S7=S !SHIP COUNT STORAGE 690 REM ******************** SET UP HEADQUARTERS **************************** 700 REM HDQTRS = "4", LOCATION = A(S3,S4) OR A(S5,S6), HDQTRS DO NOT MOVE 720 S3=INT(RND*18)+1 730 S4=INT(RND*22)+1 740 IF A(S3,S4)<>0 THEN 720 750 A(S3,S4)=4 760 S5=INT(RND*18)+1 770 S6=INT(RND*22)+1 780 IF A(S5,S6)<>0 THEN 760 790 A(S5,S6)=4 810 REM ******************** SET UP UNDERWATER MINES ************************ 820 REM MINES = "5", LOCATION = A(X1,X2), MINES DO NOT MOVE 840 FOR J=1 TO INT(RND*8)+8 850 X1=INT(RND*18)+1 860 X2=INT(RND*22)+1 870 IF A(X1,X2)<>0 THEN 850 880 A(X1,X2)=5 890 NEXT J 900 Q5=S*S/(8+J/10)*100 !SET UP FOR Q FACTOR 902 A$=DATE$(0%) 904 IF POS(A$,"01-Apr",1%)<1 THEN 920 908 Q5=-1.4*Q5 920 REM ******************** SET UP HAZARDS **************************** 930 REM HAZARDS = "6", LOCATION = A(X1,X2), SM'S MOVE 950 FOR X=1 TO 4 960 X1=INT(RND*16)+2 970 X2=INT(RND*20)+2 980 IF A(X1,X2)<>0 THEN 960 990 A(X1,X2)=6 1000 NEXT X 1010 RESTORE 1030 FOR Y=1 TO INT (RND*8)+1 1040 READ M1,M2 1050 NEXT Y 1070 REM ******************** SET STARTING VALUES ************************ 1090 FOR I=1 TO 9 1100 D(I)=0 !SET DAMAGE STATUS TO OK FOR ALL 1130 NEXT I 1140 Q6=2 !ISLAND CUT LIMIT TO 2 1150 C=30 !CREW 1160 P=6000 !POWER 1170 F=2500 !FUEL 1180 T=10 !TORPEDOS 1190 M=3 !MISSLES 1200 D=100 !DEPTH 1210 D2=2 !REARM CAPABILITY 1220 Z1=1 1225 IND=3\ZOLD=0 !SET TURN COUNTER TO 0 1230 POLD=0\DOLD=0 1234 FOR I=1 TO 5 1236 SD(I)=-1 !SET ALL STATUS FOR PRINT OUT 1237 NEXT I 1240 PRINT E$;"[2J"; !ERASE SCREEN 1250 PRINT E$;"[19;24r"; !SCROLLING REGION=20-24 1260 PRINT E$;"[1;50fSTATUS:"; !STATUS REPORT SCREEN SETUP 1270 PRINT E$;"[2;47fDestroyers.."; 1280 PRINT E$;"[3;47fTorpedos...." 1290 PRINT E$;"[4;47fMissles......"; 1300 PRINT E$;"[5;47fCrew........"; 1310 PRINT E$;"[6;47fFuel...... ";J 1320 PRINT E$;"[8;47fAZM: RANGE:"; 1330 PRINT E$;"[9;48f1"; 1340 PRINT E$;"[10;48f2"; 1350 PRINT E$;"[11;48f3"; 1360 PRINT E$;"[12;48f4" 1370 PRINT E$;"[13;48f6"; 1380 PRINT E$;"[14;48f7"; 1390 PRINT E$;"[15;48f8"; 1400 PRINT E$;"[16;48f9" 1410 PRINT E$;"[1;69fDAMAGE:"; !DAMAGE REPORT SCREEN SETUP 1420 PRINT E$;"[2;66f0-Engine"; 1430 PRINT E$;"[3;66f1-Sonar"; 1440 PRINT E$;"[4;66f2-Torpedo"; 1450 PRINT E$;"[5;66f3-Missles" 1460 PRINT E$;"[6;66f4-Depth"; 1470 PRINT E$;"[7;66f5-Status"; 1480 PRINT E$;"[8;66f6-Headqt"; 1490 PRINT E$;"[9;66f7-Frogmen" 1500 PRINT E$;"[10;66f8-Convert"; 1510 PRINT E$;"[11;66f9-Help" 1520 PRINT E$;"[13;67fScore:"; 1530 PRINT E$;"[14;67fTurns:"; 1540 PRINT E$;"[15;67fPower:"; 1550 PRINT E$;"[16;67fDepth:";E$;"[?;4h" !SMOOTH SCROLLING 1560 GOTO 8700 !RETURN TO MAIN PROGRAM 8430 REM *********************** INTRODUCTION ******************************* 8450 PRINT " 'SUBMARINE' IS PLAYED WITH YOU COMMANDING A NUCLEAR SUBMARINE, THE 'NAU-" 8460 PRINT "TILUS' ON COMBAT PATROL. YOUR PATROL IS AN AREA OF 18,000 YARDS BY 22,000" 8470 PRINT "YARDS. YOUR OBJECTIVE IS TO DESTROY ALL ENEMY SHIPS AND ALL ENEMY 'HUNTER-" 8480 PRINT "KILLER' SUBS THAT ARE WITHIN YOUR PATROL AREA WHILE RETAINING BOTH HEADQUAR-" 8490 PRINT "TERS." 8500 PRINT " WITHIN THE AREA IS LOCATED TWO ISLANDS, ONE CONTAINING A LAGOON IN WHICH" 8510 PRINT "THE 'NAUTILUS' BEGINS ITS COMBAT PATROL. YOUR PATROL AREA CONTAINS ENEMY" 8520 PRINT "SHIPS, UNDERWATER MINES, AND MANY ASSORTED HAZARDS, ALL WHICH CAN DESTROY THE" 8530 PRINT "'NAUTILUS'." 8540 PRINT " THE 'NAUTILUS' IS INITIALLY EQUIPPED WITH A NUCLEAR REACTOR ENGINE, 10" 8550 PRINT "TORPEDOS, 3 SHIP TO SHIP ATOMIC WARHEAD MISSLES, MISSLE FLIGHT FUEL, A SPECIAL" 8560 PRINT "POWER- FUEL-POWER CONVERTER, SONAR EQUIPMENT, ENEMY SUB RADAR DETECTION EQUIP-" 8570 PRINT "MENT, A SECRET CODE SENDING RADIO, AND 30 CREW MEMBERS TO OPERATE THE 'NAUTI-" 8580 PRINT "LUS' AND ITS EQUIPMENT." 8590 PRINT " AN ONBOARD 'OPERATIONAL MANUAL' IS AVAILABLE FOR YOU TO CONSULT FOR" 8600 PRINT "FURTHER SPECIFIC DETAILED INFORMATION." 8630 PRINT " THE MANUAL CAN BE READ BY PRESSING THE 'RETURN' KEY DURING THE 'ORDERS?'" 8640 PRINT "INPUT. " 8650 PRINT " TYPICAL TACTICS INCLUDE 'RUNNING QUIET', SABOTAGE BY FROGMEN, REARMING AT" 8660 PRINT "HEADQUARTERS, LONG-RANGE SHOTS WITH TORPEDOS OR MASSIVE ATOMIC MISSLE DESTRUC-" 8670 PRINT "TION, OR IF ALL ELSE FAILS, DESTROYING THE LAST OF THE ENEMY ALONG WITH YOUR-" 8680 PRINT "SELF BY EXPLODING THE 'NAUTILUS' WITH ITS ON BOARD ANTI-CAPTURE ATOMIC BOMB." 8685 PRINT 8690 RETURN 8700 SUBEND