From cc324b5480fa490496b4a89b72c9e23e9e518260 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 30 Nov 2010 19:42:31 -0500 Subject: [PATCH] Add the website files to the git repo. Sigh. The website actually started in 2004 and was last updated in 2006. Metadata and some history are lost because I used a nonstandard Subversion branch layout putting this stuff under 'www'; nprmal up-conversion via git-svn threw this out. --- www/historic/UT-Trek.basic | 1192 +++++++++++++++++++++++++++++++++++ www/historic/mayfield.basic | 643 +++++++++++++++++++ www/index.html | 96 +++ www/lpt.jpg | Bin 0 -> 25245 bytes www/upload | 6 + 5 files changed, 1937 insertions(+) create mode 100644 www/historic/UT-Trek.basic create mode 100644 www/historic/mayfield.basic create mode 100644 www/index.html create mode 100644 www/lpt.jpg create mode 100755 www/upload diff --git a/www/historic/UT-Trek.basic b/www/historic/UT-Trek.basic new file mode 100644 index 0000000..452bf0a --- /dev/null +++ b/www/historic/UT-Trek.basic @@ -0,0 +1,1192 @@ +1 PRINT "U. OF TEXAS STAR TREK GAME BY GRADY HICKS AND JIM KORP." +2 PRINT "GENERAL IDEA STOLEN FROM PENN. U. BY HICKS." +3 PRINT "VASTLY IMPROVED, AND ADAPTED TO TAURUS BY KORP, 5 APRIL 73." +4 GOSUB 9980 +5 PRINT " BE CAREFUL AND HAVE A GOOD TIME." +6 PRINT +7 PRINT +8 X8=RND(0) +9 DIM Q$(10) +10 DIM G(8,8),Q(8,8),D(8),K(9,3),N(3) +11 DIM C$(20) +12 GOSUB 8050 +13 PRINT " TO PLAY SHORT VERSION, TYPE 1 ---" +14 PRINT " TO PLAY REGULAR VERSION, TYPE 2:"; +15 INPUT V +16 IF V = 1 THEN 20 +17 IF V = 2 THEN 20 +18 PRINT +19 GOTO 13 +20 T0=INT(RND(0)*20+20)*100 +21 T=T0 +22 T9=40 +23 E0=3000 +24 E=3000 +25 P0=10 +26 P=10 +27 S9=200 +29 GOSUB 8200 +30 DEF FNO(F)=SQR((K(F,1)-S1)^2+(K(F,2)-S2)^2) +32 Q1=INT(RND(0)*8+1) +34 Q2=INT(RND(0)*8+1) +35 F=1 +40 FOR I=1 TO 7 +42 D(I)=0 +44 NEXT I +62 S1=INT(RND(0)*8+1) +64 S2=INT(RND(0)*8+1) +65 DIM F$(12) +66 DIM N$(15) +72 REM: SET UP GALAXY +75 B9=0 +76 LET E4=W3=A9=C5=0 +77 Z$="DOWN" +80 K9=0 +85 FOR I=1 TO 8 +90 FOR J=1 TO 8 +91 R=RND(0)*64 +95 IF V=2 THEN 150 +100 T9=20 + +110 IF R>=.28 THEN 114 +111 K3=4 +112 GOTO 135 +114 IF R>=1.78 THEN 118 +115 K3=3 +116 GOTO 135 +118 IF R>=5.28 THEN 122 +119 K3=2 +120 GOTO 135 +122 IF R>=9.28 THEN 130 +123 K3=1 +124 GOTO 135 +130 K3=0 +135 K9=K9+K3 +145 GOTO 206 +150 REM: DETERMINE NUMBER OF KLINGONS, BASES AND STARS. +152 IF R>=.01 THEN 156 +153 K3=9 +154 GOTO 195 +156 IF R>=.10 THEN 160 +157 K3=8 +158 GOTO 195 +160 IF R>=.30 THEN 164 +161 K3=7 +162 GOTO 195 +164 IF R>=.80 THEN 168 +165 K3=6 +166 GOTO 195 +168 IF R>=1.25 THEN 172 +169 K3=5 +170 GOTO 195 +172 IF R>=2.00 THEN 176 +173 K3=4 +174 GOTO 195 +176 IF R>=5.28 THEN 180 +177 K3=3 +178 GOTO 195 +180 IF R>=8.28 THEN 183 +181 K3=2 +182 GOTO 195 +183 IF R>=13.28 THEN 190 +184 K3=1 +185 GOTO 195 +190 K3=0 +195 K9=K9+K3 +200 B3=RND(0) +202 IF B3<=.97 THEN 206 +204 B3=1 +205 GOTO 221 +206 B3=0 +221 B9=B9+B3 +230 S3=INT(RND(0)*8+1) +235 G(I,J)=K3*100+B3*10+S3 +250 NEXT J +260 NEXT I +265 K0=K9 +270 IF B9>0 THEN 285 +271 I=INT(RND(0)*8+1) +272 J=INT(RND(0)*8+1) +275 G(I,J)=G(I,J)+10 +276 B9=1 +285 LET P2=1 +294 PRINT +295 PRINT " PLEASE TYPE A SECRET PASSWORD:"; +296 INPUT X$ +297 PRINT +298 LET N1=N9=N7=A7=0 +300 REM: DETERMINE KLINGON COMMANDER +302 IF A9<>0 THEN 320 +304 R1=INT(RND(0)*8+1) +306 R2=INT(RND(0)*8+1) +308 C2=R1 +310 C3=R2 +312 G(C2,C3)=G(C2,C3)+100 +314 K9=K9+1 +315 K0=K9 +316 A9=A9+1 +320 REM: CONTINUE +399 GOTO 9045 +400 REM: SET UP QUADRANT +405 K3=B3=S3=0 +410 IF Q1<1 THEN 500 +420 IF Q1>8 THEN 500 +430 IF Q2<1 THEN 500 +440 IF Q2>8 THEN 500 +450 X=G(Q1,Q2)/99.999 +460 K3=INT(X) +470 B3=INT((X-K3)*10.0) +480 S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10 +490 'MAT K=ZER +491 FOR I=1 TO 8 +492 FOR J=1 TO 8 +493 Q(I,J)=0 +494 NEXT J +495 NEXT I +500 FOR I=1 TO 8 +510 FOR J=1 TO 8 +520 Q(I,J)=0 +530 NEXT J +540 NEXT I +545 IF N1<>1 THEN 550 +548 Q(S1,S2)=5 +549 GOTO 560 +550 Q(S1,S2)=1 +560 FOR I=1 TO K3 +570 GOSUB 9000 +580 Q(R1,R2)=2 +590 K(I,1)=R1 +591 K(I,2)=R2 +593 K(I,3)=S9 +600 NEXT I +601 IF Q1<>C2 THEN 610 +602 IF Q2<>C3 THEN 610 +603 K(I,3)=800 +605 Q(K(I,1),K(I,2))=6 +610 FOR I=1 TO B3 +620 GOSUB 9000 +630 Q(R1,R2)=3 +640 NEXT I +650 FOR I=1 TO S3 +660 GOSUB 9000 +670 Q(R1,R2)=4 +680 NEXT I +690 A=-1 +691 IF P2=1 THEN 700 +693 GOSUB 5000 +694 IF E<=0 THEN 5200 +699 GOTO 955 +700 REM: SHORT RANGE SENSOR SCAN +702 P2=P2+1 +705 LET T8=S1-1 +706 LET U=S1+1 +707 LET M=S2-1 +708 LET N=S2+1 +709 IF T8>=1 THEN 711 +710 T8=1 +711 IF U<=8 THEN 713 +712 U=8 +713 IF M>=1 THEN 715 +714 M=1 +715 IF N<=8 THEN 720 +716 N=8 +720 FOR I=T8 TO U +725 FOR J=M TO N +735 IF Q(I,J)<>3 THEN 740 +736 C$="DOCKED" +737 GOSUB 7700 +739 GOTO 801 +740 NEXT J +745 NEXT I +770 IF K3>0 THEN 790 +775 IF E= 0 THEN 830 +815 PRINT "SHORT RANGE SENSORS ARE OUT " +820 PRINT +825 GOTO 955 +830 PRINT "----------------------" +835 FOR I=1 TO 8 +836 FOR J=1 TO 8 +838 PRINT Q$(Q(I,J)+1);" "; +840 NEXT J +841 PRINT " "; +845 GOSUB 854 +847 NEXT I +848 PRINT "--------------------------" +849 GOTO 955 +854 IF I>1 THEN 859 +855 PRINT "STARDATE "T +856 GOTO 900 +859 IF I>2 THEN 864 +860 PRINT "CONDITION "C$ +861 GOTO 900 +864 IF I>3 THEN 869 +865 PRINT "QUADRANT "Q1;"-"Q2 +866 GOTO 900 +869 IF I>4 THEN 874 +870 PRINT "SECTOR "S1;"-"S2 +871 GOTO 900 +874 IF I>5 THEN 879 +875 PRINT "ENERGY "E +876 GOTO 900 +879 IF I>6 THEN 884 +880 PRINT "PHOTON TORPEDOES "P +881 GOTO 900 +884 IF I>7 THEN 890 +885 PRINT "KLINGONS LEFT "K9 +886 GOTO 900 +890 PRINT "ENERGY SHIELDS "Z$ +900 RETURN +955 IF N9<>1 THEN 959 +956 GOSUB 7950 +957 IF N7=1 THEN 3582 +958 N9=2 +959 PRINT "COMMAND:"; +960 INPUT A +961 IF C$<>"DOCKED" THEN 964 +962 GOSUB 7700 +964 GOTO 7100 +974 PRINT +975 PRINT " 0 = SET COURSE" +980 PRINT " 1 = SHORT RANGE SENSOR SCAN" +985 PRINT " 2 = LONG RANGE SENSOR SCAN" +990 PRINT " 3 = FIRE PHASERS" +995 PRINT " 4 = FIRE PHOTON TORPEDOES" +1000 PRINT " 5 = DAMAGE CONTROL REPORT" +1005 PRINT " 6 = SELF-DESTRUCT" +1006 PRINT " 7 = ABANDON SHIP" +1007 PRINT " 8 = ACTIVATE ENERGY SHIELDS" +1008 PRINT " 9 = DEACTIVATE ENERGY SHIELDS" +1009 PRINT " 10 = FIRE EXPERIMENTAL DEATH RAY" +1018 IF H6=1 THEN 9946 +1019 PRINT +1020 GOTO 955 +1030 REM: WARP DRIVE +1035 C$="MOVING" +1040 PRINT "COURSE (1-8.9999):"; +1050 INPUT C1 +1060 IF C1=0 THEN 955 +1070 IF C1<1 THEN 959 +1080 IF C1>= 9 THEN 1040 +1090 PRINT "WARP FACTOR (0-12):"; +1100 INPUT W1 +1110 IF W1<0 THEN 959 +1120 IF W1>12 THEN 959 +1130 IF W1<=.25 THEN 1163 +1140 IF D(1) >= 0 THEN 1163 +1150 PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .25" +1160 GOTO 1040 +1163 GOTO 7500 +1164 E=E-C5 +1165 IF E<=0 THEN 5200 +1168 IF W1=12 THEN 3500 +1170 REM: THIS IS A CONTINUE CARD +1180 GOSUB 5000 +1185 IF N9=1 THEN 955 +1190 IF E <=0 THEN 5230 +1200 FOR I=1 TO 7 +1215 IF D(I)=0 THEN 1230 +1220 D(I)=D(I)+2 +1222 IF D(I)<0 THEN 1230 +1225 D(I)=0 +1230 NEXT I +1240 IF RND(0)>.20 THEN 1320 +1250 R1=INT(RND(0)*7+1) +1260 IF RND(0)>.5 THEN 1300 +1270 D(R1)=D(R1)-(RND(0)*5+1) +1280 PRINT "*** SPACE STORM, "; +1281 GOSUB 6000 +1283 PRINT F$" DAMAGED ***" +1290 GOTO 1320 +1300 FOR I=R1 TO 7 +1301 IF D(I)<0 THEN 1307 +1302 NEXT I +1303 FOR I=1 TO R1-1 +1304 IF D(I)<0 THEN 1307 +1305 NEXT I +1306 GOTO 1320 +1307 R1=I +1308 D(I)=D(I)+RND(0)*5+1 +1309 IF D(I)<=0 THEN 1311 +1310 D(I)=0 +1311 PRINT "*** TEMPORARY TRUCE, "; +1312 GOSUB 6000 +1313 PRINT F$" STATE OF REPAIR IMPROVED ***" +1320 N=INT(W1*8) +1322 E=E-N-N+5 +1324 T=T+1 +1326 Q(S1,S2)=0 +1327 X=S1 +1328 Y=S2 +1330 IF T>T0+T9 THEN 5200 +1340 GOSUB 3460 +1350 FOR I=1 TO N +1352 S1=S1+X1 +1354 S2=S2+X2 +1356 X3=INT(S1+.5) +1357 Y3=INT(S2+.5) +1370 IF S1<.5 THEN 1480 +1375 IF S2<.5 THEN 1480 +1380 IF S1>=8.5 THEN 1480 +1385 IF S2>=8.5 THEN 1480 +1388 IF Q(X3,Y3)<>0 THEN 1392 +1390 NEXT I +1391 GOTO 1460 +1392 LET Z5=Q(X3,Y3) +1393 IF Z5=6 THEN 6300 +1394 IF Z5<>2 THEN 1405 +1400 GOTO 6300 +1405 PRINT +1406 GOSUB 7900 +1407 PRINT N$;"BLOCKED BY OBJECT AT SECTOR"S1;"-"S2 +1408 S1=S1-X1 +1410 S2=S2-X2 +1460 S1=INT(S1+.5) +1465 S2=INT(S2+.5) +1467 Q(S1,S2)=A5 +1470 GOTO 955 +1480 Q1=INT(Q1+W1*X1+(X-.5)/8) +1481 Q2=INT(Q2+W1*X2+(Y-.5)/8) +1482 IF Q1>=1 THEN 1485 +1483 Q1=1 +1484 Z2=1 +1485 IF Q1<=8 THEN 1488 +1486 Q1=8 +1487 Z2=1 +1488 IF Q2>=1 THEN 1491 +1489 Q2=1 +1490 Z2=1 +1491 IF Q2<=8 THEN 1494 +1492 Q2=8 +1493 Z2=1 +1494 IF Z2<>1 THEN 1497 +1496 GOSUB 8970 +1497 PRINT +1498 IF G(Q1,Q2)>999 THEN 7650 +1499 Z2=0 +1500 S1=INT(RND(0)*8+1) +1510 S2=INT(RND(0)*8+1) +1550 GOTO 400 +1600 REM: LONG RANGE SENSOR SCAN +1610 IF D(3) >= 0 THEN 1640 +1620 PRINT "LONG RANGE SENSORS ARE INOPERABLE" +1625 PRINT +1630 GOTO 955 +1640 PRINT "LONG RANGE SENSOR SCAN FOR QUADRANT"Q1","Q2 +1645 PRINT "----------------- '" +1660 FOR I=Q1-1 TO Q1+1 +1670 N(1)=N(2)=N(3)=0 +1680 FOR J=Q2-1 TO Q2+1 +1690 IF I<1 THEN 1740 +1700 IF I>8 THEN 1740 +1710 IF J<1 THEN 1740 +1720 IF J>8 THEN 1740 +1730 N(J-Q2+2)=G(I,J) +1740 NEXT J +1750 PRINT ":"N(1);":"N(2);":"N(3) +1760 PRINT "------------------- '" +1770 NEXT I +1775 PRINT +1780 GOTO 955 +1800 REM: PHASER CONTROL +1810 IF D(4) >= 0 THEN 1832 +1820 PRINT "PHASER CONTROL IS DISABLED" +1825 PRINT +1830 GOTO 955 +1832 IF C5=0 THEN 1840 +1834 PRINT "YOU MUST LOWER YOUR ENERGY SHIELDS TO FIRE." +1836 PRINT +1837 GOTO 959 +1840 PRINT "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE = "E +1850 PRINT "NUMBER OF UNITS TO FIRE:"; +1860 INPUT X +1870 IF X <= 0 THEN 955 +1880 IF E-X<0 THEN 1840 +1890 E=E-X +1895 IF K3=0 THEN 2010 +1898 W2=K3 +1900 FOR I=1 TO 9 +1910 IF K(I,3) <= 0 THEN 1990 +1929 H=(X)/(FNO(I))*(3.0+RND(0)) +1930 K(I,3)=K(I,3)-(H/W2) +1940 PRINT H/W2;"UNIT HIT ON KLINGON AT SECTOR"K(I,1);"-"K(I,2) +1950 PRINT "("K(I,3);"LEFT)" +1960 IF K(I,3)>0 THEN 1990 +1970 GOSUB 4500 +1980 IF K9 <= 0 THEN 5300 +1990 NEXT I +1995 IF K3<=0 THEN 2020 +2000 GOSUB 5000 +2010 IF E <= 0 THEN 5250 +2020 GOTO 955 +3000 REM: PHOTON TORPEDOES +3010 IF D(5) >= 0 THEN 3040 +3020 PRINT "PHOTON TUBES ARE NOT OPERATIONAL" +3025 PRINT +3030 GOTO 955 +3040 IF P>0 THEN 3062 +3050 PRINT "ALL PHOTON TORPEDOES EXPENDED" +3060 GOTO 955 +3062 IF C5=0 THEN 3068 +3064 PRINT "YOU MUST LOWER YOUR ENERGY SHIELDS TO FIRE." +3066 PRINT +3067 GOTO 959 +3068 PRINT "DO YOU WISH TO FIRE A SPREAD:"; +3069 INPUT M$ +3070 PRINT "TORPEDO COURSE (1-8.9999):"; +3080 INPUT C1 +3090 IF C1=0 THEN 955 +3100 IF C1<1 THEN 3070 +3110 IF C1>=9 THEN 3070 +3111 IF P<3 THEN 3120 +3116 IF M$="YES" THEN 6500 +3120 GOSUB 3460 +3130 X=S1 +3132 Y=S2 +3134 P=P-1 +3140 PRINT "TORPEDO TRACK:"; +3150 X=X+X1 +3155 Y=Y+X2 +3160 IF X<.5 THEN 3422 +3165 IF Y<.5 THEN 3422 +3170 IF X>=8.5 THEN 3422 +3175 IF Y>=8.5 THEN 3422 +3200 PRINT X;"-"Y; +3202 X5=INT(X+.5) +3204 Y5=INT(Y+.5) +3210 IF Q(X5,Y5)<>0 THEN 3230 +3220 GOTO 3150 +3230 LET F7=Q(X5,Y5) +3236 IF F7=1 THEN 3150 +3237 IF F7=2 THEN 3244 +3238 IF F7=3 THEN 3301 +3239 IF F7=4 THEN 3323 +3240 IF F7=6 THEN 3244 +3244 PRINT +3245 PRINT "*** KLINGON DESTROYED ***" +3250 K3=K3-1 +3255 K9=K9-1 +3260 IF K9<=0 THEN 5300 +3271 FOR I=1 TO 9 +3272 IF K(I,1)<>X5 THEN 3275 +3273 IF K(I,2)<>Y5 THEN 3275 +3274 GOTO 3400 +3275 NEXT I +3301 Q(X5,Y5)=0 +3310 PRINT +3311 PRINT "*** STARBASE DESTROYED ... CONGRATULATIONS ***" +3313 B3=B3-1 +3315 GOTO 3410 +3323 Q(X5,Y5)=0 +3334 PRINT +3335 PRINT "***STAR DESTROYED***" +3340 S3=S3-1 +3345 IF S3>=0 THEN 3410 +3347 S3=0 +3350 GOTO 3410 +3400 K(I,3)=0 +3401 Q(X5,Y5)=0 +3410 G(Q1,Q2)=K3*100+B3*10+S3 +3420 GOTO 3430 +3422 PRINT +3425 PRINT "TORPEDO MISSED" +3430 IF E4=0 THEN 3439 +3432 E4=E4+1 +3433 IF E4>3.5 THEN 3438 +3435 GOTO 6520 +3438 IF K3<=0 THEN 3445 +3439 GOSUB 5000 +3440 IF E <= 0 THEN 5230 +3445 E4=0 +3450 GOTO 955 +3460 X2=COS((C1-1)*.785398) +3470 X1=-SIN((C1-1)*.785398) +3480 RETURN +3500 W9=RND(0) +3502 IF T>T0+15 THEN 3510 +3504 PRINT "WARP 12 CANNOT BE USED UNTIL STARDATE"T0+16 +3506 GOTO 1040 +3510 PRINT "SPEED APPROACHING WARP 12." +3520 PRINT "ENGINES OPERATING ABOVE DANGER LEVEL." +3530 PRINT "ALL SAFETY DEVICES DISFUNCTIONAL." +3540 PRINT "CRITICAL OVERHEATING--SPONTANEOUS IMPLOSION IMMINENT." +3570 IF W9>.40 THEN 3600 +3575 FOR I=1 TO 2 +3576 PRINT "*****************************************************" +3577 NEXT I +3578 GOSUB 7900 +3580 PRINT "*** ENTROPY OF"N$;"MAXIMIZED **************" +3582 GOSUB 9980 +3583 PRINT " YOU ATE THAT ONE." +3584 GOTO 9992 +3600 IF W9>.55 THEN 3700 +3610 PRINT +3620 PRINT " YOU ARE TRAVELLING BACK IN TIME." +3630 T=T-6 +3640 PRINT "*** STARDATE ="T+1 +3650 GOTO 1170 +3700 IF W9>.60 THEN 3800 +3710 PRINT +3720 PRINT " YOU ARE TRAVELLING BACK IN TIME." +3730 T=T-11 +3740 PRINT "*** STARDATE ="T+1 +3750 GOTO 1170 +3800 IF W9>.70 THEN 3900 +3810 PRINT +3820 PRINT " YOU ARE TRAVELLING FORWARD IN TIME." +3830 T=T+5 +3840 IF T>T0+T9 THEN 5200 +3850 PRINT "*** STARDATE ="T +3860 GOTO 1170 +3900 PRINT +3910 PRINT "NUCLEAR REACTOR CHAIN REACTION QUENCHED." +3920 PRINT "*** TIME PORTAL MISSED ***" +3930 GOTO 1170 +4000 REM: DAMAGE CONTROL REPORT +4010 IF D(6) >= 0 THEN 4040 +4020 PRINT "DAMAGE CONTROL REPORT IS NOT AVAILABLE" +4025 PRINT +4030 GOTO 955 +4040 PRINT +4050 PRINT "DEVICE STATE OF REPAIR" +4060 FOR I=1 TO 7 +4065 R5=I-.5 +4066 GOSUB 6000 +4070 PRINT F$,D(I) +4080 NEXT I +4090 PRINT +4100 GOTO 955 +4200 REM: +4500 PRINT "*** KLINGON AT SECTOR"K(I,1);"-"K(I,2);"DESTROYED." +4510 K3=K3-1 +4520 K9=K9-1 +4530 Q(K(I,1),K(I,2))=0 +4540 G(Q1,Q2)=K3*100+B3*10+S3 +4550 RETURN +5000 REM: KLINGON ATTACK +5002 GOSUB 7900 +5003 IF K3<=0 THEN 5110 +5005 IF C$ <> "DOCKED" THEN 5017 +5010 PRINT "STARBASE SHIELDS PROTECT THE"N$ +5012 RETURN +5017 IF C5=0 THEN 5022 +5018 PRINT "** KLINGONS ATTACK-- ENERGY SHIELDS PROTECT"N$ +5020 GOTO 5110 +5022 IF K3*1500 THEN 5049 +5024 PRINT +5025 PRINT " KLINGON COMMANDER TO ENTERPRISE---" +5026 PRINT "AS YOU WELL KNOW, YOU ARE DANGEROUSLY LOW ON ENERGY" +5027 PRINT "AND WILL PROBABLY BE DESTROYED BY MY NEXT ATTACK." +5028 PRINT "AS AN OFFICER AND GENTLEMAN, I OFFER YOU A CHANCE TO" +5029 PRINT "SAVE YOURSELF AND YOUR CREW----" +5032 PRINT " DO YOU SURRENDER:"; +5033 INPUT S$ +5034 IF S$<>"YES" THEN 5049 +5035 A7=1 +5036 N9=1 +5038 GOTO 5110 +5049 PRINT +5050 FOR I=1 TO 9 +5051 IF K(I,3) <= 0 THEN 5100 +5060 H=(K(I,3)/FNO(I))*(2+RND(0)) +5070 E=E-H +5075 GOSUB 7900 +5080 PRINT H;"UNIT HIT ON"N$;"FROM KLINGON, SECTOR "K(I,1);"-"K(I,2) +5082 IF H<=180 THEN 5090 +5083 R5=INT(RND(0)*7+1) +5084 D(R5)=D(R5)-(RND(0)*5+1) +5085 PRINT "*** CRITICAL HIT,"; +5086 GOSUB 6000 +5087 PRINT F$" DAMAGED ***" +5090 PRINT "("E;"LEFT)" +5100 NEXT I +5105 PRINT +5110 RETURN +5200 REM: LOSE +5210 GOSUB 9985 +5220 PRINT "IT IS STARDATE"T +5230 PRINT +5250 GOSUB 7900 +5255 PRINT "THE"N$;"HAS BEEN DESTROYED." +5260 PRINT "THERE ARE STILL"K9;"KLINGON BATTLE CRUISERS." +5270 PRINT "THE FEDERATION WILL BE CONQUERED." +5280 PRINT "YOU ARE DEAD, YOU INCOMPETENT FOOL." +5290 GOTO 9992 +5300 REM: WIN +5310 GOSUB 9985 +5320 PRINT "IT IS STARDATE"T +5330 PRINT "THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN" +5331 PRINT "DESTROYED." +5340 PRINT "THE FEDERATION HAS BEEN SAVED." +5350 PRINT "YOU HAVE BEEN PROMOTED TO COMMODORE EMERITUS." +5355 IF N1<>0 THEN 5380 +5360 PRINT K0;"KLINGONS IN"T-T0;"YEARS. RATING="INT(K0/(T-T0)*1000) +5370 GOTO 9992 +5380 PRINT K0;"KLINGONS IN"T-T0;"YEARS." +5382 IF A7=5 THEN 5392 +5385 PRINT "ENTERPRISE CAPTURED." +5390 PRINT "RATING ="INT(K0/(T-T0)*1000-1000) +5391 GOTO 9992 +5392 PRINT "ENTERPRISE DESTROYED INTENTIONALLY." +5393 PRINT "RATING ="INT(K0/(T-T0)*1000-500) +5395 GOTO 9992 +6000 REM: SELECT DAMAGED DEVICE +6002 IF A+1<>1 THEN 6010 +6004 R5=R1 +6010 IF R5>1 THEN 6040 +6020 F$="WARP ENGINES" +6030 GOTO 8000 +6040 IF R5>2 THEN 6070 +6050 F$="S.R. SENSORS" +6060 GOTO 8000 +6070 IF R5>3 THEN 6090 +6075 F$="L.R. SENSORS" +6080 GOTO 8000 +6090 IF R5>4 THEN 6100 +6093 F$="PHASER CNTRL" +6097 GOTO 8000 +6100 IF R5>5 THEN 6110 +6103 F$="PHOTON TUBES" +6107 GOTO 8000 +6110 IF R5>6 THEN 6115 +6111 F$="DAMAGE CNTRL" +6112 GOTO 8000 +6115 F$="ENERGY SHLDS" +6118 GOTO 8000 +6300 REM: RAMMING KLINGON +6301 PRINT +6302 Q(S1,S2)=0 +6304 K3=K3-1 +6305 K9=K9-1 +6310 Z$="DOWN" +6318 FOR I=1 TO 9 +6320 IF K(I,1)<>X3 THEN 6330 +6322 IF K(I,2)<>Y3 THEN 6330 +6323 Z6=K(I,1) +6324 Z7=K(I,2) +6325 GOTO 6360 +6330 NEXT I +6360 K(I,3)=0 +6362 GOSUB 7900 +6363 Q(X3,Y3)=A5 +6365 GOTO 6370 +6370 G(Q1,Q2)=K3*100+B3*10+S3 +6380 PRINT "*** EMERGENCY ALERT ***" +6381 PRINT "*** COLLISION IMMINENT ***" +6382 GOSUB 9980 +6383 GOSUB 7900 +6384 PRINT N$;"RAMS KLINGON AT SECTOR"Z6;"-"Z7 +6385 PRINT "*** KLINGON DESTROYED,"N$;"HEAVILY DAMAGED. ***" +6386 FOR I=1 TO 7 +6387 D(I)=D(I)-(RND(0)*4+1) +6388 NEXT I +6389 C5=0 +6390 E=E-500 +6391 IF K9<=0 THEN 5300 +6395 IF E<=0 THEN 5230 +6396 S1=Z6 +6397 S2=Z7 +6398 A=2 +6399 GOTO 4040 +6500 REM: TORPEDO SPREAD FORMATION +6507 PRINT "SPREAD ANGLE (0.05-0.30):"; +6508 INPUT E5 +6509 IF E5=0 THEN 959 +6510 IF E5<0.05 THEN 6507 +6511 IF E5>0.30 THEN 6507 +6515 E4=1 +6520 PRINT "NUMBER"E4; +6522 IF E4>1.5 THEN 6530 +6524 C1=C1-E5 +6525 GOTO 3120 +6530 C1=C1+E5 +6535 GOTO 3120 +7100 REM: COMMAND LINK +7105 IF A+1 = 1 THEN 1030 +7106 IF A+1 = 2 THEN 700 +7107 IF A+1 = 3 THEN 1600 +7108 IF A+1 = 4 THEN 1800 +7109 IF A+1 = 5 THEN 3000 +7110 IF A+1 = 6 THEN 4000 +7111 IF A+1 = 7 THEN 8100 +7112 IF A+1 = 8 THEN 7400 +7113 IF A+1 = 9 THEN 7800 +7114 IF A+1 = 10 THEN 7850 +7115 IF A+1 = 11 THEN 7200 +7125 GOTO 974 +7200 REM: DEATH RAY +7202 IF T>T0+18 THEN 7208 +7204 PRINT " DEATH RAY CANNOT BE USED UNTIL STARDATE"T0+19 +7205 PRINT +7206 GOTO 959 +7208 IF W3<.05 THEN 7215 +7210 PRINT " DEATH RAY PERMANENTLY OUT OF ORDER." +7212 PRINT +7214 GOTO 959 +7215 IF C5=0 THEN 7225 +7220 PRINT " YOU MUST LOWER YOUR SHIELDS TO FIRE." +7222 PRINT +7223 GOTO 959 +7225 W3=RND(0) +7227 PRINT +7228 IF W3>.35 THEN 7260 +7230 PRINT " *ANTI-MATTER OVERLOAD." +7231 PRINT " TEMPORARY PSUEDO-STARS CREATED FROM ENERGY." +7232 FOR I=1 TO 8 +7233 FOR J=1 TO 8 +7235 IF Q(I,J)<>0 THEN 7240 +7238 Q(I,J)=4 +7240 NEXT J +7241 NEXT I +7245 PRINT +7247 GOTO 830 +7260 IF W3>.50 THEN 7280 +7263 PRINT "*** DEATH RAY BACKFIRES ***" +7265 PRINT "*** BETTER LUCK NEXT TIME ***" +7270 GOTO 3575 +7280 IF W3>.60 THEN 7310 +7283 PRINT "*** DEATH RAY ANNIHILATES ALL KLINGONS IN QUADRANT"Q1;"-"Q2 +7285 K9=K9-K3 +7286 IF K9<=0 THEN 5300 +7287 FOR I=1 TO 8 +7288 FOR J=1 TO 8 +7289 IF Q(I,J)<>6 THEN 7292 +7290 Q(I,J)=0 +7292 IF Q(I,J)<>2 THEN 7294 +7293 Q(I,J)=0 +7294 NEXT J +7295 NEXT I +7296 K3=0 +7298 G(Q1,Q2)=INT(B3*10+S3) +7300 GOTO 959 +7310 IF W3>.75 THEN 7325 +7312 PRINT "*THERMAL REACTOR ENERGY DRAIN." +7314 E=E-(.95*E) +7316 PRINT .95*E"UNITS OF ENERGY BURNED." +7320 GOTO 7283 +7325 IF W3>.95 THEN 7350 +7328 PRINT "*MATTER/ANTI-MATTER TRANSFORMATION." +7330 IF K3>0 THEN 7334 +7332 GOTO 7231 +7334 PRINT "KLINGONS HIT BY MAIN BEAM DUPLICATED." +7335 P8=K3 +7338 FOR I=1 TO P8 +7339 IF K3>8 THEN 7345 +7341 K3=K3+1 +7342 K9=K9+1 +7344 NEXT I +7345 G(Q1,Q2)=K3*100+B3*10+S3 +7346 P2=1 +7349 GOTO 1500 +7350 PRINT "*** DEATH RAY GOES CRAZY ***" +7352 PRINT "*** DESTROYS EVERY KLINGON IN THE GALAXY ***" +7353 PRINT "*** ALSO DESTROYS ENTERPRISE ***" +7354 A7=N1=5 +7360 GOTO 5300 +7400 REM: ABANDON SHIP +7401 IF N1=0 THEN 7404 +7402 PRINT "THE FAIRIE QUEENE CANNOT BE ABANDONED." +7403 GOTO 959 +7404 PRINT +7405 IF A7<>1 THEN 7420 +7410 PRINT "** YOU MAY NOT ABANDON SHIP AFTER YOU HAVE BEEN " +7411 PRINT "ASKED TO SURRENDER." +7415 PRINT +7416 GOTO 959 +7420 PRINT "*** ABANDON SHIP ***" +7421 PRINT "*** ABANDON SHIP ***" +7425 PRINT +7426 PRINT "SERIES ENTER-BLITZ INITIATED." +7429 PRINT "FAIL-SAFE AUTO-OVERRIDE INSERTED." +7433 PRINT "ENTERPRISE COMMANDER AND CREW ESCAPE IN SHUTTLE CRAFT." +7435 PRINT +7440 PRINT "*** ENTERPRISE REDUCED TO SUB-ATOMIC PARTICLES ***" +7441 PRINT +7445 A7=5 +7446 N1=1 +7448 N9=1 +7450 GOTO 955 +7500 REM: SUPERNOVA +7501 IF V=2 THEN 7506 +7502 IF RND(0)>.15 THEN 7600 +7504 GOTO 7508 +7506 IF RND(0)>.10 THEN 7600 +7508 Z3=INT(RND(0)*8+1) +7510 Z4=INT(RND(0)*8+1) +7515 IF G(Z3,Z4)>999 THEN 7600 +7520 S4=G(Z3,Z4)-INT(G(Z3,Z4)*.1)*10 +7525 IF S4<=0 THEN 7600 +7530 PRINT +7535 PRINT "*************************************************" +7540 PRINT "********* SUPERNOVA IN QUADRANT"Z3;"-"Z4 +7542 PRINT "ALL MATTER IN THIS QUADRANT CONVERTED TO ENERGY." +7543 IF Q1<>Z3 THEN 7575 +7544 IF Q2<>Z4 THEN 7575 +7545 PRINT +7546 GOSUB 7900 +7548 PRINT "UNFORTUNATELY, THE"N$;"WAS IN THIS QUADRANT." +7550 GOTO 3582 +7575 PRINT "FROM NOW ON, ANY VESSEL STOPPING IN THIS QUADRANT" +7576 PRINT "WILL BE TOTALLY ENERGIZED." +7577 PRINT "*************************************************" +7579 PRINT +7580 K4=INT(G(Z3,Z4)/99.99) +7582 B4=INT((G(Z3,Z4)/99.99-K4)*10.0) +7584 B9=B9-B4 +7585 K9=K9-K4 +7590 G(Z3,Z4)=INT(1000.0) +7600 GOTO 1164 +7650 REM: STARSHIP ENCOUNTERS OLD SUPERNOVA +7655 PRINT "*** HEY STUPID. YOU WERE WARNED NOT TO STOP IN A" +7656 PRINT "QUADRANT WHERE A SUPERNOVA HAD OCCURRED." +7660 GOTO 8992 +7700 REM: VARIABLE RESUPPLY +7701 IF N1=1 THEN 7710 +7703 E=3000 +7705 P=10 +7708 GOTO 7720 +7710 E=1500 +7715 P=5 +7720 A7=0 +7730 RETURN +7800 REM: ACTIVATE ENERGY SHIELDS +7802 IF D(7)>=0 THEN 7808 +7804 PRINT "ENERGY SHIELDS DISABLED." +7806 GOTO 959 +7808 IF C5=0 THEN 7818 +7810 PRINT "ENERGY SHIELDS ALREADY ACTIVATED." +7811 PRINT +7812 GOTO 959 +7818 PRINT +7819 PRINT "ENERGY SHIELDS ACTIVATED." +7820 PRINT +7822 C5=200 +7824 Z$="UP" +7825 E=E-C5 +7826 IF E<=0 THEN 5200 +7828 GOSUB 5000 +7830 GOTO 959 +7850 REM: DEACTIVATE ENERGY SHIELDS +7855 PRINT +7860 PRINT "ENERGY SHIELDS DEACTIVATED." +7863 PRINT +7865 C5=0 +7868 Z$="DOWN" +7870 GOSUB 5000 +7875 GOTO 955 +7900 REM: DETERMINE NAME +7905 IF N1<>1 THEN 7915 +7908 A5=5 +7910 N$=" FAIRIE QUEENE " +7912 GOTO 7920 +7915 N$=" ENTERPRISE " +7918 A5=1 +7920 RETURN +7950 REM: CHANGING OF THE GUARD AT BUCKINGHAM PALACE +7951 PRINT +7952 FOR I=1 TO 8 +7955 FOR J=1 TO 8 +7957 K3=INT(G(I,J)/99.99) +7958 B3=INT((G(I,J)/99.99-K3)*10.0) +7960 IF B3>0 THEN 7978 +7961 NEXT J +7962 NEXT I +7963 PRINT " YOU HAVE BEEN TAKEN TO KLINGON HEADQUARTERS." +7964 PRINT "IF YOU HAD A STARBASE, YOU WOULD BE REPATRIATED" +7965 PRINT "AND GIVEN A NEW STARSHIP TO COMMAND." +7966 PRINT "SINCE YOU HAVE NO STARBASE, YOU WILL BE MERCILESSLY" +7967 PRINT "TORTURED TO DEATH BY THE ARCHFIEND," +7968 PRINT "CECIL DYBOWSKI, SCOURGE OF THE UNIVERSE." +7970 N7=1 +7975 GOTO 8000 +7978 N9=2 +7979 T=T+1 +7980 Q1=I +7981 Q2=J +7982 E=1500 +7983 P=5 +7984 N1=1 +7985 PRINT "YOU HAVE BEEN SENT BACK TO STARFLEET COMMAND." +7987 PRINT "YOU ARE NOW IN COMMAND OF A NEW STARSHIP," +7988 PRINT " THE FAIRIE QUEENE," +7989 PRINT "WHICH LOOKS LIKE /Q/ ON THE SCAN." +7990 PRINT +7992 PRINT " YE FAIRIE QUEENE IS CURRENTLY IN QUADRANT"Q1;"-"Q2 +7994 PRINT "TRY TO BE MORE CAREFUL THIS TIME." +7995 FOR I=1 TO 7 +7996 D(I)=0 +7997 NEXT I +7998 PRINT +7999 GOTO 1500 +8000 RETURN +8050 Q$(1)="." +8051 Q$(2)="E" +8052 Q$(3)="K" +8053 Q$(4)="B" +8054 Q$(5)="*" +8055 Q$(6)="Q" +8056 Q$(7)="C" +8060 RETURN +8100 REM: SELF-DESTRUCT +8105 PRINT +8110 PRINT "SERIES ENTER-BLITZ INITIATED." +8115 PRINT "IN TEN SECONDS THIS VESSEL WILL SELF-DESTRUCT." +8116 PRINT "10" +8117 PRINT " 9" +8118 PRINT " 8" +8119 PRINT " 7" +8120 PRINT " 6" +8122 PRINT +8123 PRINT "T MINUS 5 SECONDS AND HOLDING." +8124 PRINT "FAIL-SAFE MECHANISM ENGAGED. ONLY THE COMMANDER OF" +8125 PRINT "THE STARSHIP CAN OVERRIDE WITH HIS SECRET PASSWORD." +8126 PRINT "SCIENCE OFFICER HICKS HAS ALREADY ENTERED HIS CORRECT" +8127 PRINT "COUNTER-PASSWORD." +8128 PRINT "TO CONTINUE SERIES ENTER-BLITZ, TYPE YOUR " +8129 PRINT "SECRET PASSWORD:"; +8130 INPUT V$ +8135 IF V$<>X$ THEN 8150 +8139 PRINT +8140 PRINT " 4" +8141 PRINT " 3" +8142 PRINT " 2" +8143 PRINT " 1" +8145 GOTO 3575 +8150 PRINT +8151 PRINT "SERIES ENTER-BLITZ TERMINATED." +8155 PRINT +8160 GOTO 955 +8200 REM: RANDOMIZE +8205 PRINT +8206 PRINT " TYPE A WIERD NUMBER BETWEEN 0.0 AND 1.0 :"; +8207 INPUT E6 +8208 E9=RND(E6) +8210 RETURN +8970 REM: LEAVING GALAXY +8975 IF F>2 THEN 8990 +8980 PRINT +8981 PRINT "STARSHIP ENCOUNTERS END OF GALAXY." +8982 PRINT +8983 PRINT "FOOLISH MORTAL, YOU HAVE ATTEMPTED TO VENTURE OUT OF THE" +8984 PRINT "GALAXY INTO SUB-SPACE. ON THE THIRD TIME YOU TRY THIS," +8985 PRINT "THE LIVING GOD, KORP, WILL DESTROY YOU." +8987 F=F+1 +8988 GOTO 8995 +8990 PRINT +8991 PRINT "YOU HAVE DARED TO ENTER SUB-SPACE A THIRD TIME." +8992 PRINT "FOR THIS, ************ YOU DIE ****************" +8993 GOTO 3575 +8995 RETURN +9000 REM: RANDOM NUMBER GENERATOR +9010 R1=INT(RND(0)*8+1) +9020 R2=INT(RND(0)*8+1) +9030 IF Q(R1,R2) <> 0 THEN 9010 +9040 RETURN +9045 PRINT +9050 PRINT "ORDERS: STARDATE = "T +9060 PRINT +9070 PRINT " AS COMMANDER OF THE UNITED STARSHIP ENTERPRISE," +9080 PRINT "YOUR MISSION IS TO RID THE GALAXY OF THE DEADLY" +9090 PRINT "KLINGON MENACE. TO DO THIS, YOU MUST DESTROY THE " +9100 PRINT "KLINGON INVASION FORCE OF "K9"BATTLE CRUISERS." +9110 PRINT "YOU HAVE"T9;"SOLAR YEARS TO COMPLETE YOUR MISSION." +9120 PRINT "(I.E. UNTIL STARDATE"T0+T9;")." +9125 PRINT +9130 IF B9 > 1 THEN 9133 +9131 PRINT " YOU WILL HAVE ONE SUPPORTING STARBASE." +9132 GOTO 9140 +9133 PRINT " YOU WILL HAVE"B9"SUPPORTING STARBASES." +9140 PRINT "WHEN THE ENTERPRISE DOCKS AT ONE (IS POSITIONED" +9150 PRINT "NEXT TO ONE) IT IS RESUPPLIED WITH ENERGY AND" +9160 PRINT "PHOTON TORPEDOES." +9161 PRINT "THE ENTERPRISE IS CURRENTLY IN" +9162 PRINT "QUADRANT"Q1"-"Q2"SECTOR"S1"-"S2 +9163 PRINT "DO YOU NEED FURTHER INSTRUCTIONS (REVISED 18 APRIL 73)"; +9164 INPUT A$ +9166 PRINT +9170 IF A$<>"YES" THEN 400 +9175 GOSUB 9980 +9180 PRINT " THE GALAXY IS DIVIDED INTO 64 QUADRANTS WITH" +9190 PRINT "THE FOLLOWING COORDINATES:" +9200 PRINT " Y-- 1 2 3 4 5 6 7 8 '" +9210 PRINT " --------------------------------- X" +9220 FOR I=1 TO 8 +9230 PRINT " ' : : : : : : : : : "I +9240 PRINT " --------------------------------- '" +9250 NEXT I +9260 PRINT +9270 PRINT +9280 PRINT +9300 PRINT "EACH QUADRANT IS SIMILARLY DIVIDED INTO 64 SECTORS." +9310 GOSUB 9980 +9320 PRINT "::: DEVICES :::" +9330 PRINT +9340 PRINT "WARP ENGINES: " +9350 PRINT +9360 PRINT "COURSE = A REAL NUMBER FROM 1 TO 8.99999." +9370 PRINT "NUMBERS INDICATE DIRECTION STARTING AT THE RIGHT AND" +9380 PRINT "GOING COUNTER CLOCKWISE:" +9390 PRINT +9400 PRINT " 3" +9410 PRINT " 4 2" +9420 PRINT " /" +9430 PRINT " 5---*---1" +9440 PRINT " /" +9450 PRINT " 6 8" +9460 PRINT " 7" +9470 PRINT +9480 PRINT "WARP FACTOR = A REAL NUMBER FROM 0 TO 12." +9490 PRINT "DISTANCE TRAVELED = INTEGER (WARP FACTOR) QUADRANTS:" +9500 PRINT " WARP .2 = THE ENTERPRISE TRAVELS 1 SECTOR." +9510 PRINT " .5 = 4 SECTORS." +9520 PRINT " 1 = 1 QUADRANT." +9530 PRINT " 2 = 2 QUADRANTS." +9535 PRINT +9540 PRINT +9550 PRINT "FOR EXAMPLE, IF YOU TRAVEL FROM:" +9560 PRINT "QUADRANT 1 - 1, SECTOR 1 - 1, IN DIRECTION 1 AT WARP 2" +9570 PRINT "YOU WOULD STOP AT" +9580 PRINT "QUADRANT 1 - 3, SECTOR 1 - 1 IN THE NEXT STARDATE." +9590 PRINT +9591 PRINT " WHEN YOU CHANGE QUADRANTS, HOWEVER, THE POSITIONS OF" +9592 PRINT "ALL OBJECTS IN THE NEW QUADRANT (INCLUDING THE ENTERPRISE)" +9593 PRINT "ARE RANDOMIZED TO SIMULATE 3-D TRAVEL." +9599 PRINT +9600 PRINT "*** NOTE: EVERY USE OF THE WARP ENGINES TAKES ONE" +9610 PRINT "STARDATE. IF THE ENTERPRISE IS BLOCKED BY SOMETHING" +9620 PRINT "DURING INTRA-QUADRANT TRAVEL IT WILL STOP IN FRONT" +9630 PRINT "OF IT (AND WASTE A STARDATE) ***" +9631 PRINT +9632 PRINT "***NOTE: THERE IS A TIME PORTAL AVAILABLE BY TRAVELLING" +9633 PRINT "AT WARP 12. YOU MAY BE CARRIED EITHER FORWARD OR" +9634 PRINT "BACKWARD IN TIME, BUT THERE IS ALSO A .40 PROBABILITY" +9635 PRINT "THAT YOU WILL BE DESTROYED IN A NUCLEAR IMPLOSION." +9636 PRINT "A WARP FACTOR OF 12 MAY ONLY BE USED AFTER 15 SOLAR YEARS." +9637 PRINT +9638 PRINT "***NOTE: IF THE ENTERPRISE RAMS A KLINGON VESSEL, EITHER" +9639 PRINT "DELIBERATELY OR ACCIDENTLY, THE KLINGON WILL BE" +9640 PRINT "DESTROYED AND THE ENTERPRISE HEAVILY DAMAGED." +9649 GOSUB 9980 +9650 PRINT "SHORT RANGE SENSORS:" +9660 PRINT +9670 PRINT " THE SHORT RANGE SENSORS OF THE ENTERPRISE DISPLAY" +9680 PRINT "A DETAILED VIEW OF THE QUADRANT IT IS CURRENTLY IN." +9690 PRINT "THE ENTERPRISE LOOKS LIKE /E/ ON THE SCREEN." +9700 PRINT "KLINGON BATTLE CRUISERS LOOK LIKE /K/ ON THE SCREEN." +9710 PRINT "STARBASES LOOK LIKE /B/ AND STARS LOOK LIKE * ." +9715 PRINT "THE KLINGONS MAY HAVE A POWERFUL COMMAND SHIP, /C/." +9720 PRINT +9723 PRINT "***NOTE: DOCKING IS A TWO STEP PROCEDURE--FIRST YOU" +9724 PRINT "MUST MOVE ADJACENT TO THE BASE. THEN CONDUCT A " +9725 PRINT "SHORT RANGE SCAN." +9726 PRINT "WHILE DOCKED, STARBASE SHIELDS PROTECT THE STARSHIP." +9729 PRINT +9730 PRINT "***NOTE: CONDITION YELLOW MEANS YOU ARE DANGEROUSLY" +9731 PRINT "LOW ON ENERGY AND SHOULD MAKE FOR A BASE POSTHASTE." +9735 GOSUB 9980 +9736 PRINT "EXPERIMENTAL DEATH RAY" +9737 PRINT +9738 PRINT " THE EXPERIMENTAL DEATH RAY, AS ITS NAME IMPLIES," +9739 PRINT "IS UNPREDICTABLE. HOWEVER, ONE CAN CERTAINLY PREDICT" +9740 PRINT "THAT, IN A GIVEN SITUATION, IT WILL DO WHATEVER IT" +9741 PRINT "DAMN WELL PLEASES. THERE IS A GOOD PROBABILITY THAT IT" +9742 PRINT "WILL DESTROY MANY KLINGONS, BUT THERE COULD BE SOME" +9743 PRINT "INTERESTING SIDE EFFECTS. IT CAN PROBABLY ONLY BE" +9744 PRINT "FIRED ONCE, BUT YOU NEVER KNOW. IT CANNOT BE USED UNTIL" +9745 PRINT "18 SOLAR YEARS HAVE PASSED." +9757 GOSUB 9980 +9758 PRINT "LONG RANGE SENSORS:" +9759 PRINT +9760 PRINT " THE LONG RANGE SENSORS OF THE ENTERPRISE DISPLAY" +9770 PRINT "THE NUMBER OF OBJECTS IN THE 9 CLOSEST QUADRANTS," +9771 PRINT "WITH THE ENTERPRISE IN THE CENTRAL ONE." +9780 PRINT "EACH DIGIT OF THE NUMBER IN EACH BOX MEANS SOMETHING:" +9790 PRINT " THE ONES DIGIT REPRESENTS THE NUMBER OF STARS." +9800 PRINT " TENS STARBASES." +9810 PRINT " HUNDREDS KLINGONS." +9812 PRINT " THOUSANDS SUPERNOVA." +9820 PRINT "FOR EXAMPLE:" +9830 PRINT "319 MEANS 3 KLINGONS, 1 STARBASE, AND 9 STARS." +9840 PRINT "206 MEANS 2 KLINGONS, 0 STARBASES, AND 6 STARS." +9850 PRINT "7 MEANS 0 KLINGONS, 0 STARBASES, AND 7 STARS." +9860 GOSUB 9980 +9861 PRINT "ENERGY SHIELDS:" +9862 PRINT +9863 PRINT " WHILE THE ENERGY SHIELDS OF A STARSHIP ARE ACTIVATED," +9864 PRINT "KLINGON ATTACKS ARE NULLIFIED. EVERY TIME YOU MOVE WITH" +9865 PRINT "YOUR SHIELDS UP, 200 UNITS OF ENERGY ARE USED." +9866 PRINT "ALSO, SHIELD ACTIVATION ITSELF REQUIRES 200 UNITS." +9867 PRINT "NOTE: YOU MUST LOWER YOUR SHIELDS TO ATTACK." +9869 GOSUB 9980 +9870 PRINT "PHASERS:" +9880 PRINT +9890 PRINT " ANY PORTION OF THE ENERGY AVAILABLE CAN BE FIRED." +9900 PRINT "THE BATTLE COMPUTER DIVIDES THIS AMOUNT AMONG THE" +9901 PRINT "KLINGON CRUISERS IN THE QUADRANT AND DETERMINES" +9902 PRINT "THE VARIOUS DIRECTIONS OF FIRE. THE EFFECTIVENESS" +9903 PRINT "OF A HIT DEPENDS MOSTLY ON THE DISTANCE TO THE" +9904 PRINT "TARGET. A KLINGON BATTLE CRUISER STARTS WITH"S9 +9905 PRINT "UNITS OF ENERGY. IT CAN FIRE AN AMOUNT EQUAL TO" +9906 PRINT "WHATEVER ENERGY IT HAS LEFT." +9907 PRINT +9908 PRINT +9909 PRINT "PHOTON TORPEDOES:" +9910 PRINT +9911 PRINT " INITIALLY THE ENTERPRISE HAS"P0"PHOTON TORPEDOES." +9912 PRINT "ONE TORPEDO DESTROYS WHATEVER IT HITS. THE RANGE" +9913 PRINT "OF PHOTON TORPEDOES (LIKE PHASERS) IS LIMITED TO" +9914 PRINT "THE CURRENT QUADRANT. THE COURSE OF A PHOTON TORPEDO" +9915 PRINT "IS SET THE SAME WAY AS THAT OF THE ENTERPRISE." +9916 PRINT "YOU MAY, IF YOU WISH, FIRE A SPREAD OF THREE TORPEDOES" +9917 PRINT "AT ONCE. THERE IS A TIME LAG IN LAUNCHING THEM, THE ONE" +9918 PRINT "WITH THE LOWEST NUMERICAL COURSE BEING FIRED FIRST." +9919 PRINT "FOR EXAMPLE, A TORPEDO COURSE OF 3.49 WITH A SPREAD" +9920 PRINT "ANGLE OF 0.24 WOULD FIRE TORPEDOES AT DIRECTIONS" +9921 PRINT "3.25, 3.49, AND 3.73 ." +9924 GOSUB 9980 +9925 PRINT "DAMAGE CONTROL REPORT:" +9926 PRINT " THE DAMAGE CONTROL REPORT LISTS THE MAIN DEVICES AND" +9927 PRINT "THEIR STATE OF REPAIR. A NEGATIVE STATE OF REPAIR" +9928 PRINT "INDICATES A DISABLES DEVICE. DEVICES CAN BE DAMAGED OR" +9929 PRINT "REPAIRED BY A SPACE STORM OR TRUCE, RESPECTIVELY." +9930 PRINT "ALSO, DAMAGED DEVICES ARE REPAIRED 2 UNITS EVERY STARDATE." +9935 GOSUB 9980 +9940 PRINT "COMMANDS:" +9941 PRINT +9942 H6=1 +9944 GOTO 975 +9946 H6=H6+1 +9952 GOSUB 9980 +9953 PRINT "P.S.--SAVE THIS COPY OF INSTRUCTIONS, SO THAT NEXT" +9954 PRINT "TIME YOU WILL NOT NEED ADDITIONAL INSTRUCIONS AND" +9955 PRINT "CAN PROCEED IMMEDIATELY TO PLAY." +9956 PRINT +9957 PRINT +9960 GOSUB 9980 +9961 PRINT "WHEN YOU ARE READY TO CONTINUE, TYPE 9:"; +9962 INPUT X +9963 GOSUB 9980 +9965 GOTO 400 +9980 REM +9985 FOR I=1 TO 3 +9986 PRINT +9990 NEXT I +9991 RETURN +9992 PRINT +9993 PRINT +9994 PRINT " DO YOU WISH TO PLAY AGAIN:"; +9995 INPUT A$ +9996 IF A$ ="YES" THEN 5 +9997 PRINT +9998 PRINT " ** AVE ATQUE VALE **" +9999 END diff --git a/www/historic/mayfield.basic b/www/historic/mayfield.basic new file mode 100644 index 0000000..052da0b --- /dev/null +++ b/www/historic/mayfield.basic @@ -0,0 +1,643 @@ +REM Extracted from HP tape image 16-Nov-2003 by Pete Turnbull + +1 REM **** HP BASIC PROGRAM LIBRARY ****************************** +2 REM +3 REM STTR1: STAR TREK +4 REM +5 REM 36243 REV B -- 10/73 +6 REM +7 REM **** CONTRIBUTED PROGRAM *********************************** +100 REM ***************************************************************** +110 REM *** *** +120 REM *** STAR TREK: BY MIKE MAYFIELD, CENTERLINE ENGINEERING *** +130 REM *** *** +140 REM *** TOTAL INTERACTION GAME - ORIG. 20 OCT 1972 +150 REM *** *** +160 REM ***************************************************************** +170 GOSUB 5460 +180 PRINT " STAR TREK " +190 PRINT "DO YOU WANT INSTRUCTIONS (THEY'RE LONG!)"; +200 INPUT A$ +210 IF A$ <> "YES" THEN 230 +220 GOSUB 5820 +230 REM ***** PROGRAM STARTS HERE ***** +240 Z$=" " +250 GOSUB 5460 +260 DIM G[8,8],C[9,2],K[3,3],N[3],Z[8,8] +270 DIM C$[6],D$[72],E$[24],A$[3],Q$[72],R$[72],S$[48] +280 DIM Z$[72] +290 T0=T=INT(RND(1)*20+20)*100 +300 T9=30 +310 D0=0 +320 E0=E=3000 +330 P0=P=10 +340 S9=200 +350 S=H8=0 +360 DEF FND(D)=SQR((K[I,1]-S1)^2+(K[I,2]-S2)^2) +370 Q1=INT(RND(1)*8+1) +380 Q2=INT(RND(1)*8+1) +390 S1=INT(RND(1)*8+1) +400 S2=INT(RND(1)*8+1) +410 T7=TIM(0)+60*TIM(1) +420 C[2,1]=C[3,1]=C[4,1]=C[4,2]=C[5,2]=C[6,2]=-1 +430 C[1,1]=C[3,2]=C[5,1]=C[7,2]=C[9,1]=0 +440 C[1,2]=C[2,2]=C[6,1]=C[7,1]=C[8,1]=C[8,2]=C[9,2]=1 +450 MAT D=ZER +460 D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL" +470 D$[49]="PHOTON TUBESDAMAGE CNTRL" +480 E$="SHIELD CNTRLCOMPUTER" +490 B9=K9=0 +500 FOR I=1 TO 8 +510 FOR J=1 TO 8 +520 R1=RND(1) +530 IF R1>.98 THEN 580 +540 IF R1>.95 THEN 610 +550 IF R1>.8 THEN 640 +560 K3=0 +570 GOTO 660 +580 K3=3 +590 K9=K9+3 +600 GOTO 660 +610 K3=2 +620 K9=K9+2 +630 GOTO 660 +640 K3=1 +650 K9=K9+1 +660 R1=RND(1) +670 IF R1>.96 THEN 700 +680 B3=0 +690 GOTO 720 +700 B3=1 +710 B9=B9+1 +720 S3=INT(RND(1)*8+1) +730 G[I,J]=K3*100+B3*10+S3 +740 Z[I,J]=0 +750 NEXT J +760 NEXT I +770 K7=K9 +775 IF B9 <= 0 OR K9 <= 0 THEN 490 +780 PRINT "YOU MUST DESTROY"K9;" KLINGONS IN"T9;" STARDATES WITH"B9;" STARBASES" +810 K3=B3=S3=0 +820 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 920 +830 X=G[Q1,Q2]*.01 +840 K3=INT(X) +850 B3=INT((X-K3)*10) +860 S3=G[Q1,Q2]-INT(G[Q1,Q2]*.1)*10 +870 IF K3=0 THEN 910 +880 IF S>200 THEN 910 +890 PRINT "COMBAT AREA CONDITION RED" +900 PRINT " SHIELDS DANGEROUSLY LOW" +910 MAT K=ZER +920 FOR I=1 TO 3 +930 K[I,3]=0 +940 NEXT I +950 Q$=Z$ +960 R$=Z$ +970 S$=Z$[1,48] +980 A$="<*>" +990 Z1=S1 +1000 Z2=S2 +1010 GOSUB 5510 +1020 FOR I=1 TO K3 +1030 GOSUB 5380 +1040 A$="+++" +1050 Z1=R1 +1060 Z2=R2 +1070 GOSUB 5510 +1080 K[I,1]=R1 +1090 K[I,2]=R2 +1100 K[I,3]=S9 +1110 NEXT I +1120 FOR I=1 TO B3 +1130 GOSUB 5380 +1140 A$=">!<" +1150 Z1=R1 +1160 Z2=R2 +1170 GOSUB 5510 +1180 NEXT I +1190 FOR I=1 TO S3 +1200 GOSUB 5380 +1210 A$=" * " +1220 Z1=R1 +1230 Z2=R2 +1240 GOSUB 5510 +1250 NEXT I +1260 GOSUB 4120 +1270 PRINT "COMMAND:"; +1280 INPUT A +1290 GOTO A+1 OF 1410,1260,2330,2530,2800,3460,3560,4630 +1300 PRINT +1310 PRINT " 0 = SET COURSE" +1320 PRINT " 1 = SHORT RANGE SENSOR SCAN" +1330 PRINT " 2 = LONG RANGE SENSOR SCAN" +1340 PRINT " 3 = FIRE PHASERS" +1350 PRINT " 4 = FIRE PHOTON TORPEDOES" +1360 PRINT " 5 = SHIELD CONTROL" +1370 PRINT " 6 = DAMAGE CONTROL REPORT" +1380 PRINT " 7 = CALL ON LIBRARY COMPUTER" +1390 PRINT +1400 GOTO 1270 +1410 PRINT "COURSE (1-9):"; +1420 INPUT C1 +1430 IF C1=0 THEN 1270 +1440 IF C1<1 OR C1 >= 9 THEN 1410 +1450 PRINT "WARP FACTOR (0-8):"; +1460 INPUT W1 +1470 IF W1<0 OR W1>8 THEN 1410 +1480 IF D[1] >= 0 OR W1 <= .2 THEN 1510 +1490 PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2" +1500 GOTO 1410 +1510 IF K3 <= 0 THEN 1560 +1520 GOSUB 3790 +1530 IF K3 <= 0 THEN 1560 +1540 IF S<0 THEN 4000 +1550 GOTO 1610 +1560 IF E>0 THEN 1610 +1570 IF S<1 THEN 3920 +1580 PRINT "YOU HAVE"E" UNITS OF ENERGY" +1590 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE"S" UNITS LEFT" +1600 GOTO 1270 +1610 FOR I=1 TO 8 +1620 IF D[I] >= 0 THEN 1640 +1630 D[I]=D[I]+1 +1640 NEXT I +1650 IF RND(1)>.2 THEN 1810 +1660 R1=INT(RND(1)*8+1) +1670 IF RND(1) >= .5 THEN 1750 +1680 D[R1]=D[R1]-(RND(1)*5+1) +1690 PRINT +1700 PRINT "DAMAGE CONTROL REPORT:"; +1710 GOSUB 5610 +1720 PRINT " DAMAGED" +1730 PRINT +1740 GOTO 1810 +1750 D[R1]=D[R1]+(RND(1)*5+1) +1760 PRINT +1770 PRINT "DAMAGE CONTROL REPORT:"; +1780 GOSUB 5610 +1790 PRINT " STATE OF REPAIR IMPROVED" +1800 PRINT +1810 N=INT(W1*8) +1820 A$=" " +1830 Z1=S1 +1840 Z2=S2 +1850 GOSUB 5510 +1870 X=S1 +1880 Y=S2 +1885 C2=INT(C1) +1890 X1=C[C2,1]+(C[C2+1,1]-C[C2,1])*(C1-C2) +1900 X2=C[C2,2]+(C[C2+1,2]-C[C2,2])*(C1-C2) +1910 FOR I=1 TO N +1920 S1=S1+X1 +1930 S2=S2+X2 +1940 IF S1<.5 OR S1 >= 8.5 OR S2<.5 OR S2 >= 8.5 THEN 2170 +1950 A$=" " +1960 Z1=S1 +1970 Z2=S2 +1980 GOSUB 5680 +1990 IF Z3 <> 0 THEN 2070 +2030 PRINT USING 5370;S1,S2 +2040 S1=S1-X1 +2050 S2=S2-X2 +2060 GOTO 2080 +2070 NEXT I +2080 A$="<*>" +2083 S1=INT(S1+.5) +2086 S2=INT(S2+.5) +2090 Z1=S1 +2100 Z2=S2 +2110 GOSUB 5510 +2120 E=E-N+5 +2130 IF W1<1 THEN 2150 +2140 T=T+1 +2150 IF T>T0+T9 THEN 3970 +2160 GOTO 1260 +2170 X=Q1*8+X+X1*N +2180 Y=Q2*8+Y+X2*N +2190 Q1=INT(X/8) +2200 Q2=INT(Y/8) +2210 S1=INT(X-Q1*8+.5) +2220 S2=INT(Y-Q2*8+.5) +2230 IF S1 <> 0 THEN 2260 +2240 Q1=Q1-1 +2250 S1=8 +2260 IF S2 <> 0 THEN 2290 +2270 Q2=Q2-1 +2280 S2=8 +2290 T=T+1 +2300 E=E-N+5 +2310 IF T>T0+T9 THEN 3970 +2320 GOTO 810 +2330 IF D[3] >= 0 THEN 2370 +2340 PRINT "LONG RANGE SENSORS ARE INOPERABLE" +2350 IMAGE "LONG RANGE SENSOR SCAN FOR QUADRANT",D,",",D +2360 GOTO 1270 +2370 PRINT USING 2350;Q1,Q2 +2380 PRINT USING 2520 +2390 FOR I=Q1-1 TO Q1+1 +2400 MAT N=ZER +2410 FOR J=Q2-1 TO Q2+1 +2420 IF I<1 OR I>8 OR J<1 OR J>8 THEN 2460 +2430 N[J-Q2+2]=G[I,J] +2440 IF D[7]<0 THEN 2460 +2450 Z[I,J]=G[I,J] +2460 NEXT J +2470 PRINT USING 2510;N[1],N[2],N[3] +2480 PRINT USING 2520 +2490 NEXT I +2500 GOTO 1270 +2510 IMAGE ": ",3(3D," :") +2520 IMAGE "-----------------" +2530 IF K3 <= 0 THEN 3670 +2540 IF D[4] >= 0 THEN 2570 +2550 PRINT "PHASER CONTROL IS DISABLED" +2560 GOTO 1270 +2570 IF D[7] >= 0 THEN 2590 +2580 PRINT " COMPUTER FAILURE HAMPERS ACCURACY" +2590 PRINT "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE="E +2600 PRINT "NUMBER OF UNITS TO FIRE:"; +2610 INPUT X +2620 IF X <= 0 THEN 1270 +2630 IF E-X<0 THEN 2570 +2640 E=E-X +2650 GOSUB 3790 +2660 IF D[7] >= 0 THEN 2680 +2670 X=X*RND(1) +2680 FOR I=1 TO 3 +2690 IF K[I,3] <= 0 THEN 2770 +2700 H=(X/K3/FND(0))*(2*RND(1)) +2710 K[I,3]=K[I,3]-H +2720 PRINT USING 2730;H,K[I,1],K[I,2],K[I,3] +2730 IMAGE 4D," UNIT HIT ON KLINGON AT SECTOR ",D,",",D," (",3D," LEFT)" +2740 IF K[I,3]>0 THEN 2770 +2750 GOSUB 3690 +2760 IF K9 <= 0 THEN 4040 +2770 NEXT I +2780 IF E<0 THEN 4000 +2790 GOTO 1270 +2800 IF D[5] >= 0 THEN 2830 +2810 PRINT "PHOTON TUBES ARE NOT OPERATIONAL" +2820 GOTO 1270 +2830 IF P>0 THEN 2860 +2840 PRINT "ALL PHOTON TORPEDOES EXPENDED" +2850 GOTO 1270 +2860 PRINT "TORPEDO COURSE (1-9):"; +2870 INPUT C1 +2880 IF C1=0 THEN 1270 +2890 IF C1<1 OR C1 >= 9 THEN 2860 +2895 C2=INT(C1) +2900 X1=C[C2,1]+(C[C2+1,1]-C[C2,1])*(C1-C2) +2910 X2=C[C2,2]+(C[C2+1,2]-C[C2,2])*(C1-C2) +2920 X=S1 +2930 Y=S2 +2940 P=P-1 +2950 PRINT "TORPEDO TRACK:" +2960 X=X+X1 +2970 Y=Y+X2 +2980 IF X<.5 OR X >= 8.5 OR Y<.5 OR Y >= 8.5 THEN 3420 +2990 PRINT USING 3000;X,Y +3000 IMAGE 15X,D,",",D +3010 A$=" " +3020 Z1=X +3030 Z2=Y +3040 GOSUB 5680 +3050 IF Z3=0 THEN 3070 +3060 GOTO 2960 +3070 A$="+++" +3080 Z1=X +3090 Z2=Y +3100 GOSUB 5680 +3110 IF Z3=0 THEN 3220 +3120 PRINT "*** KLINGON DESTROYED ***" +3130 K3=K3-1 +3140 K9=K9-1 +3150 IF K9 <= 0 THEN 4040 +3160 FOR I=1 TO 3 +3170 IF INT(X+.5) <> K[I,1] THEN 3190 +3180 IF INT(Y+.5)=K[I,2] THEN 3200 +3190 NEXT I +3200 K[I,3]=0 +3210 GOTO 3360 +3220 A$=" * " +3230 Z1=X +3240 Z2=Y +3250 GOSUB 5680 +3260 IF Z3=0 THEN 3290 +3270 PRINT "YOU CAN'T DESTROY STARS SILLY" +3280 GOTO 3420 +3290 A$=">!<" +3300 Z1=X +3310 Z2=Y +3320 GOSUB 5680 +3330 IF Z3=0 THEN 2960 +3340 PRINT "*** STAR BASE DESTROYED *** .......CONGRATULATIONS" +3350 B3=B3-1 +3360 A$=" " +3370 Z1=INT(X+.5) +3380 Z2=INT(Y+.5) +3390 GOSUB 5510 +3400 G[Q1,Q2]=K3*100+B3*10+S3 +3410 GOTO 3430 +3420 PRINT "TORPEDO MISSED" +3430 GOSUB 3790 +3440 IF E<0 THEN 4000 +3450 GOTO 1270 +3460 IF D[7] >= 0 THEN 3490 +3470 PRINT "SHIELD CONTROL IS NON-OPERATIONAL" +3480 GOTO 1270 +3490 PRINT "ENERGY AVAILABLE ="E+S" NUMBER OF UNITS TO SHIELDS:"; +3500 INPUT X +3510 IF X <= 0 THEN 1270 +3520 IF E+S-X<0 THEN 3490 +3530 E=E+S-X +3540 S=X +3550 GOTO 1270 +3560 IF D[6] >= 0 THEN 3590 +3570 PRINT "DAMAGE CONTROL REPORT IS NOT AVAILABLE" +3580 GOTO 1270 +3590 PRINT +3600 PRINT "DEVICE STATE OF REPAIR" +3610 FOR R1=1 TO 8 +3620 GOSUB 5610 +3630 PRINT "",D[R1] +3640 NEXT R1 +3650 PRINT +3660 GOTO 1270 +3670 PRINT "SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT" +3680 GOTO 1270 +3690 PRINT USING 3700;K[I,1],K[I,2] +3700 IMAGE "KLINGON AT SECTOR ",D,",",D," DESTROYED ****" +3710 K3=K3-1 +3720 K9=K9-1 +3730 A$=" " +3740 Z1=K[I,1] +3750 Z2=K[I,2] +3760 GOSUB 5510 +3770 G[Q1,Q2]=K3*100+B3*10+S3 +3780 RETURN +3790 IF C$ <> "DOCKED" THEN 3820 +3800 PRINT "STAR BASE SHIELDS PROTECT THE ENTERPRISE" +3810 RETURN +3820 IF K3 <= 0 THEN 3910 +3830 FOR I=1 TO 3 +3840 IF K[I,3] <= 0 THEN 3900 +3850 H=(K[I,3]/FND(0))*(2*RND(1)) +3860 S=S-H +3870 PRINT USING 3880;H,K[I,1],K[I,2],S +3880 IMAGE 4D," UNIT HIT ON ENTERPRISE AT SECTOR ",D,",",D," (",4D," LEFT)" +3890 IF S<0 THEN 4000 +3900 NEXT I +3910 RETURN +3920 PRINT "THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE ALL IMPENDING" +3930 PRINT "ATTACK YOU WILL BE DEMOTED TO THE RANK OF PRIVATE" +3940 IF K3 <= 0 THEN 4020 +3950 GOSUB 3790 +3960 GOTO 3940 +3970 PRINT +3980 PRINT "IT IS STARDATE"T +3990 GOTO 4020 +4000 PRINT +4010 PRINT "THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE CONQUERED" +4020 PRINT "THERE ARE STILL"K9" KLINGON BATTLE CRUISERS" +4030 GOTO 230 +4040 PRINT +4050 PRINT "THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN DESTROYED" +4060 PRINT "THE FEDERATION HAS BEEN SAVED !!!" +4070 PRINT +4080 PRINT "YOUR EFFICIENCY RATING ="((K7/(T-T0))*1000) +4090 T1=TIM(0)+TIM(1)*60 +4100 PRINT "YOUR ACTUAL TIME OF MISSION ="INT((((T1-T7)*.4)-T7)*100)" MINUTES" +4110 GOTO 230 +4120 FOR I=S1-1 TO S1+1 +4130 FOR J=S2-1 TO S2+1 +4140 IF I<1 OR I>8 OR J<1 OR J>8 THEN 4200 +4150 A$=">!<" +4160 Z1=I +4170 Z2=J +4180 GOSUB 5680 +4190 IF Z3=1 THEN 4240 +4200 NEXT J +4210 NEXT I +4220 D0=0 +4230 GOTO 4310 +4240 D0=1 +4250 C$="DOCKED" +4260 E=3000 +4270 P=10 +4280 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES" +4290 S=0 +4300 GOTO 4380 +4310 IF K3>0 THEN 4350 +4320 IF E= 0 THEN 4430 +4390 PRINT +4400 PRINT "*** SHORT RANGE SENSORS ARE OUT ***" +4410 PRINT +4420 GOTO 4530 +4430 PRINT USING 4540 +4440 PRINT USING 4550;Q$[1,3],Q$[4,6],Q$[7,9],Q$[10,12],Q$[13,15],Q$[16,18],Q$[19,21],Q$[22,24] +4450 PRINT USING 4560;Q$[25,27],Q$[28,30],Q$[31,33],Q$[34,36],Q$[37,39],Q$[40,42],Q$[43,45],Q$[46,48],T +4460 PRINT USING 4570;Q$[49,51],Q$[52,54],Q$[55,57],Q$[58,60],Q$[61,63],Q$[64,66],Q$[67,69],Q$[70,72],C$ +4470 PRINT USING 4580;R$[1,3],R$[4,6],R$[7,9],R$[10,12],R$[13,15],R$[16,18],R$[19,21],R$[22,24],Q1,Q2 +4480 PRINT USING 4590;R$[25,27],R$[28,30],R$[31,33],R$[34,36],R$[37,39],R$[40,42],R$[43,45],R$[46,48],S1,S2 +4490 PRINT USING 4600;R$[49,51],R$[52,54],R$[55,57],R$[58,60],R$[61,63],R$[64,66],R$[67,69],R$[70,72],E +4500 PRINT USING 4610;S$[1,3],S$[4,6],S$[7,9],S$[10,12],S$[13,15],S$[16,18],S$[19,21],S$[22,24],P +4510 PRINT USING 4620;S$[25,27],S$[28,30],S$[31,33],S$[34,36],S$[37,39],S$[40,42],S$[43,45],S$[46,48],S +4520 PRINT USING 4540 +4530 RETURN +4540 IMAGE "---------------------------------" +4550 IMAGE 8(X,3A) +4560 IMAGE 8(X,3A),8X,"STARDATE",8X,5D +4570 IMAGE 8(X,3A),8X,"CONDITION",8X,6A +4580 IMAGE 8(X,3A),8X,"QUADRANT",9X,D,",",D +4590 IMAGE 8(X,3A),8X,"SECTOR",11X,D,",",D +4600 IMAGE 8(X,3A),8X,"ENERGY",9X,6D +4610 IMAGE 8(X,3A),8X,"PHOTON TORPEDOES",3D +4620 IMAGE 8(X,3A),8X,"SHIELDS",8X,6D +4630 IF D[8] >= 0 THEN 4660 +4640 PRINT "COMPUTER DISABLED" +4650 GOTO 1270 +4660 PRINT "COMPUTER ACTIVE AND AWAITING COMMAND"; +4670 INPUT A +4680 GOTO A+1 OF 4740,4830,4880 +4690 PRINT "FUNCTIONS AVAILABLE FROM COMPUTER" +4700 PRINT " 0 = CUMULATIVE GALACTIC RECORD" +4710 PRINT " 1 = STATUS REPORT" +4720 PRINT " 2 = PHOTON TORPEDO DATA" +4730 GOTO 4660 +4740 PRINT USING 4750;Q1,Q2 +4750 IMAGE "COMPUTER RECORD OF GALAXY FOR QUADRANT ",D,",",D +4760 PRINT USING 5330 +4770 PRINT USING 5360 +4780 FOR I=1 TO 8 +4790 PRINT USING 5350;I,Z[I,1],Z[I,2],Z[I,3],Z[I,4],Z[I,5],Z[I,6],Z[I,7],Z[I,8] +4800 PRINT USING 5360 +4810 NEXT I +4820 GOTO 1270 +4830 PRINT "\012 STATUS REPORT\012" +4840 PRINT "NUMBER OF KLINGONS LEFT ="K9 +4850 PRINT "NUMBER OF STARDATES LEFT ="(T0+T9)-T +4860 PRINT "NUMBER OF STARBASES LEFT ="B9 +4870 GOTO 3560 +4880 PRINT +4890 H8=0 +4900 FOR I=1 TO 3 +4910 IF K[I,3] <= 0 THEN 5260 +4920 C1=S1 +4930 A=S2 +4940 W1=K[I,1] +4950 X=K[I,2] +4960 GOTO 5010 +4970 PRINT USING 4980;Q1,Q2,S1,S2 +4980 IMAGE "YOU ARE AT QUADRANT ( ",D,",",D," ) SECTOR ( ",D,",",D," )" +4990 PRINT "SHIP'S & TARGET'S COORDINATES ARE"; +5000 INPUT C1,A,W1,X +5010 X=X-A +5020 A=C1-W1 +5030 IF X<0 THEN 5130 +5040 IF A<0 THEN 5190 +5050 IF X>0 THEN 5070 +5060 IF A=0 THEN 5150 +5070 C1=1 +5080 IF ABS(A) <= ABS(X) THEN 5110 +5090 PRINT "DIRECTION ="C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)) +5100 GOTO 5240 +5110 PRINT "DIRECTION ="C1+(ABS(A)/ABS(X)) +5120 GOTO 5240 +5130 IF A>0 THEN 5170 +5140 IF X=0 THEN 5190 +5150 C1=5 +5160 GOTO 5080 +5170 C1=3 +5180 GOTO 5200 +5190 C1=7 +5200 IF ABS(A) >= ABS(X) THEN 5230 +5210 PRINT "DIRECTION ="C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)) +5220 GOTO 5240 +5230 PRINT "DIRECTION ="C1+(ABS(X)/ABS(A)) +5240 PRINT "DISTANCE ="(SQR(X^2+A^2)) +5250 IF H8=1 THEN 5320 +5260 NEXT I +5270 H8=0 +5280 PRINT "DO YOU WANT TO USE THE CALCULATOR"; +5290 INPUT A$ +5300 IF A$="YES" THEN 4970 +5310 IF A$ <> "NO" THEN 5280 +5320 GOTO 1270 +5330 IMAGE " 1 2 3 4 5 6 7 8" +5340 IMAGE "---------------------------------------------------" +5350 IMAGE D,8(3X,3D) +5360 IMAGE " ----- ----- ----- ----- ----- ----- ----- -----" +5370 IMAGE " WARP ENGINES SHUTDOWN AT SECTOR ",D,",",D," DUE TO BAD NAVIGATION" +5380 R1=INT(RND(1)*8+1) +5390 R2=INT(RND(1)*8+1) +5400 A$=" " +5410 Z1=R1 +5420 Z2=R2 +5430 GOSUB 5680 +5440 IF Z3=0 THEN 5380 +5450 RETURN +5460 FOR I=1 TO 11 +5470 PRINT +5480 NEXT I +5490 PRINT +5500 RETURN +5510 REM ****** INSERTION IN STRING ARRAY FOR QUADRANT ****** +5520 S8=Z1*24+Z2*3-26 +5530 IF S8>72 THEN 5560 +5540 Q$[S8,S8+2]=A$ +5550 GOTO 5600 +5560 IF S8>144 THEN 5590 +5570 R$[S8-72,S8-70]=A$ +5580 GOTO 5600 +5590 S$[S8-144,S8-142]=A$ +5600 RETURN +5610 REM **** PRINTS DEVICE NAME FROM ARRAY ***** +5620 S8=R1*12-11 +5630 IF S8>72 THEN 5660 +5640 PRINT D$[S8,S8+11]; +5650 GOTO 5670 +5660 PRINT E$[S8-72,S8-61]; +5670 RETURN +5680 REM ******* STRING COMPARISON IN QUADRANT ARRAY ********** +5683 Z1=INT(Z1+.5) +5686 Z2=INT(Z2+.5) +5690 S8=Z1*24+Z2*3-26 +5700 Z3=0 +5710 IF S8>72 THEN 5750 +5720 IF Q$[S8,S8+2] <> A$ THEN 5810 +5730 Z3=1 +5740 GOTO 5810 +5750 IF S8>144 THEN 5790 +5760 IF R$[S8-72,S8-70] <> A$ THEN 5810 +5770 Z3=1 +5780 GOTO 5810 +5790 IF S$[S8-144,S8-142] <> A$ THEN 5810 +5800 Z3=1 +5810 RETURN +5820 PRINT " INSTRUCTIONS:" +5830 PRINT "<*> = ENTERPRISE" +5840 PRINT "+++ = KLINGON" +5850 PRINT ">!< = STARBASE" +5860 PRINT " * = STAR" +5870 PRINT "COMMAND 0 = WARP ENGINE CONTROL" +5880 PRINT " 'COURSE' IS IN A CIRCULAR NUMERICAL 4 3 2" +5890 PRINT " VECTOR ARRANGEMENT AS SHOWN. \ ^ /" +5900 PRINT " INTERGER AND REAL VALUES MAY BE \^/" +5910 PRINT " USED. THEREFORE COURSE 1.5 IS 5 ----- 1" +5920 PRINT " HALF WAY BETWEEN 1 AND 2. /^\" +5930 PRINT " / ^ \" +5940 PRINT " A VECTOR OF 9 IS UNDEFINED, BUT 6 7 8" +5950 PRINT " VALUES MAY APPROACH 9." +5960 PRINT " COURSE" +5970 PRINT " ONE 'WARP FACTOR' IS THE SIZE OF" +5980 PRINT " ONE QUADRANT. THEREFORE TO GET" +5990 PRINT " FROM QUADRANT 6,5 TO 5,5 YOU WOULD" +6000 PRINT " USE COURSE 3, WARP FACTOR 1" +6010 PRINT "COMMAND 1 = SHORT RANGE SENSOR SCAN" +6020 PRINT " PRINTS THE QUADRANT YOU ARE CURRENTLY IN, INCLUDING" +6030 PRINT " STARS, KLINGONS, STARBASES, AND THE ENTERPRISE; ALONG" +6040 PRINT " WITH OTHER PERTINATE INFORMATION." +6050 PRINT "COMMAND 2 = LONG RANGE SENSOR SCAN" +6060 PRINT " SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE" +6070 PRINT " OF THE ENTERPRISE IN THE MIDDLE OF THE SCAN. THE SCAN" +6080 PRINT " IS CODED IN THE FORM XXX, WHERE THE UNITS DIGIT IS THE" +6090 PRINT " NUMBER OF STARS, THE TENS DIGIT IS THE NUMBER OF STAR-" +6100 PRINT " BASES, THE HUNDREDS DIGIT IS THE NUMBER OF KLINGONS." +6110 PRINT "COMMAND 3 = PHASER CONTROL" +6120 PRINT " ALLOWS YOU TO DESTROY THE KLINGONS BY HITTING HIM WITH" +6130 PRINT " SUITABLY LARGE NUMBERS OF ENERGY UNITS TO DEPLETE HIS " +6140 PRINT " SHIELD POWER. KEEP IN MIND THAT WHEN YOU SHOOT AT" +6150 PRINT " HIM, HE GONNA DO IT TO YOU TOO." +6160 PRINT "COMMAND 4 = PHOTON TORPEDO CONTROL" +6170 PRINT " COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL" +6180 PRINT " IF YOU HIT THE KLINGON, HE IS DESTROYED AND CANNOT FIRE" +6190 PRINT " BACK AT YOU. IF YOU MISS, HE WILL SHOOT HIS PHASERS AT" +6200 PRINT " YOU." +6210 PRINT " NOTE: THE LIBRARY COMPUTER (COMMAND 7) HAS AN OPTION" +6220 PRINT " TO COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2)." +6230 PRINT "COMMAND 5 = SHIELD CONTROL" +6240 PRINT " DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO SHIELDS" +6250 PRINT " ENERGY IS TAKEN FROM TOTAL SHIP'S ENERGY." +6260 PRINT "COMMAND 6 = DAMAGE CONTROL REPORT" +6270 PRINT " GIVES STATE OF REPAIRS OF ALL DEVICES. A STATE OF REPAIR" +6280 PRINT " LESS THAN ZERO SHOWS THAT THAT DEVICE IS TEMPORARALY" +6290 PRINT " DAMAGED." +6300 PRINT "COMMAND 7 = LIBRARY COMPUTER" +6310 PRINT " THE LIBRARY COMPUTER CONTAINS THREE OPTIONS:" +6320 PRINT " OPTION 0 = CUMULATIVE GALACTIC RECORD" +6330 PRINT " SHOWS COMPUTER MEMORY OF THE RESULTS OF ALL PREVIOUS" +6340 PRINT " LONG RANGE SENSOR SCANS" +6350 PRINT " OPTION 1 = STATUS REPORT" +6360 PRINT " SHOWS NUMBER OF KLINGONS, STARDATES AND STARBASES" +6370 PRINT " LEFT." +6380 PRINT " OPTION 2 = PHOTON TORPEDO DATA" +6390 PRINT " GIVES TRAJECTORY AND DISTANCE BETWEEN THE ENTERPRISE" +6400 PRINT " AND ALL KLINGONS IN YOUR QUADRANT" +6410 RETURN +6420 END diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..45d70db --- /dev/null +++ b/www/index.html @@ -0,0 +1,96 @@ + + + + + + + + Super Star Trek home page + + + + +

