1  REM ADAPTED FROM INTEREX 2730_L074 PROGRAM STAR
2  REM MODIFIED FOR PTBASIC 1/23 BY WTN - ADDED SEED PROMPT
3  REM TO RANDOMIZE THE RNG, ADDED NUMBER PRINT CODE AND
4  REM RECODED NUMBER PRINTS FOR BETTER FORMATTING
10  PRINT 
20  PRINT "*** STAR ***"
30  PRINT "ENTER A NUMBER TO SEED THE GALAXY ";
40  INPUT Z9
50  LET Z9=ABS(Z9)
60  IF Z9<20000 THEN 70
61  LET Z9=INT(Z9/10)
62  GOTO 60
70  FOR Z8=0 TO Z9
80  LET Z7=RND(0)
90  NEXT Z8
100  DIM A[4],C[4]
200  DEF FNT(B0)=1-(R-500)^2/40000.*SIN(FNX(B0))*(3-FND(B0))/3
220  DEF FNP(B0)=1-(R-200)^2/40000.*SIN(FNX(B0))*(5-FND(B0))/5
270  DEF FND(B0)=INT(ABS(B0/90))
280  DEF FNX(B0)=3.1416*ABS(90-ABS(B0))/180
700  PRINT 
800  LET N=RND(1)*16+1
805  PRINT 
810  PRINT "SPACE, THE FINAL FRONTIER."
820  PRINT "THIS IS A VOYAGE OF THE STARSHIP ";
825  GOSUB 6400
830  PRINT "ITS FIVE YEAR MISSION, TO EXPLORE STRANGE NEW WORLDS,"
840  PRINT "TO SEEK OUT NEW LIFE AND NEW CIVILIZATIONS,"
850  PRINT "TO BOLDLY GO WHERE NO MAN HAS GONE BEFORE."
860  PRINT 
865  GOSUB 8000
870  PRINT 
880  PRINT TAB(20);"S T A R   T R E K"
890  PRINT TAB(20);"-----------------"
892  GOTO 900
895  LET N=RND(1)*16+1
900  PRINT 
940  PRINT "SPOCK:  YOU ARE IN COMMAND OF THE ";
944  GOSUB 6400
946  PRINT ", CAPTAIN KIRK."
980  GOSUB 5280
985  GOSUB 8000
990  GOSUB 5730
1000  PRINT 
1010  LET E1=RND(1)*3+1
1020  LET G1=E1
1030  LET S0=RND(1)*5+1
1040  LET C0=RND(1)*5+1
1050  LET L=RND(1)*8+1
1060  LET Y=50*(RND(1)-.5)
1080  PRINT "KIRK:  CAPTAIN'S LOG, STAR DATE";INT(9999*RND(1))/10
1090  PRINT "  WE ARE PRESENTLY ON COURSE FOR ";
1095  GOSUB 6000
1098  PRINT 
1100  LET I=INT(RND(1)*5+1)
1101  IF I=1 THEN 1110
1102  IF I=2 THEN 1140
1103  IF I=3 THEN 1170
1104  IF I=4 THEN 1190
1105  IF I=5 THEN 1210
1110  PRINT "  IN ORDER TO RESCUE COLONISTS UNDER HEAVY ATTACK"
1120  PRINT "  BY ";
1122  GOSUB 6300
1124  PRINT " BATTLE CRUISERS."
1130  GOTO 1220
1140  PRINT "  WITH A CARGO OF VITAL SERUM TO COMBAT AN EPIDEMIC"
1150  PRINT "  OF RIGELLIAN FEVER THERE."
1160  GOTO 1220
1170  PRINT "  TO SECURE DILITHIUM MINING RIGHTS FOR THE FEDERATION."
1180  GOTO 1220
1190  PRINT "  WITH THE NEW FEDERATION AMBASSADOR TO THAT PLANET."
1200  GOTO 1220
1210  PRINT "  FOR ASTROPHYSICAL RESEARCH ON QUASARS IN THAT SECTOR."
1220  PRINT 
1225  PRINT "SULU:  SIR, I'M PICKING UP A VESSEL ON AN ATTACK VECTOR"
1230  PRINT "  WITH THE ";
1235  GOSUB 6400
1238  PRINT "."
1239  PRINT 
1240  PRINT "SPOCK:  SHIP'S COMPUTERS INDICATE THAT IT IS THE ";
1250  GOSUB 6300
1255  PRINT " VESSEL"
1260  PRINT "  ";
1262  GOSUB 7000
1264  PRINT " UNDER THE COMMAND OF CAPTAIN ";
1266  GOSUB 7200
1268  PRINT "."
1269  PRINT 
1270  PRINT "KIRK:  SOUND RED ALERT, LIEUTENANT UHURA."
1275  PRINT 
1280  PRINT "UHURA:  AYE, SIR."
1330  LET H1=H0=G=X=S=0
1340  LET P=0
1350  FOR I=1 TO 4
1360  LET A[I]=100
1370  LET C[I]=100
1380  NEXT I
1390  LET R=1000-100*RND(1)
1400  LET B=360*(RND(1)-.5)
1410  LET B1=360*(RND(1)-.5)
1420  GOSUB 5540
1422  PRINT 
1425  GOSUB 5900
1430  PRINT ":  WHAT ARE YOUR ORDERS SIR";
1440  INPUT I
1450  GOTO 1575
1540  PRINT ":  I'M SORRY CAPTAIN KIRK, BUT I DON'T UNDERSTAND";
1560  PRINT " YOUR ORDERS."
1570  GOTO 1425
1575  PRINT 
1580  PRINT "KIRK:  ";
1590  GOSUB 7400
1600  IF I=1 THEN 1420
1602  IF I=2 THEN 1640
1604  IF I=3 THEN 1670
1606  IF I=4 THEN 1700
1608  IF I=5 THEN 1730
1610  IF I=6 THEN 1760
1612  IF I=7 THEN 1790
1613  IF I=8 THEN 1790
1616  IF I=9 THEN 1820
1618  IF I=10 THEN 1820
1620  IF I=11 THEN 2690
1622  IF I=12 THEN 1790
1624  IF I=13 THEN 2800
1626  IF I=14 THEN 2840
1628  IF I=15 THEN 2860
1630  IF I=16 THEN 1850
1632  IF I=17 THEN 3640
1634  IF I=18 THEN 3470
1636  IF I=19 THEN 3560
1638  GOTO 1540
1640  IF H1<7 THEN 1920
1645  PRINT 
1650  PRINT "CHEKOV:  FORWARD PHASERS ARE DEAD, SIR."
1660  GOTO 3640
1670  IF H1<6 THEN 2350
1675  PRINT 
1680  PRINT "CHEKOV:  REAR PHASERS ARE DEAD, SIR."
1690  GOTO 3640
1700  IF H1<9 THEN 2370
1705  PRINT 
1710  PRINT "CHEKOV:  FORWARD PHOTON TORPEDOES ARE DEAD, SIR."
1720  GOTO 3640
1730  IF H1<8 THEN 2420
1735  PRINT 
1740  PRINT "CHEKOV:  REAR PHOTON TORPEDOS ARE DEAD, SIR."
1750  GOTO 3640
1760  IF H1<11 THEN 2440
1765  PRINT 
1770  PRINT "CHEKOV:  PROBE LAUNCHER IS DEAD, SIR."
1780  GOTO 3640
1790  IF H1<14 THEN 2540
1795  PRINT 
1800  PRINT "SULU:  IMPULSE ENGINES ARE DEAD, SIR."
1810  GOTO 3640
1820  IF H1<11 THEN 2540
1825  PRINT 
1830  PRINT "SULU:  WARP DRIVE IS DEAD, SIR."
1840  GOTO 3640
1850  IF H0<11 THEN 1880
1855  PRINT 
1860  PRINT "SPOCK:  THE ";
1862  GOSUB 6300
1864  PRINT " HAS NO ENGINES, SIR."
1870  GOTO 3640
1880  IF G=0 THEN 3210
1885  PRINT 
1890  PRINT "SPOCK:  I DO NOT THINK THAT THE ";
1892  GOSUB 6300
1894  PRINT "S WILL BE FOOLED"
1900  PRINT "  BY THAT MANEUVER AGAIN, SIR."
1910  GOTO 3640
1920  IF ABS(B)<90 THEN 1950
1930  PRINT 
1935  PRINT "CHEKOV:  INCORRECT VECTOR, SIR."
1940  GOTO 3640
1950  PRINT 
1955  PRINT "CHEKOV:  PHASERS FIRING, SIR."
1960  IF RND(1)<FNP(B) THEN 1990
1970  PRINT 
1975  PRINT "CHEKOV:  MISSED HIM, SIR."
1980  GOTO 3640
1990  IF RND(1)<.2 THEN 2170
2000  LET V=.5
2010  LET K=1
2020  FOR K1=2 TO 4
2030  IF C[K] >= C[K1] THEN 2050
2040  LET K=K1
2050  NEXT K1
2060  IF C[K]>50 THEN 2080
2070  LET K=INT(RND(1)*4+1)
2080  LET H0=H0+V
2085  PRINT 
2090  PRINT "SPOCK:  A HIT ON SHIELD #";
2091  LET Z9=K
2092  GOSUB 9500
2093  PRINT "."
2100  IF C[K]=0 THEN 2200
2110  LET C[K]=C[K]-30*V*(RND(1)+.1)
2120  GOTO 2130
2130  IF C[K]>0 THEN 2160
2140  PRINT "  WHICH IS NOW GONE."
2150  LET C[K]=0
2160  GOTO 3640
2170  LET V=1
2180  PRINT 
2185  PRINT "CHEKOV:  DIRECT HIT, SIR!"
2190  GOTO 2010
2200  PRINT 
2205  PRINT "CHEKOV:  GOT HIM, SIR!"
2210  IF RND(1)<.5 THEN 5190
2220  PRINT "SPOCK:  THE ";
2222  GOSUB 6300
2224  PRINT " VESSEL REMAINS INTACT, CAPTAIN."
2226  PRINT 
2230  PRINT 
2232  GOSUB 7200
2235  PRINT ":  VERY WELL, CAPTAIN.  OUR SHIELDS HAVE BEEN DEACTIVATED."
2240  PRINT "UHURA:  HAILING FREQUENCY OPEN, SIR."
2245  PRINT 
2250  PRINT "KIRK:  THIS IS CAPTAIN KIRK OF THE STARSHIP ";
2252  GOSUB 6400
2254  PRINT "."
2260  PRINT "  PREPARE TO COMMENCE BEAMING OVER SURVIVORS."
2270  IF RND(1)<.5 THEN 2330
2275  PRINT 
2280  GOSUB 7200
2282  PRINT ":  I AM AFRAID THAT WILL BE QUITE IMPOSSIBLE,"
2290  PRINT "  CAPTAIN, SINCE WE HAVE JUST INITIATED OUR AUTO-DESTRUCT."
2300  PRINT "  ";
2305  GOSUB 9000
2310  REM GO TO DESTROYED SHIP SECTION  
2320  GOTO 5190
2330  REM MISSING STATEMENT 
2340  GOTO 5570
2350  IF ABS(B)<90 THEN 1930
2360  GOTO 1950
2370  IF ABS(B) >= 90 THEN 1930
2375  PRINT 
2380  PRINT "CHEKOV:  PHOTON TORPEDOES FIRING, SIR."
2390  IF RND(1)>FNT(B) THEN 1970
2400  IF RND(1)<.25 THEN 2000
2410  GOTO 2170
2420  IF ABS(B)<90 THEN 1930
2430  GOTO 2380
2440  IF X<10 THEN 2470
2445  PRINT 
2450  PRINT "CHEKOV:  WE HAVE NO MORE PROBES, SIR."
2460  GOTO 3650
2470  PRINT 
2475  PRINT "CHEKOV:  ANTIMATTER PROBE AWAY, SIR."
2480  LET X=X+1
2490  IF RND(1)<7.13500E-02 THEN 2520
2500  PRINT "SPOCK:  PROBE LOST, CAPTAIN."
2510  GOTO 3640
2520  PRINT "SPOCK:  PROBE IS HOMING ON THE ";
2525  GOSUB 7000
2528  PRINT ", SIR."
2530  GOTO 5190
2540  IF I=7 THEN 2550
2541  IF I=8 THEN 2580
2542  IF I=9 THEN 2620
2543  IF I=10 THEN 2650
2544  IF I=11 THEN 2690
2545  IF I=12 THEN 2755
2550  GOSUB 4690
2560  LET R=ABS(R-Y)
2570  GOTO 3640
2580  GOSUB 4750
2585  PRINT 
2590  LET R=ABS(R+Y)
2600  IF R>5000 THEN 4590
2610  GOTO 3640
2620  GOSUB 4790
2630  LET R=ABS(R-2*Y)
2640  GOTO 3640
2650  GOSUB 4850
2660  LET R=ABS(R+2*Y)
2670  IF R>5000 THEN 4590
2680  GOTO 3640
2690  LET S=1
2700  FOR J=2 TO 4
2710  IF A[J] <= A[S] THEN 2730
2720  LET S=J
2730  NEXT J
2735  PRINT 
2740  PRINT "SULU:  SHIELD #";
2741  LET Z9=S
2742  GOSUB 9500
2743  PRINT " IS IN POSITION."
2750  GOTO 1420
2755  REM 180 DEGREE ROTATE SECTION 
2760  LET B=B+180
2770  IF B <= 180 THEN 3640
2780  LET B=B-360
2790  GOTO 3640
2800  PRINT 
2805  PRINT "SPOCK:  AT RANGE ";
2806  LET Z9=R
2807  GOSUB 9500
2808  PRINT " I WOULD ESTIMATE THE PROBABILITY"
2810  PRINT "  OF A PHASER HIT AT ";
2811  LET Z9=FNP(B)*100
2812  GOSUB 9500
2813  PRINT "% AND THE PROBABILITY"
2820  PRINT "  OF A PHOTON TORPEDO HIT AT ";
2821  LET Z9=FNT(B)*100
2822  GOSUB 9500
2823  PRINT "%, APPROXIMATELY."
2830  GOTO 1420
2840  GOSUB 5280
2850  GOTO 1420
2860  PRINT 
2865  PRINT "SPOCK:  DAMAGES ARE AS FOLLOWS:"
2870  PRINT TAB(10);"% OF SHIELDS REMAINING"
2880  PRINT TAB(6);"SHIELD #";TAB(16);
2882  GOSUB 6400
2884  PRINT TAB(30);
2886  GOSUB 7000
2888  PRINT 
2890  FOR J=1 TO 4
2900  PRINT TAB(9);J;TAB(16);A[J];TAB(30);C[J]
2910  NEXT J
2915  PRINT 
2920  GOSUB 6400
2925  PRINT " DAMAGE:";
2930  IF H1>5.5 THEN 2960
2940  PRINT TAB(20);"NONE"
2950  GOTO 3080
2960  PRINT TAB(20);"REAR PHASERS DEAD"
2970  IF H1<7 THEN 3080
2980  PRINT TAB(20);"FORWARD PHASERS DEAD"
2990  IF H1<8 THEN 3080
3000  PRINT TAB(20);"REAR PHOTON TORPEDOES DEAD"
3010  IF H1<9 THEN 3080
3020  PRINT TAB(20);"FORWARD PHOTON TORPEDOES DEAD"
3030  IF H1<11 THEN 3080
3040  PRINT TAB(20);"PROBE LAUNCHER DESTROYED"
3050  PRINT TAB(20);"WARP DRIVE DEAD"
3060  IF H1<14 THEN 3080
3070  PRINT TAB(20);"IMPULSE ENGINES DEAD"
3075  PRINT 
3080  GOSUB 7000
3085  PRINT " DAMAGE:";
3090  IF H0>5.5 THEN 3120
3100  PRINT TAB(20);"NONE"
3110  GOTO 3190
3120  PRINT TAB(20);"ALL PHASERS DEAD"
3130  IF H0<9 THEN 3190
3140  PRINT TAB(20);"ALL PHOTON TORPEDOES DEAD"
3150  IF H0<11 THEN 3190
3160  PRINT TAB(20);"WARP DRIVE DEAD"
3170  IF H0<14 THEN 3190
3180  PRINT TAB(20);"IMPULSE ENGINES DEAD"
3190  PRINT 
3200  GOTO 1420
3210  PRINT 
3215  PRINT "KIRK:  USE CODE 2."
3218  PRINT 
3220  PRINT "UHURA:  CODE 2, SIR?  THE ";
3222  GOSUB 6300
3224  PRINT "S BROKE CODE 2 YESTERDAY, SIR."
3228  PRINT 
3230  PRINT "KIRK:  CODE 2, LIEUTENANT.  IMMEDIATELY."
3235  PRINT 
3240  PRINT "UHURA:  AYE, SIR.  GO AHEAD, SIR."
3245  PRINT 
3250  PRINT "KIRK:  THIS IS CAPTAIN KIRK OF THE STARSHIP ";
3255  GOSUB 6400
3258  PRINT "."
3260  PRINT "  WE ARE UNDER ATTACK BY THE ";
3262  GOSUB 6300
3264  PRINT " SHIP ";
3266  GOSUB 7000
3270  PRINT "  AND, IN ORDER TO PREVENT THE ";
3272  GOSUB 6400
3274  PRINT " FROM FALLING"
3280  PRINT "  INTO ENEMY HANDS, WE ARE ACTIVATING THE CORBOMITE"
3290  PRINT "  DEVICE.  SINCE THIS WILL RESULT IN THE COMPLETE"
3300  PRINT "  ANNIHILATION OF ALL MATTER WITHIN A RANGE OF 5000"
3310  PRINT "  MEGAMETERS, ALL VESSELS SHOULD BE WARNED TO STAY"
3320  PRINT "  CLEAR OF THIS AREA FOR THE NEXT ";INT(RND(1)*4)+2;
3325  PRINT " SOLAR YEARS."
3330  PRINT "  I WISH TO RECORD COMMENDATIONS FOR THE ENTIRE CREW"
3340  PRINT "  AND ESPECIALLY COMMANDER SPOCK, LIEUTENANT"
3350  PRINT "  COMMANDER SCOTT, DOCTOR MC COY, LIEUTENANT UHURA,"
3360  PRINT "  LIEUTENANT SULU, AND ENSIGN CHEKOV."
3370  LET G=1
3380  IF RND(1)>.2 THEN 3430
3385  PRINT 
3390  PRINT "SULU:  THE ";
3392  GOSUB 6300
3394  PRINT " IS MOVING AWAY AT WARP 10, SIR."
3398  PRINT 
3400  PRINT "SPOCK:  THE TACTIC APPEARS TO HAVE BEEN EFFECTIVE, SIR."
3410  PRINT "  THE ";
3412  GOSUB 6300
3414  PRINT " HAS BEEN REPULSED."
3420  GOTO 895
3430  PRINT 
3431  PRINT "SULU:  NO IMMEDIATE CHANGE IN THE ";
3432  GOSUB 6300
3434  PRINT " COURSE AND SPEED, SIR."
3436  PRINT 
3440  PRINT "SPOCK:  IT WOULD SEEM THAT THEY HAVE, ";
3441  PRINT "AS YOU HUMANS PUT IT,"
3450  PRINT "  'CALLED OUR BLUFF', CAPTAIN."
3460  GOTO 3640
3470  PRINT 
3475  PRINT "COMPUTER:  ";
3477  GOSUB 9000
3480  PRINT "  THE ";
3482  GOSUB 6400
3484  PRINT " HAS BEEN DESTROYED!"
3490  LET Q=200*RND(1)
3500  PRINT "  RADIUS OF EXPLOSION: ";
3501  LET Z9=Q
3502  GOSUB 9500
3503  PRINT " MGM."
3510  IF Q >= R THEN 3540
3520  PRINT "  THE ";
3522  GOSUB 6300
3524  PRINT " VESSEL REMAINS INTACT."
3530  GOTO 895
3540  PRINT "  THE ";
3542  GOSUB 6300
3544  PRINT " VESSEL HAS BEEN DESTROYED."
3550  GOTO 5570
3560  IF E1=2 THEN 3590
3565  PRINT 
3570  PRINT "UHURA:  NO ANSWER FROM THE ";
3572  GOSUB 7000
3574  PRINT ", SIR."
3580  GOTO 3640
3590  PRINT 
3591  PRINT "KIRK:  THIS IS CAPTAIN KIRK OF THE STARSHIP ";
3592  GOSUB 6400
3594  PRINT "."
3600  PRINT "  WILL YOU ACCEPT OUR UNCONDITIONAL SURRENDER?"
3605  PRINT 
3610  GOSUB 7200
3612  PRINT ":  ON BEHALF OF THE ";
3614  GOSUB 6300
3616  PRINT " EMPIRE, I ACCEPT YOUR"
3620  PRINT "  UNCONDITIONAL SURRENDER.";
3621  PRINT "  PREPARE FOR IMMEDIATE BOARDING."
3630  GOTO 5570
3640  REM ENEMY MOVE DECISION SECTION.  
3650  IF H0<9 THEN 3960
3660  IF H0<11 THEN 3800
3670  IF H0>13.9 THEN 4480
3680  IF H1>10.9 THEN 4590
3690  IF H1>8.9 THEN 3750
3700  IF R<200*RND(1) THEN 4630
3710  GOSUB 4690
3720  LET R=ABS(R+Y)
3730  IF R>5000 THEN 4590
3740  GOTO 1420
3750  IF RND(1)<.5 THEN 3710
3760  GOSUB 4750
3770  LET R=ABS(R-Y)
3780  IF R>5000 THEN 4590
3790  GOTO 1420
3800  IF H1<7 THEN 3930
3810  IF H1<9 THEN 3700
3820  IF H1>10.9 THEN 4590
3830  IF RND(1)<.5 THEN 3750
3840  IF RND(1)<.5 THEN 3890
3850  GOSUB 4790
3860  LET R=ABS(R+2*Y)
3870  IF R>5000 THEN 4590
3880  GOTO 1420
3890  GOSUB 4850
3900  LET R=ABS(R-2*Y)
3910  IF R>5000 THEN 4590
3920  GOTO 1420
3930  IF R>700 THEN 3890
3940  IF R>200 THEN 3850
3950  GOTO 3700
3960  IF H0<6 THEN 4070
3970  IF H1<7 THEN 4050
3980  IF R<300 THEN 3890
3990  IF R>700 THEN 3850
4000  IF H1>7.9 THEN 4020
4010  IF FND(B1)>FND(B) THEN 3890
4020  IF ABS(B1-90) >= ABS(B-90)-20 THEN 4890
4030  IF RND(1)<.5 THEN 3890
4040  GOTO 3850
4050  IF R>400 THEN 3980
4052  IF R<300 THEN 3890
4056  IF FNP(B1)>FNT(B1) THEN 3890
4060  GOTO 3980
4070  IF H1<7 THEN 4160
4080  IF R>150 THEN 4110
4090  IF RND(1)<.5 THEN 3760
4100  GOTO 3890
4110  IF R >= 400 THEN 4140
4120  IF ABS(B1)<30 THEN 4930
4130  GOTO 3760
4140  IF R>700 THEN 3850
4150  GOTO 4010
4160  IF R>700 THEN 3850
4162  IF R>400 THEN 4010
4164  IF R<300 THEN 4180
4170  IF FNT(B1)>FNP(B1) THEN 4010
4180  IF H1>6.9 THEN 4200
4190  IF FND(B1)>FND(B) THEN 3890
4200  IF ABS(B1-90) >= ABS(B-90)-20 THEN 4930
4210  GOTO 3890
4220  IF H1<6 THEN 4470
4230  LET T=H1-V
4240  IF ABS(T-6)<.1 THEN 4280
4250  IF ABS(H1-6.25)>.3 THEN 4280
4255  PRINT 
4260  PRINT "CHEKOV:  REAR PHASERS DEAD, SIR."
4270  GOTO 4470
4280  IF ABS(T-7)<.1 THEN 4320
4290  IF ABS(H1-7.25)>.3 THEN 4320
4295  PRINT 
4300  PRINT "CHEKOV:  FORWARD PHASERS DEAD, SIR."
4310  GOTO 4470
4320  IF ABS(T-8)<.1 THEN 4360
4330  IF ABS(H1-8.25)>.3 THEN 4360
4335  PRINT 
4340  PRINT "CHEKOV:  REAR PHOTON TORPEDOES DEAD, SIR."
4350  GOTO 4470
4360  IF ABS(T-9)<.1 THEN 4400
4370  IF ABS(H1-9.25)>.3 THEN 4400
4375  PRINT 
4380  PRINT "CHEKOV:  FORWARD PHOTON TORPEDOES DEAD, SIR."
4390  GOTO 4470
4400  IF ABS(T-11)<.1 THEN 4440
4410  IF ABS(H1-11.25)>.3 THEN 4440
4415  PRINT 
4420  PRINT "CHEKOV:  PROBE LAUNCHER AND WARP DRIVE DEAD, SIR."
4430  GOTO 4470
4440  IF ABS(T-14)<.1 THEN 4470
4450  IF ABS(H1-14.25)>.3 THEN 4470
4455  PRINT 
4460  PRINT "CHEKOV:  IMPULSE ENGINES DEAD, SIR."
4470  RETURN 
4480  IF P>0 THEN 1420
4490  LET P=1
4495  PRINT 
4500  PRINT "SPOCK:  THE ";
4502  GOSUB 6300
4504  PRINT " SHIP IS COMPLETELY CRIPPLED, SIR."
4510  PRINT "  DO YOU WANT THEM TO SURRENDER";
4520  INPUT A1
4530  IF A1=1 THEN 2230
4535  PRINT 
4540  PRINT "SPOCK:  DO YOU WANT TO DESTROY THE ";
4542  GOSUB 7000
4544  PRINT "S, CAPTAIN";
4550  INPUT A1
4560  IF A1=1 THEN 1420
4570  GOTO 4600
4580  REM LOSS OF CONTACT SECTION.  
4590  PRINT 
4591  PRINT "SULU:  CONTACT WITH THE ";
4592  GOSUB 6300
4594  PRINT " VESSEL HAS BEEN BROKEN, SIR."
4598  PRINT 
4600  PRINT "KIRK:  RESUME COURSE FOR ";
4602  GOSUB 6000
4604  PRINT ", MR. SULU."
4608  PRINT 
4610  PRINT "SULU:  AYE, SIR."
4620  GOTO 5570
4630  REM ENEMY SUICIDE SECTION.  
4635  GOSUB 5540
4638  PRINT 
4640  PRINT "SPOCK:  SENSORS INDICATE THAT THE ";
4642  GOSUB 7000
4644  PRINT " IS OVERLOADING"
4650  PRINT "  WHAT REMAINS OF ITS ANTIMATTER PODS, UNDOUBTEDLY"
4660  PRINT "  A SUICIDAL MOVE, CAPTAIN.  PODS WILL DETONATE"
4670  PRINT "  IN 12 SECONDS - ";
4675  GOSUB 9000
4680  GOTO 5190
4690  LET R=R-200*(RND(1)+.5)
4700  LET B=360*(RND(1)-.5)
4710  LET B1=360*(RND(1)-.5)
4720  IF R>0 THEN 4740
4730  LET R=-R
4740  RETURN 
4750  LET R=R+200*(RND(1)+.5)
4760  LET B=360*(RND(1)-.5)
4770  LET B1=360*(RND(1)-.5)
4780  RETURN 
4790  LET R=R-400*(RND(1)+.5)
4800  LET B=360*(RND(1)-.5)
4810  LET B1=360*(RND(1)-.5)
4820  IF R>0 THEN 4840
4830  LET R=-R
4840  RETURN 
4850  LET R=R+400*(RND(1)+.5)
4860  LET B=360*(RND(1)-.5)
4870  LET B1=360*(RND(1)-.5)
4880  RETURN 
4890  PRINT 
4891  PRINT "SPOCK:  THE ";
4892  GOSUB 6300
4894  PRINT " IS FIRING PHOTO TORPEDOES AT US, SIR."
4896  IF ABS(R-500)>200 THEN 5170
4900  IF RND(1)>FNT(B1) THEN 5170
4910  IF RND(1)<.4 THEN 5110
4920  GOTO 4960
4930  PRINT 
4931  PRINT "SPOCK:  THE ";
4932  GOSUB 6300
4934  PRINT " IS FIRING PHASERS AT US, SIR."
4936  IF R>400 THEN 5170
4940  IF RND(1)>FNP(B1) THEN 5170
4950  IF RND(1)<.2 THEN 5110
4960  LET V=.5
4970  LET K=INT(RND(1)*4)+1
4980  IF S=0 THEN 5000
4990  LET K=S
5000  PRINT "  A HIT ON SHIELD #";
5001  LET Z9=K
5002  GOSUB 9500
5003  PRINT "."
5010  IF A[K] <= 0 THEN 5090
5020  LET A[K]=A[K]-30*V*(RND(1)+.1)
5030  LET H1=H1+V
5040  GOSUB 4220
5050  IF A[K]>0 THEN 1420
5060  LET A[K]=0
5070  PRINT "  SHIELD #";
5071  LET Z9=K
5072  GOSUB 9500
5073  PRINT " IS GONE."
5080  GOTO 1420
5090  PRINT 
5091  PRINT "COMPUTER:  THE ";
5092  GOSUB 6400
5094  PRINT " HAS BEEN DESTROYED!"
5100  GOTO 3490
5110  LET V=1
5120  LET K=INT(RND(1)*4)+1
5130  IF S=0 THEN 5150
5140  LET K=S
5150  PRINT "  A DIRECT HIT ON SHIELD #";
5151  LET Z9=K
5152  GOSUB 9500
5153  PRINT "."
5160  GOTO 5010
5170  PRINT "  EVASIVE MANEUVERS WERE EFFECTIVE, NO DAMAGE."
5180  GOTO 1420
5190  REM DESTROYED SHIP SECTION  
5200  LET Q=200*RND(1)
5210  IF Q<R THEN 5250
5212  PRINT 
5215  PRINT "COMPUTER:  THE ";
5216  GOSUB 6300
5217  PRINT " VESSEL HAS BEEN DESTROYED."
5220  PRINT "  RADIUS OF EXPLOSION: ";
5221  LET Z9=Q
5222  GOSUB 9500
5223  PRINT " MGM."
5230  PRINT "  THE ";
5232  GOSUB 6400
5234  PRINT " HAS BEEN DESTROYED!"
5240  GOTO 5570
5250  PRINT 
5251  PRINT "SPOCK:  THE ";
5252  GOSUB 6300
5254  PRINT " VESSEL HAS BEEN DESTROYED."
5260  PRINT "  RADIUS OF EXPLOSION: ";
5261  LET Z9=Q
5262  GOSUB 9500
5263  PRINT " MGM."
5270  GOTO 5570
5280  PRINT 
5290  PRINT "SPOCK:  THE POSSIBLE COMMANDS ARE DESIGNATED BY"
5300  PRINT "  THE FOLLOWING NUMBERS OR CODE WORDS:"
5310  PRINT 
5320  PRINT " # CODE                  COMMAND"
5330  PRINT 
5340  PRINT " 1 RANGE       REPEAT LAST RANGE AND BEARING"
5350  PRINT " 2 PHASEF      FIRE FORWARD PHASERS"
5360  PRINT " 3 PHASER      FIRE REAR PHASERS"
5370  PRINT " 4 TORPF       FIRE FORWARD PHOTON TORPEDOES"
5380  PRINT " 5 TORPR       FIRE REAR PHOTON TORPEDOES"
5390  PRINT " 6 PROBE       LAUNCH ANTIMATTER PROBE (MAXIMUM 10)"
5400  PRINT " 7 CLOSE       CLOSE ON ENEMY VESSEL"
5410  PRINT " 8 AWAY        MOVE AWAY FROM ENEMY VESSEL"
5420  PRINT " 9 PURSUE      CLOSE ON ENEMY VESSEL AT WARP SPEED"
5430  PRINT "10 ESCAPE      ESCAPE AT WARP SPEED"
5440  PRINT "11 SHIELDS     SET OPTIMUM SHIELD POSITION"
5450  PRINT "12 ROTATE      ROTATE WEAPONS 180 DEGREES FRONT TO BACK"
5460  PRINT "13 CHANCES     FIRING PROBABILITY REPORT"
5470  PRINT "14 COMMANDS    TYPE THIS LIST AGAIN"
5480  PRINT "15 DAMAGE      DAMAGE REPORT"
5490  PRINT "16 BLUFF       ATTEMPT COMBOMITE BLUFFING MANEUVER"
5500  PRINT "17 WAIT        LET ENEMY MOVE NEXT"
5510  PRINT "18 SUICIDE     ACTIVATE SELF-DESTRUCT (END GAME)"
5520  PRINT "19 SURRENDER   SURRENDER TO ENEMY"
5530  RETURN 
5540  PRINT 
5541  PRINT "SPOCK:  ";
5542  GOSUB 7000
5544  PRINT " RANGE: ";
5545  LET Z9=R
5546  GOSUB 9500
5547  PRINT " MGM, BEARING: ";
5548  LET Z9=B
5549  GOSUB 9500
5550  PRINT " DEG."
5560  RETURN 
5570  REM MISSING STATEMENT 
5730  PRINT 
5740  PRINT "NOTE:  WEAPON RANGES ARE:"
5750  PRINT "       PHASERS     0-400 MGM (OPTIMUM 200)"
5760  PRINT "       TORPEDOES   300-700 MGM (OPTIMUM 500)"
5770  PRINT "       PROBES      ALL RANGES"
5780  PRINT 
5790  PRINT "PHASERS ARE MORE DEADLY THAN TORPEDOES."
5800  PRINT "PROBES CAUSE TOTAL DESTRUCTION BUT ARE EFFECTIVE"
5810  PRINT "ONLY 7 PERCENT OF THE TIME (APPROXIMATELY)."
5820  PRINT "TORPEDOES AND PHASERS ARE MORE DEADLY WHEN THE"
5830  PRINT "BEARING OF THE ENEMY IS CLOSE TO 0, 180, AND -180"
5840  PRINT "DEGREES."
5850  PRINT 
5860  RETURN 
5900  IF RND(1)>.5 THEN 5940
5920  PRINT "SULU";
5930  RETURN 
5940  PRINT "CHEKOV";
5950  RETURN 
6000  IF L=1 THEN 6080
6010  IF L=2 THEN 6100
6020  IF L=3 THEN 6120
6030  IF L=4 THEN 6140
6040  IF L=5 THEN 6160
6050  IF L=6 THEN 6180
6060  IF L=7 THEN 6200
6070  IF L=8 THEN 6220
6080  PRINT "BETA AURIGAE 5";
6090  RETURN 
6100  PRINT "GAMMA TRISKELLION 7";
6110  RETURN 
6120  PRINT "ALPHA ARCTURUS 4";
6140  REM MISSING STATEMENT 
6150  RETURN 
6160  PRINT "DELTA CANOPIS 12";
6170  RETURN 
6180  PRINT "OMICRON BETELGEUSE 27";
6190  RETURN 
6200  PRINT "SIGMA RIGEL 3";
6210  RETURN 
6220  PRINT "KAPPA SIRIUS 8";
6230  RETURN 
6300  IF E1=1 THEN 6330
6310  IF E1=2 THEN 6350
6320  IF E1=3 THEN 6370
6330  PRINT "KLINGON";
6340  RETURN 
6350  PRINT "ROMULAN";
6360  RETURN 
6370  PRINT "THOLIAN";
6380  RETURN 
6400  IF N=1 THEN 6560
6410  IF N=2 THEN 6580
6420  IF N=3 THEN 6600
6430  IF N=4 THEN 6560
6440  IF N=5 THEN 6620
6450  IF N=6 THEN 6560
6460  IF N=7 THEN 6640
6470  IF N=8 THEN 6660
6480  IF N=9 THEN 6680
6490  IF N=10 THEN 6700
6500  IF N=11 THEN 6720
6510  IF N=12 THEN 6740
6520  IF N=13 THEN 6760
6530  IF N=14 THEN 6780
6540  IF N=15 THEN 6800
6550  IF N=16 THEN 6820
6560  PRINT "ENTERPRIZE";
6570  RETURN 
6580  PRINT "VALIANT";
6590  RETURN 
6600  PRINT "HOOD";
6610  RETURN 
6620  PRINT "DEFIANT";
6630  RETURN 
6640  PRINT "EXCALIBUR";
6650  RETURN 
6660  PRINT "EXETER";
6670  RETURN 
6680  PRINT "LEXINGTON";
6690  RETURN 
6700  PRINT "YORKTOWN";
6710  RETURN 
6720  PRINT "REPUBLIC";
6730  RETURN 
6740  PRINT "CONSTITUTION";
6750  RETURN 
6760  PRINT "FARRAGUT";
6770  RETURN 
6780  PRINT "KONGO";
6790  RETURN 
6800  PRINT "CONSTELLATION";
6810  RETURN 
6820  PRINT "INTREPID";
6830  RETURN 
7000  IF S0=1 THEN 7050
7010  IF S0=2 THEN 7070
7020  IF S0=3 THEN 7090
7030  IF S0=4 THEN 7110
7040  IF S0=5 THEN 7130
7050  PRINT "KRULIX";
7060  RETURN 
7070  PRINT "GRANAK";
7080  RETURN 
7090  PRINT "SLORK";
7100  RETURN 
7110  PRINT "QUARLO";
7120  RETURN 
7130  PRINT "TROBLAK";
7140  RETURN 
7200  IF C0=1 THEN 7250
7210  IF C0=2 THEN 7270
7220  IF C0=3 THEN 7290
7230  IF C0=4 THEN 7310
7240  IF C0=5 THEN 7330
7250  PRINT "TRAKKA";
7260  RETURN 
7270  PRINT "KURDA";
7280  RETURN 
7290  PRINT "VARNOR";
7300  RETURN 
7310  PRINT "GRANLOT";
7320  RETURN 
7330  PRINT "SHLURG";
7340  RETURN 
7400  IF I=1 THEN 7590
7410  IF I=2 THEN 7610
7420  IF I=3 THEN 7630
7430  IF I=4 THEN 7650
7440  IF I=5 THEN 7670
7450  IF I=6 THEN 7690
7460  IF I=7 THEN 7710
7470  IF I=8 THEN 7730
7480  IF I=9 THEN 7750
7490  IF I=10 THEN 7770
7500  IF I=11 THEN 7790
7510  IF I=12 THEN 7810
7520  IF I=13 THEN 7830
7530  IF I=14 THEN 7850
7540  IF I=15 THEN 7870
7550  IF I=16 THEN 7890
7560  IF I=17 THEN 7910
7570  IF I=18 THEN 7930
7580  IF I=19 THEN 7950
7590  PRINT "ENEMY RANGE AND BEARING."
7600  RETURN 
7610  PRINT "FIRE FORWARD PHASERS."
7620  RETURN 
7630  PRINT "FIRE REAR PHASERS."
7640  RETURN 
7650  PRINT "FIRE FORWARD PHOTON TORPEDOES."
7660  RETURN 
7670  PRINT "FIRE REAR PHOTON TORPEDOES."
7680  RETURN 
7690  PRINT "LAUNCH ANTIMATTER PROBE."
7700  RETURN 
7710  PRINT "CLOSE ON ENEMY VESSEL."
7720  RETURN 
7730  PRINT "MOVE AWAY FROM ENEMY."
7740  RETURN 
7750  PRINT "CLOSE AT WARP SPEED."
7760  RETURN 
7770  PRINT "ESCAPE AT WARP SPEED."
7780  RETURN 
7790  PRINT "OPTIMUM SHIELD DEFENSE, MR. SULU."
7800  RETURN 
7810  PRINT "180 DEGREES ABOUT, MR. SULU."
7820  RETURN 
7830  PRINT "FIRING PROBABILITIES, MR. SPOCK."
7840  RETURN 
7850  PRINT "A BRIEFING, MR. SPOCK."
7860  RETURN 
7870  PRINT "DAMAGE REPORT, MR. SPOCK."
7880  RETURN 
7890  PRINT "OPEN A CHANNEL TO STAR FLEET, LIEUTENANT."
7900  RETURN 
7910  PRINT "LET'S SEE WHAT THE ENEMY DOES NEXT."
7920  RETURN 
7930  PRINT "ACTIVATE AUTO-DESTRUCT SEQUENCE."
7940  RETURN 
7950  PRINT "OPEN A CHANNEL TO THE ENEMY VESSEL, LIEUTENANT."
7960  RETURN 
8000  FOR Z=1 TO 30
8020  NEXT Z
8030  RETURN 
9000  FOR Z=10 TO 1
9010  PRINT Z;
9020  FOR Z0=1 TO 10
9030  NEXT Z0
9040  NEXT Z
9050  PRINT 
9060  PRINT 
9070  RETURN 
9495  REM *** INTEGER PRINT SUBROUTINE ***
9496  REM UP TO 6 DIGITS -999999 TO 999999, NO SPACES PRINTED
9497  REM NUMBER TO PRINT IN Z9, Z8 AND Z7 USED FOR TEMPS
9498  REM IF OUT OF RANGE JUST PRINTS
9499  REM IF NOT INTEGER JUST PRINTS
9500  IF ABS(Z9) <= 999999. THEN 9505
9501  IF Z9=INT(Z9) THEN 9505
9502  PRINT Z9;
9503  RETURN 
9505  IF Z9 >= 0 THEN 9520
9510  PRINT "-";
9520  LET Z8=ABS(Z9)
9530  LET Z8=INT(Z8)
9540  IF Z8<10 THEN 9660
9550  IF Z8<100 THEN 9630
9560  IF Z8<1000 THEN 9600
9561  IF Z8<10000 THEN 9570
9562  IF Z8<100000. THEN 9566
9563  LET Z7=INT(Z8/100000.)
9564  LET Z8=Z8-Z7*100000.
9565  GOSUB 9700
9566  LET Z7=INT(Z8/10000)
9567  LET Z8=Z8-Z7*10000
9568  GOSUB 9700
9570  LET Z7=INT(Z8/1000)
9580  LET Z8=Z8-Z7*1000
9590  GOSUB 9700
9600  LET Z7=INT(Z8/100)
9610  LET Z8=Z8-Z7*100
9620  GOSUB 9700
9630  LET Z7=INT(Z8/10)
9640  LET Z8=Z8-Z7*10
9650  GOSUB 9700
9660  LET Z7=Z8
9670  GOSUB 9700
9680  RETURN 
9695  REM DIGIT PRINT SUBROUTINE, DIGIT IN Z7
9700  IF Z7=1 THEN 9810
9710  IF Z7=2 THEN 9830
9720  IF Z7=3 THEN 9850
9730  IF Z7=4 THEN 9870
9740  IF Z7=5 THEN 9890
9750  IF Z7=6 THEN 9910
9760  IF Z7=7 THEN 9930
9770  IF Z7=8 THEN 9950
9780  IF Z7=9 THEN 9970
9790  PRINT "0";
9800  RETURN 
9810  PRINT "1";
9820  RETURN 
9830  PRINT "2";
9840  RETURN 
9850  PRINT "3";
9860  RETURN 
9870  PRINT "4";
9880  RETURN 
9890  PRINT "5";
9900  RETURN 
9910  PRINT "6";
9920  RETURN 
9930  PRINT "7";
9940  RETURN 
9950  PRINT "8";
9960  RETURN 
9970  PRINT "9";
9980  RETURN 
9999  END 

