Add the website files to the git repo.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 1 Dec 2010 00:42:31 +0000 (19:42 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 1 Dec 2010 00:42:31 +0000 (19:42 -0500)
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 [new file with mode: 0644]
www/historic/mayfield.basic [new file with mode: 0644]
www/index.html [new file with mode: 0644]
www/lpt.jpg [new file with mode: 0644]
www/upload [new file with mode: 0755]

diff --git a/www/historic/UT-Trek.basic b/www/historic/UT-Trek.basic
new file mode 100644 (file)
index 0000000..452bf0a
--- /dev/null
@@ -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<E0*.1 THEN 800
+780  C$="GREEN"
+785  GOTO 801
+790  C$="RED"
+795  GOTO 801
+800  C$="YELLOW"
+801  IF A<0 THEN 803
+802  GOTO 804
+803  GOSUB 5000
+804  IF E<=0 THEN 5200
+805  IF D(2) >= 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*150<E THEN 5049
+5023  IF N1<>0 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 (file)
index 0000000..052da0b
--- /dev/null
@@ -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<E0*.1 THEN 4370
+4330  C$="GREEN"
+4340  GOTO 4380
+4350  C$="RED"
+4360  GOTO 4380
+4370  C$="YELLOW"
+4380  IF D[2] >= 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 (file)
index 0000000..45d70db
--- /dev/null
@@ -0,0 +1,96 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="Author" content="Eric Raymond">
+   <meta name="Description" content="The classic Super Star Trek game.">
+   <meta name="Keywords" content="Star Trek, games, retrocomputing">
+   <title>Super Star Trek home page</title>
+   <style type="text/css">
+BODY 
+{
+       margin-left:  60px;
+       margin-right: 60px;
+       margin-top:   30px;
+}
+   </style>
+</head>
+<body background='lpt.jpg'>
+
+<h1 align='center'><code>Super Star Trek</code> &mdash; a classic computer game</h1>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>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.</p>
+
+<p>Presently the code is available only via <a
+href='https://developer.berlios.de/svn/?group_id=2492'>Subversion</a>
+at the <a href='https://developer.berlios.de/projects/sst/'>SST
+Project Page</a> on berlios.de.  It builds and runs. We expect to do
+an actual release Real Soon Now.</p>
+
+<p>In the meantime, you can at least browse the <a href='sst-doc.html'>game
+documentation</a>.
+
+<p>You can read the project's <a href='TODO'>to-do list</a>.  If
+you want to help with these things, here are the project mailing
+lists:</p>
+
+<ul>
+<li><a
+href="https://lists.berlios.de/mailman/listinfo/sst-users">sst-users</a>
+is for questions and technical support on <code>sst</code>.</p></li>
+
+<li><a
+href="https://lists.berlios.de/mailman/listinfo/sst-devel">sst-dev</a>
+is for <code>sst</code> developers.</p></li>
+
+<li><a
+href="https://lists.berlios.de/mailman/listinfo/sst-commit-watch">sst-commit-watch</a>
+carries notifications of commits to the Subversion archive.  It is
+recommended that developers subscribe to this.</p></li> </ul>
+</ul>
+
+<p>Tom Almy, one of the SST project founders, has <a
+href='http://www.almy.us/sst.html'>an SST page of his own</a>.</p>
+
+<p>There is a <a href='http://en.wikipedia.org/wiki/Super_Star_Trek'>Wikipedia 
+entry</a>.</p>
+
+<p>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.</p>
+
+<p>The only other really current Star Trek port we know of is 
+<a href='http://shankel.best.vwh.net/opentrek.html'>OpenTrek</a>,
+which appears to be set in the ST:TNG universe (featuring the Borg
+Collective as the villains) and has a fancy graphical interface.</p>
+
+<p>(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.)</p>
+
+<p>For a truly retro-Trek experience, see the <a
+href='http://www.calormen.com/Star_Trek/ASCII/'>Star Trek ASCII Art
+Archive</a>.</p>
+
+<p>If this game interested you, you may want to check out some of the
+other ancient games at the <a
+href='http://www.catb.org/retro/'>Retrocomputing Museum</a>.</p>
+
+</body>
+</html>
+
diff --git a/www/lpt.jpg b/www/lpt.jpg
new file mode 100644 (file)
index 0000000..cc74ea0
Binary files /dev/null and b/www/lpt.jpg differ
diff --git a/www/upload b/www/upload
new file mode 100755 (executable)
index 0000000..b8066a1
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh 
+#
+# Upload gpsd docs
+#
+xmlto xhtml-nochunks ../sst-doc.xml
+scp ../TODO ../CHANGES *.html *.jpg esr@shell.berlios.de:/home/groups/sst/htdocs