Super Star Trek — a classic computer game

+ +

Save the Federation from the invading Klingons! Visit exotic +planets and strip-mine them for dilithium! Encounter mysterious space +thingies! This is the home page of the classic Super Star Trek game +from the days of slow teletypes, reloaded.

+ +

SST2K is a modern Unix port of the University of Texas "Super Star +Trek" game originally written in FORTRAN in the mid-1970s. It has +options to restrict its feature set to what was in earlier versions.

+ +

SST2K is a kind of time machine back to what interactive programs were +like in the days of hardcopy terminals, before graphics and before +even video displays. Despite this archaism and decades after it was +written, SST2K retains significant play value. We think it's both fun +and instructive to see how good a game could be written under those +conditions.

+ +

Presently the code is available only via Subversion +at the SST +Project Page on berlios.de. It builds and runs. We expect to do +an actual release Real Soon Now.

+ +

In the meantime, you can at least browse the game +documentation. + +

You can read the project's to-do list. If +you want to help with these things, here are the project mailing +lists:

+ +
    +
  • sst-users +is for questions and technical support on sst.

  • + +
  • sst-dev +is for sst developers.

  • + +
  • sst-commit-watch +carries notifications of commits to the Subversion archive. It is +recommended that developers subscribe to this.

+ + +

Tom Almy, one of the SST project founders, has an SST page of his own.

+ +

There is a Wikipedia +entry.

+ +

SST is fairly closely related to Eric Allman's BSD Trek, which also started +life as a C translation of UT Super Star Trek. BSD Trek is missing most of +the post-1978 features of SST2K, but does add a cloaking device for the +Romulans.

+ +

The only other really current Star Trek port we know of is +OpenTrek, +which appears to be set in the ST:TNG universe (featuring the Borg +Collective as the villains) and has a fancy graphical interface.

+ +

(There are also some multi-player Trek variants out there, notably +XTrek and NetTrek, that have a very different feel from any of the +Trek solitaires.)

+ +

For a truly retro-Trek experience, see the Star Trek ASCII Art +Archive.

+ +

If this game interested you, you may want to check out some of the +other ancient games at the Retrocomputing Museum.

+ + + + diff --git a/www/lpt.jpg b/www/lpt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cc74ea0f4e6d10e9a8929510e881403f3e830f50 GIT binary patch literal 25245 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