1
0
mirror of synced 2026-05-05 15:45:13 +00:00

Add files via upload

This commit is contained in:
ken rector
2025-02-03 09:57:21 -08:00
committed by GitHub
parent 3675cbfd7a
commit 32ed2ddeb6

View File

@@ -46,7 +46,7 @@ C--------IF THERE IS AT LEAST ONE BASE LEFT, YOU GET THE FAERIE QUEENE
CALL PROUT(42HTHE FAERIE QUEENE, WHICH IS ANTIQUATED BUT,42) CALL PROUT(42HTHE FAERIE QUEENE, WHICH IS ANTIQUATED BUT,42)
CALL PROUT(14HSTILL USEABLE.,14) CALL PROUT(14HSTILL USEABLE.,14)
C--------SELECT BASE AT WHICH TO BEGIN AGAIN C--------SELECT BASE AT WHICH TO BEGIN AGAIN
NB=RANF(0)*REMBASE+1 NB=RAND()*REMBASE+1
C--------RESET FLAGS. C--------RESET FLAGS.
ICRYSTL=0 ICRYSTL=0
IMINE=0 IMINE=0
@@ -59,9 +59,9 @@ C--------SET UP QUADRANT AND POSITION F. Q. ADJACENT TO BASE
CALL NEWQUAD CALL NEWQUAD
QUAD(SECTX,SECTY)=IHDOT QUAD(SECTX,SECTY)=IHDOT
DO 50 L=1,3 DO 50 L=1,3
SECTX=3.0*RANF(0)-1.0+BASEX SECTX=3.0*RAND()-1.0+BASEX
IF(SECTX .LT. 1 .OR. SECTX .GT. 10) GO TO 50 IF(SECTX .LT. 1 .OR. SECTX .GT. 10) GO TO 50
SECTY=3.0*RANF(0)-1.0+BASEY SECTY=3.0*RAND()-1.0+BASEY
IF(SECTY .LT. 1 .OR. SECTY .GT. 10) GO TO 50 IF(SECTY .LT. 1 .OR. SECTY .GT. 10) GO TO 50
IF(QUAD(SECTX,SECTY) .EQ. IHDOT) GO TO 60 IF(QUAD(SECTX,SECTY) .EQ. IHDOT) GO TO 60
50 CONTINUE 50 CONTINUE
@@ -130,7 +130,7 @@ C--------IF KPOWER IS LT ZERO THEN ENEMY CAN'T ATTACK.
6 IF(KPOWER(L) .LT. 0)GO TO 5 6 IF(KPOWER(L) .LT. 0)GO TO 5
ATTCKD=1 ATTCKD=1
C--------COMPUTE HIT STRENGTH AND DIMINISH SHIELD POWER C--------COMPUTE HIT STRENGTH AND DIMINISH SHIELD POWER
DUSTFAC=0.80+0.05*RANF(0) DUSTFAC=0.80+0.05*RAND()
HIT=KPOWER(L)*DUSTFAC**KDIST(L) HIT=KPOWER(L)*DUSTFAC**KDIST(L)
II=KX(L) II=KX(L)
JJ=KY(L) JJ=KY(L)
@@ -138,7 +138,7 @@ C--------COMPUTE HIT STRENGTH AND DIMINISH SHIELD POWER
C--------DECIDE IF ENEMY SHOULD FIRE PHOTON TORPEDO C--------DECIDE IF ENEMY SHOULD FIRE PHOTON TORPEDO
IF(HIT .GT. 400.0 .OR. JUSTIN .EQ. 1) GO TO 10 IF(HIT .GT. 400.0 .OR. JUSTIN .EQ. 1) GO TO 10
IF(HIT .GT. 300.0 .AND. KDIST(L) .GT. 5.0) GO TO 10 IF(HIT .GT. 300.0 .AND. KDIST(L) .GT. 5.0) GO TO 10
IF(IQUAD .EQ. IHK .AND. RANF(0) .GT. 0.10) GO TO 10 IF(IQUAD .EQ. IHK .AND. RAND() .GT. 0.10) GO TO 10
C--------ENEMY FIRES PHOTON TORPEDO. C--------ENEMY FIRES PHOTON TORPEDO.
IPHWHO=1 IPHWHO=1
CALL KPHOTON CALL KPHOTON
@@ -211,7 +211,7 @@ C--------CHECK TO SEE IF CAPTAIN ON A PLANET
CALL PROUT(38HBUT WITH THE SHIELDS UP IT'S HOPELESS.,8) CALL PROUT(38HBUT WITH THE SHIELDS UP IT'S HOPELESS.,8)
GO TO 25 GO TO 25
20 CALL CRAM(42HHIS DESPERATE ATTEMPT TO RESCUE YOU . . . ,42) 20 CALL CRAM(42HHIS DESPERATE ATTEMPT TO RESCUE YOU . . . ,42)
IF(RANF(0) .GT. 0.5) GO TO 30 IF(RAND() .GT. 0.5) GO TO 30
CALL CRAMDMP(6HFAILS. ,6) CALL CRAMDMP(6HFAILS. ,6)
25 CALL FINISH(II) 25 CALL FINISH(II)
RETURN RETURN
@@ -219,7 +219,7 @@ C--------CHECK TO SEE IF CAPTAIN ON A PLANET
IF(IMINE .EQ. 0) GO TO 45 IF(IMINE .EQ. 0) GO TO 45
IMINE=0 IMINE=0
CALL CRAM(24HTHE CRYSTALS MINED WERE ,24) CALL CRAM(24HTHE CRYSTALS MINED WERE ,24)
IF(RANF(0) .GT. 0.25) GO TO 40 IF(RAND() .GT. 0.25) GO TO 40
CALL CRAMDMP(5HLOST.,5) CALL CRAMDMP(5HLOST.,5)
GO TO 45 GO TO 45
40 CALL CRAMDMP(6HSAVED.,6) 40 CALL CRAMDMP(6HSAVED.,6)
@@ -248,17 +248,17 @@ C--------TRY TO USE WARP ENGINES
CALL PROUT(21HWARP ENGINES DAMAGED.,21) CALL PROUT(21HWARP ENGINES DAMAGED.,21)
CALL FINISH(8) CALL FINISH(8)
RETURN RETURN
100 WARPFAC=6.0+2.0*RANF(0) 100 WARPFAC=6.0+2.0*RAND()
WFACSQ=WARPFAC*WARPFAC WFACSQ=WARPFAC*WARPFAC
CALL CRAM(19HWARP FACTOR SET TO ,19) CALL CRAM(19HWARP FACTOR SET TO ,19)
CALL CRAMF(WARPFAC,0,1) CALL CRAMF(WARPFAC,0,1)
CALL CREND CALL CREND
POWER=0.75*ENERGY POWER=0.75*ENERGY
DISTMAX=POWER/(WARPFAC*WARPFAC*WARPFAC*(SHLDUP+1)) DISTMAX=POWER/(WARPFAC*WARPFAC*WARPFAC*(SHLDUP+1))
DISTREQ=1.4142+2.0*RANF(0) DISTREQ=1.4142+2.0*RAND()
DIST=AMIN1(DISTMAX,DISTREQ) DIST=AMIN1(DISTMAX,DISTREQ)
TIME=10.0*DIST/WFACSQ TIME=10.0*DIST/WFACSQ
DIREC=12.0*RANF(0) DIREC=12.0*RAND()
JUSTIN=0 JUSTIN=0
INORBIT=0 INORBIT=0
CALL WARPX CALL WARPX
@@ -352,6 +352,7 @@ C COMMON/SCANBF/KEY,AITEM
REAL*8 AITEM,REGULAR,TOURNAMENT,FROZN,SHORT,MEDIUM,LONG REAL*8 AITEM,REGULAR,TOURNAMENT,FROZN,SHORT,MEDIUM,LONG
1 ,NOVICE,FAIR,GOOD,EMERITUS,EXPERT,RHBLANK 1 ,NOVICE,FAIR,GOOD,EMERITUS,EXPERT,RHBLANK
EQUIVALENCE (AITEM,TNUMBER) EQUIVALENCE (AITEM,TNUMBER)
EQUIVALENCE (AITEM,ISEED)
DATA REGULAR,TOURNAMENT,FROZN/7HREGULAR,8HTOURNAME,6HFROZEN/ DATA REGULAR,TOURNAMENT,FROZN/7HREGULAR,8HTOURNAME,6HFROZEN/
DATA SHORT,MEDIUM,LONG/5HSHORT,6HMEDIUM,4HLONG/ DATA SHORT,MEDIUM,LONG/5HSHORT,6HMEDIUM,4HLONG/
DATA NOVICE,FAIR,GOOD,EXPERT/6HNOVICE,4HFAIR,4HGOOD,6HEXPERT/ DATA NOVICE,FAIR,GOOD,EXPERT/6HNOVICE,4HFAIR,4HGOOD,6HEXPERT/
@@ -362,6 +363,7 @@ C COMMON/SCANBF/KEY,AITEM
GAMEWON=0 GAMEWON=0
C CALL SYS$GETTIM(ISEED) C CALL SYS$GETTIM(ISEED)
C CALL RANSET(ISEED(1)) C CALL RANSET(ISEED(1))
CALL RANSET(0)
IPHWHO=0 IPHWHO=0
5 FROZEN = .FALSE. 5 FROZEN = .FALSE.
C--------ASK FOR PARAMETERS OF GAME, PREFERABLY ALL ON ONE LINE C--------ASK FOR PARAMETERS OF GAME, PREFERABLY ALL ON ONE LINE
@@ -444,16 +446,16 @@ C--------READ IN SECRET PASSWORD
40 CONTINUE 40 CONTINUE
C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS
DAMFAC=0.50*SKILL DAMFAC=0.50*SKILL
REMBASE=3.0*RANF(0)+2.0 REMBASE=3.0*RAND()+2.0
INPLAN=5. +6.*RANF(0) INPLAN=5. +6.*RAND()
NROMREM=(2.+RANF(0))*SKILL NROMREM=(2.+RAND())*SKILL
NSCREM=SKILL/3 NSCREM=SKILL/3
REMTIME=7.0*LENGTH REMTIME=7.0*LENGTH
INTIME=REMTIME INTIME=REMTIME
RATE=(SKILL-2.0*RANF(0)+1.0)*SKILL*0.1 + 0.15 RATE=(SKILL-2.0*RAND()+1.0)*SKILL*0.1 + 0.15
REMKL=2.0*RATE*INTIME REMKL=2.0*RATE*INTIME
INKLING=REMKL INKLING=REMKL
INCOM=SKILL+0.0625*INKLING*RANF(0) INCOM=SKILL+0.0625*INKLING*RAND()
INCOM=MIN0(10,INCOM) INCOM=MIN0(10,INCOM)
REMCOM=INCOM REMCOM=INCOM
REMRES=(INKLING+4* INCOM )*INTIME REMRES=(INKLING+4* INCOM )*INTIME
@@ -464,6 +466,9 @@ C--------USE PARAMETERS TO GENERATE INITIAL VALUES OF THINGS
C--------PROCESS A TOURNAMENT REQUEST C--------PROCESS A TOURNAMENT REQUEST
100 CALL SCAN 100 CALL SCAN
C CALL RANSET(ABS(TNUMBER)) C CALL RANSET(ABS(TNUMBER))
IF (KEY.EQ.IHREAL) ISEED(1)=ABS(TNUMBER)
IF (KEY.EQ.IHALPHA) ISEED(1)=ABS(ISEED(1))
CALL RANSET(ISEED(1))
THINGX=-1 THINGX=-1
C--------GO BACK FOR ANYTHING LEFT OUT C--------GO BACK FOR ANYTHING LEFT OUT
IF (KEY.NE.IHEOL) GO TO 9 IF (KEY.NE.IHEOL) GO TO 9
@@ -803,7 +808,7 @@ C*
C* C*
ENTRY CASULTY ENTRY CASULTY
C* C*
ICAS=HIT*RANF(0)*0.015 ICAS=HIT*RAND()*0.015
IF(ICAS .LT. 2) RETURN IF(ICAS .LT. 2) RETURN
CASUAL=CASUAL+ICAS CASUAL=CASUAL+ICAS
CALL CRAM(42HMC COY: "SICKBAY TO BRIDGE. WE JUST HAD ,42) CALL CRAM(42HMC COY: "SICKBAY TO BRIDGE. WE JUST HAD ,42)
@@ -1103,7 +1108,7 @@ C COMMON/SCANBF/KEY,AITEM
CALL PROUT(17H 3,17) CALL PROUT(17H 3,17)
CALL PROUT(20H 2,20) CALL PROUT(20H 2,20)
CALL PROUT(23H 1,23) CALL PROUT(23H 1,23)
IF(RANF(0) .LT. 0.05) CALL PROUT(19HGOODBYE-CRUEL-WORLD,19) IF(RAND() .LT. 0.05) CALL PROUT(19HGOODBYE-CRUEL-WORLD,19)
CALL SKIP(2) CALL SKIP(2)
C* C*
ENTRY KABOOM ENTRY KABOOM
@@ -1402,7 +1407,7 @@ C--------EXTRANEOUS EVENT 2: TRACTOR BEAM
200 IF(REMCOM .EQ. 0) GO TO 220 200 IF(REMCOM .EQ. 0) GO TO 220
IF(ISTRACT.NE.0) GO TO 210 IF(ISTRACT.NE.0) GO TO 210
IF(CONDIT .EQ. IHDOCKD ) GO TO 210 IF(CONDIT .EQ. IHDOCKD ) GO TO 210
I=RANF(0)*REMCOM+1.0 I=RAND()*REMCOM+1.0
YANK=(CX(I)-QUADX)**2 + (CY(I)-QUADY)**2 YANK=(CX(I)-QUADX)**2 + (CY(I)-QUADY)**2
IF(YANK .EQ. 0 .AND. JUSTIN .EQ. 0) GO TO 210 IF(YANK .EQ. 0 .AND. JUSTIN .EQ. 0) GO TO 210
IF(ISTRACT .EQ. 0) GO TO 201 IF(ISTRACT .EQ. 0) GO TO 201
@@ -1481,7 +1486,7 @@ C--------LOOK FOR A COMMANDER IN SAME QUADRANT AS A STARBASE
C--------COMMANDER+STARBASE COMBINATION FOUND--LAUNCH ATTACK C--------COMMANDER+STARBASE COMBINATION FOUND--LAUNCH ATTACK
430 BATX=BASEQX(J) 430 BATX=BASEQX(J)
BATY=BASEQY(J) BATY=BASEQY(J)
FUTURE(5)=DATE+1.0+3.0*RANF(0) FUTURE(5)=DATE+1.0+3.0*RAND()
IF(ISATB.NE.0) FUTURE(5)=FUTURE(5)+FUTURE(7)-DATE IF(ISATB.NE.0) FUTURE(5)=FUTURE(5)+FUTURE(7)-DATE
FUTURE(4)=FUTURE(5)+EXPRAN(0.3*INTIME) FUTURE(4)=FUTURE(5)+EXPRAN(0.3*INTIME)
ITYPE=IHC ITYPE=IHC
@@ -1568,7 +1573,7 @@ C--------CHECK WITH SPY TO SEE IF S.C. SHOULD TRACTOR BEAM.
+ 0.))) GO TO 5100 + 0.))) GO TO 5100
RETURN RETURN
C--------TRACTOR-BEAM HER! C--------TRACTOR-BEAM HER!
5100 IF(RANF(0).GT..65) RETURN 5100 IF(RAND().GT..65) RETURN
ISTRACT=1 ISTRACT=1
GO TO 20010 GO TO 20010
END END
@@ -1578,7 +1583,7 @@ DELETE F7:TREXPRA
EDIT EDIT
BUILD F7:TREXPRA BUILD F7:TREXPRA
FUNCTION EXPRAN(AVERAGE) FUNCTION EXPRAN(AVERAGE)
EXPRAN=-AVERAGE*ALOG(RANF(0)) EXPRAN=-AVERAGE*ALOG(RAND())
RETURN RETURN
END END
@@ -1818,12 +1823,12 @@ C--------DECIDE FINAL OUTCOME OF GAME AFTER YOUR DEATH
GOODIES=REMRES/INRESOR GOODIES=REMRES/INRESOR
BADDIES=(REMKL+2.0*REMCOM)/(INKLING+2.0*INCOM) BADDIES=(REMKL+2.0*REMCOM)/(INKLING+2.0*INCOM)
ADVANTG=GOODIES/BADDIES ADVANTG=GOODIES/BADDIES
IF(ADVANTG .LT. (1.0+0.5*RANF(0))) GO TO 5020 IF(ADVANTG .LT. (1.0+0.5*RAND())) GO TO 5020
CALL PROUT( CALL PROUT(
+ 54HAS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON,54) + 54HAS A RESULT OF YOUR ACTIONS, A TREATY WITH THE KLINGON,54)
CALL PROUT( CALL PROUT(
+ 52HEMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE,52) + 52HEMPIRE HAS BEEN SIGNED. THE TERMS OF THE TREATY ARE,52)
IF(ADVANTG .LT. (3.0+RANF(0))) GO TO 5010 IF(ADVANTG .LT. (3.0+RAND())) GO TO 5010
CALL PROUT( CALL PROUT(
+ 28HFAVORABLE TO THE FEDERATION.,28) + 28HFAVORABLE TO THE FEDERATION.,28)
CALL SKIP(1) CALL SKIP(1)
@@ -2172,7 +2177,7 @@ C--------GIVE STARBASE THREE CHANCES TO REMATERIALIZE STARSHIP
CALL CRAM(26HATTEMPT TO RE-MATERIALIZE ,26) CALL CRAM(26HATTEMPT TO RE-MATERIALIZE ,26)
CALL CRAMSHP CALL CRAMSHP
CALL CRAM(11H . . . . . ,11) CALL CRAM(11H . . . . . ,11)
IF(RANF(0) .GT. PROBF) GO TO 90 IF(RAND() .GT. PROBF) GO TO 90
70 CALL CRAMDMP(6HFAILS.,6) 70 CALL CRAMDMP(6HFAILS.,6)
80 CONTINUE 80 CONTINUE
C--------ONE, TWO, THREE STRIKES YOU'RE OUT C--------ONE, TWO, THREE STRIKES YOU'RE OUT
@@ -2180,9 +2185,9 @@ C--------ONE, TWO, THREE STRIKES YOU'RE OUT
RETURN RETURN
C--------REMATERIALIZATION ATTEMPT SHOULD SUCCEED, IF CAN GET ADJ TO BASE C--------REMATERIALIZATION ATTEMPT SHOULD SUCCEED, IF CAN GET ADJ TO BASE
90 DO 100 LL=1,5 90 DO 100 LL=1,5
IX=BASEX+IFIX(3.0*RANF(0))-1 IX=BASEX+IFIX(3.0*RAND())-1
IF(IX.EQ.0 .OR. IX.EQ.11) GO TO 100 IF(IX.EQ.0 .OR. IX.EQ.11) GO TO 100
IY=BASEY+IFIX(3.0*RANF(0))-1 IY=BASEY+IFIX(3.0*RAND())-1
IF(IY.EQ.0 .OR. IY.EQ.11) GO TO 100 IF(IY.EQ.0 .OR. IY.EQ.11) GO TO 100
IF(QUAD(IX,IY) .EQ. IHDOT) GO TO 110 IF(QUAD(IX,IY) .EQ. IHDOT) GO TO 110
100 CONTINUE 100 CONTINUE
@@ -2217,7 +2222,7 @@ C LOGICAL*1 IENM
DO 40 K=1,NENHER2 DO 40 K=1,NENHER2
WHAM=HITS(K) WHAM=HITS(K)
IF(WHAM .EQ. 0) GO TO 30 IF(WHAM .EQ. 0) GO TO 30
DUSTFAC=0.90+0.01*RANF(0) DUSTFAC=0.90+0.01*RAND()
HIT=WHAM*DUSTFAC**KDIST(KK) HIT=WHAM*DUSTFAC**KDIST(KK)
KP=KPOWER(KK) KP=KPOWER(KK)
KPOWER(KK)=KP-SIGN(AMIN1(ABS(KP),PHASFAC*HIT),KP) KPOWER(KK)=KP-SIGN(AMIN1(ABS(KP),PHASFAC*HIT),KP)
@@ -2240,8 +2245,8 @@ C CALL CRAMENA(IENM,2,II,JJ)
GO TO 40 GO TO 40
C--------- DECIDE WHETHER OR NOT TO EMASCULATE KLINGON. C--------- DECIDE WHETHER OR NOT TO EMASCULATE KLINGON.
25 IF(KPOW .LT. 0) GO TO 30 25 IF(KPOW .LT. 0) GO TO 30
IF(RANF(0.) .LT. .90)GO TO 30 IF(RAND() .LT. .90)GO TO 30
IF(KPOW .GT. ((.40 + .4*RANF(0.))*KP))GO TO 30 IF(KPOW .GT. ((.40 + .4*RAND())*KP))GO TO 30
CALL CRAM(38H***MR. SPOCK: "CAPTAIN, THE VESSEL AT,38) CALL CRAM(38H***MR. SPOCK: "CAPTAIN, THE VESSEL AT,38)
CALL CRAMLOC(2,II,JJ) CALL CRAMLOC(2,II,JJ)
CALL CREND CALL CREND
@@ -2313,14 +2318,14 @@ DELETE F7:TRIRAN8
EDIT EDIT
BUILD F7:TRIRAN8 BUILD F7:TRIRAN8
SUBROUTINE IRAN8(II,JJ) SUBROUTINE IRAN8(II,JJ)
II=RANF(0)*8.+1. II=RAND()*8.+1.
JJ=RANF(0)*8.+1. JJ=RAND()*8.+1.
RETURN RETURN
C* C*
ENTRY IRAN10(II,JJ) ENTRY IRAN10(II,JJ)
C* C*
II=RANF(0)*10.+1. II=RAND()*10.+1.
JJ=RANF(0)*10.+1. JJ=RAND()*10.+1.
RETURN RETURN
END END
@@ -2484,13 +2489,13 @@ C--------OBJECT IS A BLACK HOLE. SWALLOW SHIP.
CALL CRAM(26H PULLED INTO BLACK HOLE AT,26) CALL CRAM(26H PULLED INTO BLACK HOLE AT,26)
CALL CRAMLOC(2,IX,IY) CALL CRAMLOC(2,IX,IY)
CALL CREND CALL CREND
IF(RANF(0).GT.0.50) GO TO 27 IF(RAND().GT.0.50) GO TO 27
CALL IRAN8(QUADX,QUADY) CALL IRAN8(QUADX,QUADY)
CALL IRAN10(SECTX,SECTY) CALL IRAN10(SECTX,SECTY)
CALL PROUT( CALL PROUT(
$55HSPOCK: "CAPTAIN, INSTRUMENTS INDICATE WE HAVE UNDERGONE ,55) $55HSPOCK: "CAPTAIN, INSTRUMENTS INDICATE WE HAVE UNDERGONE ,55)
CALL CRAM(15H A SPACE ,15) CALL CRAM(15H A SPACE ,15)
XTIMEW=RANF(0) XTIMEW=RAND()
IF(XTIMEW.GT.0.65) CALL CRAM(5H-TIME ,5) IF(XTIMEW.GT.0.65) CALL CRAM(5H-TIME ,5)
CALL CRAMDMP(14H PHASE SHIFT." ,14) CALL CRAMDMP(14H PHASE SHIFT." ,14)
IF(XTIMEW.GT.0.65) CALL TIMEWRP IF(XTIMEW.GT.0.65) CALL TIMEWRP
@@ -2622,9 +2627,9 @@ C AND BY HOW MUCH
FORCES=FORCES+300. FORCES=FORCES+300.
6 FORCES=FORCES-50.*TORPS*TFAC+0.2*(2500.-ENERGY)*EFAC 6 FORCES=FORCES-50.*TORPS*TFAC+0.2*(2500.-ENERGY)*EFAC
C +0.6*(1250.-SHLD)*SHLDUP C +0.6*(1250.-SHLD)*SHLDUP
7 IF(FORCES .GT. 1000.0) MOTION=(1.-RANF(0)**2)*DIST1+1.0 7 IF(FORCES .GT. 1000.0) MOTION=(1.-RAND()**2)*DIST1+1.0
IF(CONDIT .EQ. IHDOCKD ) MOTION=MOTION-SKILL*(2.-RANF(0)**2) IF(CONDIT .EQ. IHDOCKD ) MOTION=MOTION-SKILL*(2.-RAND()**2)
IF(MOTION .EQ. 0) MOTION=((FORCES+200.0*RANF(0))/150.0)-5.0 IF(MOTION .EQ. 0) MOTION=((FORCES+200.0*RAND())/150.0)-5.0
IF(MOTION .EQ. 0) GO TO 500 IF(MOTION .EQ. 0) GO TO 500
IF(IABS(MOTION) .GT. SKILL) MOTION=ISIGN(SKILL,MOTION) IF(IABS(MOTION) .GT. SKILL) MOTION=ISIGN(SKILL,MOTION)
C--------CALCULATE PREFERRED NUMBER OF STEPS TO MOVE COMMANDER C--------CALCULATE PREFERRED NUMBER OF STEPS TO MOVE COMMANDER
@@ -2883,12 +2888,12 @@ C--------EMPTY QUADRANT AND POSITION STARSHIP
DO 15 J=1,10 DO 15 J=1,10
15 QUAD(I,J)=IHDOT 15 QUAD(I,J)=IHDOT
QUAD(SECTX,SECTY)=ISHIP QUAD(SECTX,SECTY)=ISHIP
C-----------DECIDE IF THIS QUADRENT NEEDS A THOLIAN..... C-----------DECIDE IF THIS QUADRANT NEEDS A THOLIAN.....
C IF((RANF(0).GT.0.08).AND.(PASSWD.NE.8HTHOLIANX)) GO TO 23 C IF((RAND().GT.0.08).AND.(PASSWD.NE.8HTHOLIANX)) GO TO 23
IF((RANF(0).GT.0.08).AND.(PASSWD.NE.THOLIANX)) GO TO 23 IF((RAND().GT.0.08).AND.(PASSWD.NE.THOLIANX)) GO TO 23
C--------DECIDE POSITION FOR THOLIAN...... C--------DECIDE POSITION FOR THOLIAN......
17 ITHX=INT(RANF(0)+0.5)*9+1 17 ITHX=INT(RAND()+0.5)*9+1
ITHY=INT(RANF(0)+0.5)*9+1 ITHY=INT(RAND()+0.5)*9+1
IF(QUAD(ITHX,ITHY).NE.IHDOT) GO TO 17 IF(QUAD(ITHX,ITHY).NE.IHDOT) GO TO 17
QUAD(ITHX,ITHY)=IHT QUAD(ITHX,ITHY)=IHT
ITHERE=1 ITHERE=1
@@ -2905,7 +2910,7 @@ C--------POSITION ORDINARY KLINGON VESSELS
CALL DROPIN(IHK,IX,IY) CALL DROPIN(IHK,IX,IY)
KX(I)=IX KX(I)=IX
KY(I)=IY KY(I)=IY
25 KPOWER(I)=RANF(0)*150.0+300.+25.*SKILL 25 KPOWER(I)=RAND()*150.0+300.+25.*SKILL
C--------IF THIS QUADRANT NEEDS A COMMANDER, PROMOTE ONE KLINGON C--------IF THIS QUADRANT NEEDS A COMMANDER, PROMOTE ONE KLINGON
IF(REMCOM .EQ. 0) GO TO 32 IF(REMCOM .EQ. 0) GO TO 32
DO 30 I=1,REMCOM DO 30 I=1,REMCOM
@@ -2913,7 +2918,7 @@ C--------IF THIS QUADRANT NEEDS A COMMANDER, PROMOTE ONE KLINGON
30 CONTINUE 30 CONTINUE
GO TO 32 GO TO 32
31 QUAD(IX,IY)=IHC 31 QUAD(IX,IY)=IHC
KPOWER(KLHERE)=950.0+400.0*RANF(0)+50.*SKILL KPOWER(KLHERE)=950.0+400.0*RAND()+50.*SKILL
COMHERE=1 COMHERE=1
COMX=IX COMX=IX
COMY=IY COMY=IY
@@ -2925,7 +2930,7 @@ C--------IF THIS QUADRANT NEEDS A SUPER-COMMANDER, PROMOTE ONE KLINGON.
IX=KX(I) IX=KX(I)
IY=KY(I) IY=KY(I)
33 QUAD(IX,IY) = IHS 33 QUAD(IX,IY) = IHS
KPOWER(I)=1175.0+400.0*RANF(0)+125.0*SKILL KPOWER(I)=1175.0+400.0*RAND()+125.0*SKILL
ISCATE=1 ISCATE=1
ISHERE=1 ISHERE=1
C--------PUT IN ROMULANS IF NEEDED. C--------PUT IN ROMULANS IF NEEDED.
@@ -2935,7 +2940,7 @@ C--------PUT IN ROMULANS IF NEEDED.
CALL DROPIN(IHR,IX,IY) CALL DROPIN(IHR,IX,IY)
KX(I)=IX KX(I)=IX
KY(I)=IY KY(I)=IY
36 KPOWER(I)=450.+400.*RANF(0)+50.*SKILL 36 KPOWER(I)=450.+400.*RAND()+50.*SKILL
37 CALL RESETD 37 CALL RESETD
CALL SORTKL CALL SORTKL
C--------IF QUADRANT CONTAINS A STARBASE, CHOOSE ITS POSITION C--------IF QUADRANT CONTAINS A STARBASE, CHOOSE ITS POSITION
@@ -2981,8 +2986,8 @@ C--------PUT IN "THING" IF NEEDED
+ 43H PLEASE EXAMINE YOUR SHORT-RANGE SCAN.",43) + 43H PLEASE EXAMINE YOUR SHORT-RANGE SCAN.",43)
C--------DROP IN A FEW BLACK HOLES C--------DROP IN A FEW BLACK HOLES
67 DO 68 I=1,3 67 DO 68 I=1,3
C68 IF(RANF(0) .GT. 0.89) CALL DROPIN('@',IX,IY) C68 IF(RAND() .GT. 0.89) CALL DROPIN('@',IX,IY)
68 IF(RANF(0) .GT. 0.89) CALL DROPIN(IHAT,IX,IY) 68 IF(RAND() .GT. 0.89) CALL DROPIN(IHAT,IX,IY)
C----------IF THOLIAN HERE, TAKE THE X OUT OF EACH CORNER. C----------IF THOLIAN HERE, TAKE THE X OUT OF EACH CORNER.
IF(ITHERE.EQ.0) RETURN IF(ITHERE.EQ.0) RETURN
IF(QUAD(1,1).EQ.1HX) QUAD(1,1)=IHDOT IF(QUAD(1,1).EQ.1HX) QUAD(1,1)=IHDOT
@@ -3014,7 +3019,7 @@ C LOGICAL*1 IQUAD,IQUAD1,ISHIP
EQUIVALENCE (CRACKS(1),HIT),(CRACKS(4),KSHOT),(SHIP,ISHIP) EQUIVALENCE (CRACKS(1),HIT),(CRACKS(4),KSHOT),(SHIP,ISHIP)
DATA COURSE/ 10.5, 12.0, 1.5, 9.0, 0.0, 3.0, 7.5, 6.0, 4.5 / DATA COURSE/ 10.5, 12.0, 1.5, 9.0, 0.0, 3.0, 7.5, 6.0, 4.5 /
C--------CHECK FOR SUPERNOVA POSSIBILITY C--------CHECK FOR SUPERNOVA POSSIBILITY
IF(RANF(0) .GE. 0.05) GO TO 76 IF(RAND() .GE. 0.05) GO TO 76
CALL SNOVA(IX,IY) CALL SNOVA(IX,IY)
RETURN RETURN
C--------PRINT NOVA MESSAGE FOR INITIAL STAR AT LOCATION (IX,IY) C--------PRINT NOVA MESSAGE FOR INITIAL STAR AT LOCATION (IX,IY)
@@ -3049,7 +3054,7 @@ C IF(IQUAD.EQ.IHDOT .OR. IQUAD.EQ.IHQUEST .OR. IQUAD.EQ.'@')
IF(IQUAD.EQ.IHT) GO TO 90 IF(IQUAD.EQ.IHT) GO TO 90
IF(IQUAD .NE. IHSTAR) GO TO 80 IF(IQUAD .NE. IHSTAR) GO TO 80
C--------ANOTHER STAR AFFECTED BY A NOVA C--------ANOTHER STAR AFFECTED BY A NOVA
IF(RANF(0.) .GE. .05)GO TO 79 IF(RAND() .GE. .05)GO TO 79
CALL SNOVA(II,JJ) CALL SNOVA(II,JJ)
RETURN RETURN
79 TOP2=TOP2+1 79 TOP2=TOP2+1
@@ -3090,7 +3095,7 @@ C----------NOVA DESTROYS STARBASE
CALL CRMSENA(IHB,2,II,JJ) CALL CRMSENA(IHB,2,II,JJ)
CALL CRAM(12H DESTROYED. ,12) CALL CRAM(12H DESTROYED. ,12)
GO TO 8905 GO TO 8905
82 HIT=800.0 + 800.0*RANF(0) 82 HIT=800.0 + 800.0*RAND()
IF(IQUAD .NE.ISHIP) GO TO 87 IF(IQUAD .NE.ISHIP) GO TO 87
C----------STARSHIP IN A NOVA C----------STARSHIP IN A NOVA
CALL PROUT(29H***STARSHIP BUFFETED BY NOVA.,29) CALL PROUT(29H***STARSHIP BUFFETED BY NOVA.,29)
@@ -3274,7 +3279,7 @@ C-------- INFORM USER OF AVAIL ENERGY AND READ IN DESIRED PHASER POWER
CALL CRAM(1H(,1) CALL CRAM(1H(,1)
IREC=0 IREC=0
DO 29 K=1,NENHERE DO 29 K=1,NENHERE
29 IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RANF(0))+1. 29 IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RAND())+1.
1 +IREC 1 +IREC
CALL CRAMI(IREC,0) CALL CRAMI(IREC,0)
CALL CRAM(3H) ,3) CALL CRAM(3H) ,3)
@@ -3306,7 +3311,7 @@ C IF(ITM.NE.1HN) GOTO 34
GO TO 15 GO TO 15
C--------PRINT MESSAGE FOR SHIELD CONTROL, AND DECIDE IF MALFUNCTION OCCURS. C--------PRINT MESSAGE FOR SHIELD CONTROL, AND DECIDE IF MALFUNCTION OCCURS.
42 CALL SKIP(1) 42 CALL SKIP(1)
IF(RANF(0.).LT.0.995) GO TO 45 IF(RAND().LT.0.995) GO TO 45
C--------SOMETHING BAD HAS HAPPENED. C--------SOMETHING BAD HAS HAPPENED.
CALL REDALRT CALL REDALRT
CALL SKIP(1) CALL SKIP(1)
@@ -3331,7 +3336,7 @@ C--------- LOOP THAT DISTRIBUTES HITS IN AUTO MODE IS HERE.
HITS(I)=0. HITS(I)=0.
IF (POWREM .LE. 0.) GO TO 50 IF (POWREM .LE. 0.) GO TO 50
HITS (I)=ABS(KPOWER(I))/(PHASFAC*0.90**KDIST(I)) HITS (I)=ABS(KPOWER(I))/(PHASFAC*0.90**KDIST(I))
OVER=(.01+.05*RANF(0))*HITS(I) OVER=(.01+.05*RAND())*HITS(I)
TEMP=POWREM TEMP=POWREM
POWREM=POWREM-HITS(I)-OVER POWREM=POWREM-HITS(I)-OVER
IF(POWREM .LE. 0.) HITS(I)=AMIN1(TEMP,HITS(I)) IF(POWREM .LE. 0.) HITS(I)=AMIN1(TEMP,HITS(I))
@@ -3369,7 +3374,7 @@ C--------- LOOP FOR DESIRED INDIVIDUAL HITS.
87 IF(IPOOP .EQ. 0) GO TO 88 87 IF(IPOOP .EQ. 0) GO TO 88
C--------PRINT BATTLE-COMPUTER RECOMMENDATION C--------PRINT BATTLE-COMPUTER RECOMMENDATION
CALL CRAM(1H(,1) CALL CRAM(1H(,1)
IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RANF(0))+1. IREC=ABS(KPOWER(K))/(PHASFAC*0.9**KDIST(K))*(1.01+0.05*RAND())+1.
CALL CRAMI(IREC,0) CALL CRAMI(IREC,0)
CALL CRAM(3H) ,3) CALL CRAM(3H) ,3)
88 CALL CRAM(17HUNITS TO FIRE AT ,17) 88 CALL CRAM(17HUNITS TO FIRE AT ,17)
@@ -3427,7 +3432,7 @@ C--------SAY SHIELDS RAISED OR MALFUNCTION, IF NECESSARY.
IF(IFAST .EQ. 0) GO TO 210 IF(IFAST .EQ. 0) GO TO 210
CALL SKIP(1) CALL SKIP(1)
IF(NO.NE.0) GO TO 202 IF(NO.NE.0) GO TO 202
IF(RANF(0) .LT. 0.99) GO TO 205 IF(RAND() .LT. 0.99) GO TO 205
CALL PROUT(66HSULU: "SIR, THE HIGH-SPEED SHIELD CONTROL HAS MALFU CALL PROUT(66HSULU: "SIR, THE HIGH-SPEED SHIELD CONTROL HAS MALFU
CNCTIONED . . .,66) CNCTIONED . . .,66)
CALL PROUT( CALL PROUT(
@@ -3438,12 +3443,12 @@ C--------SAY SHIELDS RAISED OR MALFUNCTION, IF NECESSARY.
C--------CHECK FOR PHASER OVERHEAT C--------CHECK FOR PHASER OVERHEAT
210 IF(POW .LE. 1500.) RETURN 210 IF(POW .LE. 1500.) RETURN
CHEKBRN=(POW-1500.)*.00038 CHEKBRN=(POW-1500.)*.00038
IF(RANF(0.) .GT. CHEKBRN) RETURN IF(RAND() .GT. CHEKBRN) RETURN
C--------DO YOU SMELL SMOKE? C--------DO YOU SMELL SMOKE?
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(48HWEAPONS OFFICER SULU: "PHASERS OVERHEATED, SIR." CALL PROUT(48HWEAPONS OFFICER SULU: "PHASERS OVERHEATED, SIR."
1 ,48) 1 ,48)
DAMAGE(3) = DAMFAC*(1.0 + RANF(0))*(1.+CHEKBRN) DAMAGE(3) = DAMFAC*(1.0 + RAND())*(1.+CHEKBRN)
RETURN RETURN
END END
@@ -3552,9 +3557,9 @@ C--------BEGIN OUTER LOOP FOR MOVING <N> TORPEDOES
J=I J=I
STARTX=SECTX STARTX=SECTX
STARTY=SECTY STARTY=SECTY
R=(RANF(0)+RANF(0))*0.5 -0.5 R=(RAND()+RAND())*0.5 -0.5
IF(ABS(R) .LT. 0.49) GO TO 5709 IF(ABS(R) .LT. 0.49) GO TO 5709
R=(RANF(0)+1.2)*R R=(RAND()+1.2)*R
C-------- TORPEDO MISFIRES C-------- TORPEDO MISFIRES
IF(N.GT.1) GO TO 5706 IF(N.GT.1) GO TO 5706
CALL PROUT(21H***TORPEDO MISFIRES. ,21) CALL PROUT(21H***TORPEDO MISFIRES. ,21)
@@ -3564,10 +3569,10 @@ C-------- TORPEDO MISFIRES
CALL CRAMDMP(10H MISFIRES.,10) CALL CRAMDMP(10H MISFIRES.,10)
IF(I . LT. N) CALL PROUT(31H REMAINDER OF BURST ABORTED. ,31) IF(I . LT. N) CALL PROUT(31H REMAINDER OF BURST ABORTED. ,31)
I=N I=N
5707 IF(RANF(0.) .GT. .200000)GO TO 5709 5707 IF(RAND() .GT. .200000)GO TO 5709
C------- CHECK IF MISFIRE DOES SHIP DAMAGE. IF SO DON'T GIVE TRACK. C------- CHECK IF MISFIRE DOES SHIP DAMAGE. IF SO DON'T GIVE TRACK.
CALL PROUT(35H***PHOTON TUBES DAMAGED BY MISFIRE.,35) CALL PROUT(35H***PHOTON TUBES DAMAGED BY MISFIRE.,35)
DAMAGE(4)=DAMFAC*(1.0+2.0*RANF(0)) DAMAGE(4)=DAMFAC*(1.0+2.0*RAND())
GO TO 115 GO TO 115
5709 IF(SHLDUP.NE.0 .OR. CONDIT.EQ.IHDOC ) R=R+0.001*SHLD*R 5709 IF(SHLDUP.NE.0 .OR. CONDIT.EQ.IHDOC ) R=R+0.001*SHLD*R
AC=COURSE(I)+0.25*R AC=COURSE(I)+0.25*R
@@ -3586,8 +3591,8 @@ C--------ENEMY FIRES PHOTON TORPEDO
DELTX=0.1*(SECTY-STARTY) DELTX=0.1*(SECTY-STARTY)
DELTY=0.1*(STARTX-SECTX) DELTY=0.1*(STARTX-SECTX)
AC=1.90985932*ATAN2(DELTX,DELTY) AC=1.90985932*ATAN2(DELTX,DELTY)
TEMP=RANF(0)-0.5 TEMP=RAND()-0.5
R=TEMP*(1.0+0.001*KPOWER(KSHOT))+RANF(0.)*TEMP R=TEMP*(1.0+0.001*KPOWER(KSHOT))+RAND()*TEMP
AC=AC+0.25*R AC=AC+0.25*R
IQUAD=QUAD(IX,IY) IQUAD=QUAD(IX,IY)
CALL CRMSENA(IQUAD,0,IX,IY) CALL CRMSENA(IQUAD,0,IX,IY)
@@ -3596,7 +3601,7 @@ C--------CHECK FOR KLINGON MISFIRE
IF(ABS(TEMP) .LT. 0.45) GO TO 5710 IF(ABS(TEMP) .LT. 0.45) GO TO 5710
C--------ENEMY TORPEDO MISFIRED. DETERMINE DAMAGE. C--------ENEMY TORPEDO MISFIRED. DETERMINE DAMAGE.
ANGLE=(15.0-AC)*0.5235988 ANGLE=(15.0-AC)*0.5235988
HIT=200.0 + 600.0*RANF(0) HIT=200.0 + 600.0*RAND()
LL=KSHOT LL=KSHOT
CALL PROUT(21H***TORPEDO MISFIRES! ,21) CALL PROUT(21H***TORPEDO MISFIRES! ,21)
GO TO 68 GO TO 68
@@ -3643,11 +3648,11 @@ C NORMAL MISS DISTANCE, AND HIT
BULSEYE=(15.0-BULSEYE)*0.5235988 BULSEYE=(15.0-BULSEYE)*0.5235988
SINANG=SIN(ANGLE-BULSEYE) SINANG=SIN(ANGLE-BULSEYE)
DISTN=ABS(SINANG) * DIST DISTN=ABS(SINANG) * DIST
HIT=700.0+100.0*RANF(0)-1000.0*DISTN HIT=700.0+100.0*RAND()-1000.0*DISTN
C--------TEST FOR AND COPE WITH HIT ON KLINGON,ROMULAN, OR COMMANDER. C--------TEST FOR AND COPE WITH HIT ON KLINGON,ROMULAN, OR COMMANDER.
IF(IQUAD .EQ. IHK .OR. IQUAD .EQ. IHR) GO TO 62 IF(IQUAD .EQ. IHK .OR. IQUAD .EQ. IHR) GO TO 62
IF(IQUAD .NE. IHC .AND. IQUAD .NE. IHS) GO TO 70 IF(IQUAD .NE. IHC .AND. IQUAD .NE. IHS) GO TO 70
IF(RANF(0) .GT. 0.05) GO TO 62 IF(RAND() .GT. 0.05) GO TO 62
CALL CRMSENA(IQUAD,2,IX,IY) CALL CRMSENA(IQUAD,2,IX,IY)
CALL CRAMDMP(25H USES ANTI-PHOTON DEVICE;,25) CALL CRAMDMP(25H USES ANTI-PHOTON DEVICE;,25)
CALL PROUT(23H TORPEDO NEUTRALIZED.,23) CALL PROUT(23H TORPEDO NEUTRALIZED.,23)
@@ -3662,7 +3667,7 @@ C--------TEST FOR AND COPE WITH HIT ON KLINGON,ROMULAN, OR COMMANDER.
GO TO 50 GO TO 50
69 CALL CRMSENA(IQUAD,2,IX,IY) 69 CALL CRMSENA(IQUAD,2,IX,IY)
C--------IF ENEMY DAMAGED BUT NOT DESTROYED, TRY TO DISPLACE HIM C--------IF ENEMY DAMAGED BUT NOT DESTROYED, TRY TO DISPLACE HIM
6901 ANG=ANGLE + 2.5*(RANF(0)-0.5) 6901 ANG=ANGLE + 2.5*(RAND()-0.5)
TEMP=AMAX1(ABS(-SIN(ANG)),ABS(COS(ANG))) TEMP=AMAX1(ABS(-SIN(ANG)),ABS(COS(ANG)))
XX=-SIN(ANG) / TEMP XX=-SIN(ANG) / TEMP
YY= COS(ANG) / TEMP YY= COS(ANG) / TEMP
@@ -3708,7 +3713,7 @@ C--------TEST FOR AND COPE WITH HIT ON A STARBASE
ITHX=0 ITHX=0
ITHY=0 ITHY=0
GO TO 50 GO TO 50
7001 X=RANF(0) 7001 X=RAND()
IF(X.GT.0.05) CALL CRAMDMP(23H SURVIVES PHOTON BLAST. ,23) IF(X.GT.0.05) CALL CRAMDMP(23H SURVIVES PHOTON BLAST. ,23)
IF(X.GT.0.05) GO TO 50 IF(X.GT.0.05) GO TO 50
CALL CRAMDMP(12H DISAPPEARS. ,12) CALL CRAMDMP(12H DISAPPEARS. ,12)
@@ -3772,7 +3777,7 @@ C--------STAR HIT - CHECK FOR NOVA RESULTS
C--------CHECK FOR A BOOMERANG TORPEDO C--------CHECK FOR A BOOMERANG TORPEDO
90 IF(IQUAD .NE.ISHIP) GO TO 93 90 IF(IQUAD .NE.ISHIP) GO TO 93
IF(CONDIT.NE.IHDOC) GO TO 9010 IF(CONDIT.NE.IHDOC) GO TO 9010
IF(RANF(0).GT.0.77) GO TO 9010 IF(RAND().GT.0.77) GO TO 9010
CALL CRAM(27H STAR BASE SHIELDS PROTECT ,27) CALL CRAM(27H STAR BASE SHIELDS PROTECT ,27)
CALL CRAMSHP CALL CRAMSHP
CALL CREND CALL CREND
@@ -3890,7 +3895,7 @@ C--------CHECK TO SEE IF SHIP ADJACENT TO PLANET.
5 CALL CRAMSHP 5 CALL CRAMSHP
CALL CRAMDMP(24H NOT ADJACENT TO PLANET. ,24) CALL CRAMDMP(24H NOT ADJACENT TO PLANET. ,24)
RETURN RETURN
10 TIME = .02+.03*RANF(0) 10 TIME = .02+.03*RAND()
IF(DAMAGE(6) .GT. 0.) TIME=TIME*10. IF(DAMAGE(6) .GT. 0.) TIME=TIME*10.
C--------GO AHEAD, SULU. C--------GO AHEAD, SULU.
CALL PROUT(47HHELMSMAN SULU: "ENTERING STANDARD ORBIT, SIR." CALL PROUT(47HHELMSMAN SULU: "ENTERING STANDARD ORBIT, SIR."
@@ -3903,7 +3908,7 @@ C--------GO AHEAD, SULU.
+ RETURN + RETURN
GO TO IWHERE GO TO IWHERE
17 CALL CRAM(11H ALTITUDE ,11) 17 CALL CRAM(11H ALTITUDE ,11)
HEIGHT=1400.+7200.*RANF(0) HEIGHT=1400.+7200.*RAND()
CALL CRAMF(HEIGHT,0,2) CALL CRAMF(HEIGHT,0,2)
CALL CRAMDMP(13H KILOMETERS.",13) CALL CRAMDMP(13H KILOMETERS.",13)
INORBIT=1 INORBIT=1
@@ -3951,7 +3956,7 @@ C IF(JA(DUMMY)) GO TO IWHERE
CALL PROUT(18HKIRK: "ENERGIZE." ,18) CALL PROUT(18HKIRK: "ENERGIZE." ,18)
21 CALL SKIP(1) 21 CALL SKIP(1)
CALL PROUT(41HWWHOOOIIIIIRRRRREEEE.E.E. . . . . . . ,41) CALL PROUT(41HWWHOOOIIIIIRRRRREEEE.E.E. . . . . . . ,41)
IF(RANF(0) .GT. 0.98) GO TO 35 IF(RAND() .GT. 0.98) GO TO 35
CALL PROUT(41H. . . . . . .E.E.EEEERRRRRIIIIIOOOHWW ,41) CALL PROUT(41H. . . . . . .E.E.EEEERRRRRIIIIIOOOHWW ,41)
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(19HTRANSPORT COMPLETE. ,19) CALL PROUT(19HTRANSPORT COMPLETE. ,19)
@@ -3989,7 +3994,7 @@ C*
50 IF(PLNETS(IPLANET,4) .EQ. 1) GO TO 51 50 IF(PLNETS(IPLANET,4) .EQ. 1) GO TO 51
CALL PROUT(37HNO DILITHIUM CRYSTALS ON THIS PLANET. ,37) CALL PROUT(37HNO DILITHIUM CRYSTALS ON THIS PLANET. ,37)
RETURN RETURN
51 TIME =(0.1+0.2*RANF(0)) * PLNETS(IPLANET,3) 51 TIME =(0.1+0.2*RAND()) * PLNETS(IPLANET,3)
ASSIGN 52 TO IWHERE ASSIGN 52 TO IWHERE
GO TO 16 GO TO 16
52 CALL PROUT(26HMINING OPERATION COMPLETE. ,26) 52 CALL PROUT(26HMINING OPERATION COMPLETE. ,26)
@@ -4024,7 +4029,7 @@ C*
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(42HSCOTTY: "KEEP YOUR FINGERS CROSSED, SIR!" ,42) CALL PROUT(42HSCOTTY: "KEEP YOUR FINGERS CROSSED, SIR!" ,42)
CALL SKIP(1) CALL SKIP(1)
IF(RANF(0) .GT. CRYPROB) GO TO 57 IF(RAND() .GT. CRYPROB) GO TO 57
CALL PROUT(41H "ACTIVATING NOW! - - NO GOOD! IT'S*** ,41) CALL PROUT(41H "ACTIVATING NOW! - - NO GOOD! IT'S*** ,41)
5610 CALL PROUT(54H***RED ALERT! RED A*L****************************** 5610 CALL PROUT(54H***RED ALERT! RED A*L******************************
+**,54) +**,54)
@@ -4033,7 +4038,7 @@ C*
C** ,54) C** ,54)
CALL KABOOM CALL KABOOM
RETURN RETURN
57 ENERGY = ENERGY +5000.*(1.+0.9*RANF(0)) 57 ENERGY = ENERGY +5000.*(1.+0.9*RAND())
CALL PROUT(38H "ACTIVATING NOW% - - THE INSTRUMENTS ,38) CALL PROUT(38H "ACTIVATING NOW% - - THE INSTRUMENTS ,38)
CALL PROUT(36H ARE GOING CRAZY, BUT I THINK IT'S ,36) CALL PROUT(36H ARE GOING CRAZY, BUT I THINK IT'S ,36)
CALL PROUT(41H GOING TO WORK! CONGRATULATIONS, SIR!" ,41) CALL PROUT(41H GOING TO WORK! CONGRATULATIONS, SIR!" ,41)
@@ -4152,7 +4157,7 @@ C*
CALL PROUT(16HKIRK: "ENGAGE!",16) CALL PROUT(16HKIRK: "ENGAGE!",16)
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(45HWHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR,45) CALL PROUT(45HWHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR,45)
R=RANF(0) R=RAND()
IF(R .GT. 0.30) GO TO 130 IF(R .GT. 0.30) GO TO 130
C--------BANG! C--------BANG!
CALL PROUT(32HSULU: "CAPTAIN! IT'S WORKING!",32) CALL PROUT(32HSULU: "CAPTAIN! IT'S WORKING!",32)
@@ -4174,7 +4179,7 @@ C--------SUCCESS!
CALL SKIP(1) CALL SKIP(1)
CALL PROUT( CALL PROUT(
+56HSPOCK: "CAPTAIN, I BELIEVE THE "EXPERIMENTAL DEATH RAY",56) +56HSPOCK: "CAPTAIN, I BELIEVE THE "EXPERIMENTAL DEATH RAY",56)
IF(RANF(0).GT..05) GOTO 140 IF(RAND().GT..05) GOTO 140
CALL PROUT(22HIS STILL OPERATIONAL.",22) CALL PROUT(22HIS STILL OPERATIONAL.",22)
RETURN RETURN
140 CALL PROUT(33HHAS BEEN RENDERED DISFUNCTIONAL.",33) 140 CALL PROUT(33HHAS BEEN RENDERED DISFUNCTIONAL.",33)
@@ -4603,7 +4608,7 @@ C CALL CRAMENA(IENM,2,IX,IY)
CALL CRAM3AS CALL CRAM3AS
CALL CRAMSHP CALL CRAMSHP
CALL CRAMDMP(17H HEAVILY DAMAGED.,17) CALL CRAMDMP(17H HEAVILY DAMAGED.,17)
ICAS=10.0+20.0*RANF(0) ICAS=10.0+20.0*RAND()
CALL CRAM(19H***SICKBAY REPORTS ,19) CALL CRAM(19H***SICKBAY REPORTS ,19)
CALL CRAMI(ICAS,0) CALL CRAMI(ICAS,0)
CALL CRAMDMP(12H CASUALTIES.,12) CALL CRAMDMP(12H CASUALTIES.,12)
@@ -4611,7 +4616,7 @@ C CALL CRAMENA(IENM,2,IX,IY)
DO 10 L=1,NDEVICE DO 10 L=1,NDEVICE
IF(DAMAGE(L) .LT. 0) GO TO 10 IF(DAMAGE(L) .LT. 0) GO TO 10
IF(L.EQ.14) GOTO 10 IF(L.EQ.14) GOTO 10
EXTRADM=(10.0*TYPE*RANF(0)+1.0)*DAMFAC EXTRADM=(10.0*TYPE*RAND()+1.0)*DAMFAC
DAMAGE(L)=DAMAGE(L)+TIME+EXTRADM DAMAGE(L)=DAMAGE(L)+TIME+EXTRADM
10 CONTINUE 10 CONTINUE
ISUBDAM=1 ISUBDAM=1
@@ -4621,6 +4626,35 @@ C CALL CRAMENA(IENM,2,IX,IY)
RETURN RETURN
END END
END
DELETE F7:TRRANF
EDIT
BUILD F7:TRRANF
C REAL FUNCTION RANF(DUMMY)
REAL FUNCTION RAND()
C
C 25-APR-79
C CHANGED TO USE THE ONE-ARGUMENT VERSION OF THE RAN FUNCTION,
C AND TO USE AN INTEGER*4 SEED.
C
C INTEGER*4 IRAN,ISEED
INTEGER NXSEED
C
IF (NXSEED.NE.0) GO TO 10
RAND=RANF()
RETURN
10 NXSEED=NXSEED * 1103515243 + 12345
IDIV=NXSEED/65536
IMOD=IDIV-((IDIV/32768)*32768)
RAND=ABS(IMOD/32768.)
RETURN
C
ENTRY RANSET(ISEED)
C
NXSEED=ISEED
RETURN
END
END END
DELETE F7:TRSCAN DELETE F7:TRSCAN
EDIT EDIT
@@ -4944,7 +4978,7 @@ C--------CHECK FOR A BASE.
46 IF(IBQX.EQ.ISX .AND. IBQY.EQ.ISY .AND. ISX.NE.BATX .AND. ISY.NE. 46 IF(IBQX.EQ.ISX .AND. IBQY.EQ.ISY .AND. ISX.NE.BATX .AND. ISY.NE.
+ BATY) GO TO 80 + BATY) GO TO 80
C--------CHECK FOR INTELLIGENCE REPORT. C--------CHECK FOR INTELLIGENCE REPORT.
IF(RANF(0) .GT. 0.2) RETURN IF(RAND() .GT. 0.2) RETURN
IF(DAMAGE(9).GT.0. .OR. STARCH(ISX,ISY).GT.0) RETURN IF(DAMAGE(9).GT.0. .OR. STARCH(ISX,ISY).GT.0) RETURN
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(52HLT. UHURA: "CAPTAIN, STARFLEET INTELLIGENCE REPORTS CALL PROUT(52HLT. UHURA: "CAPTAIN, STARFLEET INTELLIGENCE REPORTS
@@ -4959,7 +4993,7 @@ C--------NOTHING AVAILABLE. GO INTO HIBERNATION.
RETURN RETURN
C--------ATTACK A BASE. C--------ATTACK A BASE.
80 ISATB=1 80 ISATB=1
FUTURE(7)=DATE+1.0+2.0*RANF(0) FUTURE(7)=DATE+1.0+2.0*RAND()
IF(BATX.NE.0.0) FUTURE(7)=FUTURE(7)+FUTURE(5)-DATE IF(BATX.NE.0.0) FUTURE(7)=FUTURE(7)+FUTURE(5)-DATE
LOC=IHS LOC=IHS
CALL SOS CALL SOS
@@ -5128,7 +5162,7 @@ C SHUTUP=0.0
SHUTUP=0 SHUTUP=0
BATX=0 BATX=0
BATY=0 BATY=0
IDATE=31.0*RANF(0)+20.0 IDATE=31.0*RAND()+20.0
DATE=100*IDATE DATE=100*IDATE
INDATE=DATE INDATE=DATE
KILLK=0 KILLK=0
@@ -5169,7 +5203,7 @@ C--------PUT STARS IN THE GALAXY
INSTAR=0 INSTAR=0
DO 5 I=1,8 DO 5 I=1,8
DO 5 J=1,8 DO 5 J=1,8
K = RANF(0) * 9 + 1 K = RAND() * 9 + 1
INSTAR=INSTAR+K INSTAR=INSTAR+K
5 GALAXY(I,J)=K 5 GALAXY(I,J)=K
STARKL=0 STARKL=0
@@ -5181,7 +5215,7 @@ C-------LOCATE STARBASES IN THE GALAXY (IMPROVED PLACEMENT)
LIM=I-1 LIM=I-1
DO 7 J=1,LIM DO 7 J=1,LIM
DISTQ=(IX-BASEQX(J))**2 + (IY-BASEQY(J))**2 DISTQ=(IX-BASEQX(J))**2 + (IY-BASEQY(J))**2
IF(DISTQ .LT. 6*(6-INBASE) .AND. RANF(0.) .LT. 0.75) GOTO 6 IF(DISTQ .LT. 6*(6-INBASE) .AND. RAND() .LT. 0.75) GOTO 6
7 CONTINUE 7 CONTINUE
8 BASEQX(I)=IX 8 BASEQX(I)=IX
BASEQY(I)=IY BASEQY(I)=IY
@@ -5192,7 +5226,7 @@ C--------POSITION ORDINARY KLINGON BATTLE CRUISERS
KREM=INKLING-INCOM-NSCREM KREM=INKLING-INCOM-NSCREM
KLUMPER=0.25*SKILL*(9-LENGTH)+1.0 KLUMPER=0.25*SKILL*(9-LENGTH)+1.0
KLUMPER=MIN0(9,KLUMPER) KLUMPER=MIN0(9,KLUMPER)
10 KLUMP=(1.0-RANF(0)**2)*KLUMPER 10 KLUMP=(1.0-RAND()**2)*KLUMPER
IF(KLUMP .GT. KREM) KLUMP=KREM IF(KLUMP .GT. KREM) KLUMP=KREM
NUM=100*KLUMP NUM=100*KLUMP
15 CALL IRAN8(IX,IY) 15 CALL IRAN8(IX,IY)
@@ -5203,7 +5237,7 @@ C--------POSITION ORDINARY KLINGON BATTLE CRUISERS
C--------POSITION KLINGON COMMAND SHIPS C--------POSITION KLINGON COMMAND SHIPS
DO 18 I=1,INCOM DO 18 I=1,INCOM
16 CALL IRAN8(IX,IY) 16 CALL IRAN8(IX,IY)
IF(GALAXY(IX,IY).LT.99 .AND. RANF(0).LT.0.75) GO TO 16 IF(GALAXY(IX,IY).LT.99 .AND. RAND().LT.0.75) GO TO 16
IF(GALAXY(IX,IY) .GT. 899)GO TO 16 IF(GALAXY(IX,IY) .GT. 899)GO TO 16
IF(I .EQ. 1)GO TO 17 IF(I .EQ. 1)GO TO 17
IM1=I-1 IM1=I-1
@@ -5221,9 +5255,9 @@ C--------LOCATE PLANETS IN GALAXY
PLNETS(I,1)=IX PLNETS(I,1)=IX
PLNETS(I,2)=IY PLNETS(I,2)=IY
C--------DECIDE WHAT KIND OF PLANET M=1, N=2, O=3. C--------DECIDE WHAT KIND OF PLANET M=1, N=2, O=3.
PLNETS(I,3)=RANF(0)*3. + 1. PLNETS(I,3)=RAND()*3. + 1.
C--------DECIDE WHETHER DILITHIUM CRYSTALS ARE PRESENT. C--------DECIDE WHETHER DILITHIUM CRYSTALS ARE PRESENT.
PLNETS(I,4)=1.2*RANF(0) PLNETS(I,4)=1.2*RAND()
PLNETS(I,5)=0 PLNETS(I,5)=0
20 CONTINUE 20 CONTINUE
C--------LOCATE ROMULANS. C--------LOCATE ROMULANS.
@@ -5241,7 +5275,7 @@ C--------LOCATE THE SUPER-COMMANDER, IF NEEDED.
CALL SKIP(1) CALL SKIP(1)
SNAP=0 SNAP=0
C--------DECIDE IF GALAXY NEEDS A "THING" C--------DECIDE IF GALAXY NEEDS A "THING"
IF((RANF(0) .GT. 0.04) .OR. (THINGX .EQ. -1)) GO TO 2301 IF((RAND() .GT. 0.04) .OR. (THINGX .EQ. -1)) GO TO 2301
CALL IRAN8(THINGX,THINGY) CALL IRAN8(THINGX,THINGY)
GO TO 24 GO TO 24
2301 THINGX=0 2301 THINGX=0
@@ -5489,7 +5523,7 @@ C
NSY=INSY NSY=INSY
C--------IF SCHEDULED SUPERNOVA (INSX=INSY=0), SELECT STAR C--------IF SCHEDULED SUPERNOVA (INSX=INSY=0), SELECT STAR
IF(INSX.NE.0) GO TO 50 IF(INSX.NE.0) GO TO 50
NUM=RANF(0)*INSTAR+1 NUM=RAND()*INSTAR+1
DO 10 NQX=1,8 DO 10 NQX=1,8
DO 10 NQY=1,8 DO 10 NQY=1,8
NUM=NUM-MOD(GALAXY(NQX,NQY),10) NUM=NUM-MOD(GALAXY(NQX,NQY),10)
@@ -5502,7 +5536,7 @@ C--------IF STARSHIP IS IN THIS QUADRANT, CHOOSE STAR EXACTLY
C--------UNLESS STARSHIP JUST GOT HERE; THEN TREAT SUPERNOVA AS C--------UNLESS STARSHIP JUST GOT HERE; THEN TREAT SUPERNOVA AS
C OCCURING WHILE EN ROUTE. C OCCURING WHILE EN ROUTE.
IF(JUSTIN.NE.0) GO TO 70 IF(JUSTIN.NE.0) GO TO 70
NUM=RANF(0)*MOD(GALAXY(NQX,NQY),10)+1 NUM=RAND()*MOD(GALAXY(NQX,NQY),10)+1
DO 30 NSX=1,10 DO 30 NSX=1,10
DO 30 NSY=1,10 DO 30 NSY=1,10
IF(QUAD(NSX,NSY) .NE. IHSTAR) GO TO 30 IF(QUAD(NSX,NSY) .NE. IHSTAR) GO TO 30
@@ -5949,9 +5983,9 @@ BUILD F7:TRTIMEW
DIMENSION PICTURE(226) DIMENSION PICTURE(226)
EQUIVALENCE (PICTURE,DATE) EQUIVALENCE (PICTURE,DATE)
CALL PROUT(21H***TIME WARP ENTERED.,21) CALL PROUT(21H***TIME WARP ENTERED.,21)
IF(SNAP.NE.0 .AND. RANF(0).LT.0.5) GO TO 10 IF(SNAP.NE.0 .AND. RAND().LT.0.5) GO TO 10
C--------TRAVEL FORWARD IN TIME C--------TRAVEL FORWARD IN TIME
TIME=-0.5*INTIME*ALOG(RANF(0)) TIME=-0.5*INTIME*ALOG(RAND())
CALL CRAM(35HYOU ARE TRAVELLING FORWARD IN TIME ,35) CALL CRAM(35HYOU ARE TRAVELLING FORWARD IN TIME ,35)
CALL CRAMF(TIME,0,2) CALL CRAMF(TIME,0,2)
CALL CRAMDMP(11H STARDATES.,11) CALL CRAMDMP(11H STARDATES.,11)
@@ -6356,7 +6390,7 @@ C--------ALTERNATE REST PERIODS (EVENTS) WITH ATTACKS
40 IF(ANUM .LE. 0.) RESTING=0 40 IF(ANUM .LE. 0.) RESTING=0
IF(RESTING .EQ. 0) GO TO 50 IF(RESTING .EQ. 0) GO TO 50
TEMP=ANUM TEMP=ANUM
IF(NENHERE.NE. 0) TEMP=AMIN1(ANUM,1.0+RANF(0)) IF(NENHERE.NE. 0) TEMP=AMIN1(ANUM,1.0+RAND())
TIME=TEMP TIME=TEMP
IF(TIME .LT. ANUM) CALL ATTACK IF(TIME .LT. ANUM) CALL ATTACK
IF(NENHERE.EQ.0) CALL MOVETHO IF(NENHERE.EQ.0) CALL MOVETHO
@@ -6443,12 +6477,12 @@ C*
IF(WARPFAC .LE. 6.0) GO TO 50 IF(WARPFAC .LE. 6.0) GO TO 50
C--------DECIDE IF ENGINE DAMAGE WILL OCCUR C--------DECIDE IF ENGINE DAMAGE WILL OCCUR
PROB=DIST*(6.0-WARPFAC)**2/66.666666666 PROB=DIST*(6.0-WARPFAC)**2/66.666666666
IF(PROB .GT. RANF(0)) BLOOEY=1 IF(PROB .GT. RAND()) BLOOEY=1
IF(BLOOEY.NE.0) DIST=RANF(0)*DIST IF(BLOOEY.NE.0) DIST=RAND()*DIST
C----------DECIDE IF TIME WARP WILL OCCUR C----------DECIDE IF TIME WARP WILL OCCUR
TWARP=0 TWARP=0
IF(WARPFAC .LT. 10.0) GO TO 40 IF(WARPFAC .LT. 10.0) GO TO 40
IF(0.5*DIST .GT. RANF(0)) TWARP=1 IF(0.5*DIST .GT. RAND()) TWARP=1
40 IF(BLOOEY .EQ. 0 .AND. TWARP .EQ. 0) GO TO 50 40 IF(BLOOEY .EQ. 0 .AND. TWARP .EQ. 0) GO TO 50
C--------IF ENGINE DAMAGE OR TIME WARP SHOULD OCCUR, CHECK PATH C--------IF ENGINE DAMAGE OR TIME WARP SHOULD OCCUR, CHECK PATH
ANGLE=((15.0-DIREC)*0.5235998) ANGLE=((15.0-DIREC)*0.5235998)
@@ -6485,7 +6519,7 @@ C--------ENTER TIME WARP
IF(TWARP.NE.0) CALL TIMEWRP IF(TWARP.NE.0) CALL TIMEWRP
C--------DAMAGE WARP ENGINES C--------DAMAGE WARP ENGINES
IF(BLOOEY .EQ. 0) GO TO 60 IF(BLOOEY .EQ. 0) GO TO 60
DAMAGE(6)=DAMFAC*(3.0*RANF(0)+1.0) DAMAGE(6)=DAMFAC*(3.0*RAND()+1.0)
CALL SKIP(1) CALL SKIP(1)
CALL PROUT(24H"ENGINEERING TO BRIDGE--,24) CALL PROUT(24H"ENGINEERING TO BRIDGE--,24)
CALL PROUT(44H SCOTT HERE. THE WARP ENGINES ARE DAMAGED.,44) CALL PROUT(44H SCOTT HERE. THE WARP ENGINES ARE DAMAGED.,44)
@@ -6510,7 +6544,7 @@ BUILD F7:TRZAP
REAL*8 CRAMBUF(2) REAL*8 CRAMBUF(2)
PFAC=1.0/INSHLD PFAC=1.0/INSHLD
CHGFAC=1.0 CHGFAC=1.0
IF(SHLDCHG .EQ. 1) CHGFAC=0.25+0.50*RANF(0) IF(SHLDCHG .EQ. 1) CHGFAC=0.25+0.50*RAND()
IF(SHLDUP .EQ. 0 .AND. SHLDCHG .EQ. 0) GO TO 10 IF(SHLDUP .EQ. 0 .AND. SHLDCHG .EQ. 0) GO TO 10
PROPOR=AMAX1(PFAC*SHLD,0.10) PROPOR=AMAX1(PFAC*SHLD,0.10)
HITSH=PROPOR*CHGFAC*HIT+1.0 HITSH=PROPOR*CHGFAC*HIT+1.0
@@ -6532,20 +6566,20 @@ C CALL CRAMENA(QUAD(JX,JY),0,JX,JY)
CALL CRAMENA(QUAD(JX,JY)) CALL CRAMENA(QUAD(JX,JY))
15 CALL CREND 15 CALL CREND
C--------DECIDE IF HIT IS CRITICAL C--------DECIDE IF HIT IS CRITICAL
IF(HIT .LT. (275.0-25.0*SKILL)*(1.0+0.5*RANF(0))) GO TO 60 IF(HIT .LT. (275.0-25.0*SKILL)*(1.0+0.5*RAND())) GO TO 60
NCRIT=1.0 + HIT/(500.0+100.0*RANF(0)) NCRIT=1.0 + HIT/(500.0+100.0*RAND())
CALL CRAM(17H***CRITICAL HIT--,17) CALL CRAM(17H***CRITICAL HIT--,17)
C--------SELECT DEVICE(S) AND CAUSE DAMAGE C--------SELECT DEVICE(S) AND CAUSE DAMAGE
KTR=1 KTR=1
DO 50 LL=1,NCRIT DO 50 LL=1,NCRIT
20 J=NDEVICE*RANF(0)+1.0 20 J=NDEVICE*RAND()+1.0
IF(DAMAGE(J) .LT. 0) GO TO 20 IF(DAMAGE(J) .LT. 0) GO TO 20
C*--------CHEAT TO PREVENT DEATHRAY FROM BEING DAMAGED. C*--------CHEAT TO PREVENT DEATHRAY FROM BEING DAMAGED.
IF(J.EQ.14) GOTO 20 IF(J.EQ.14) GOTO 20
C--------CHEAT TO PREVENT SHUTTLE DAMAGE UNLESS ON SHIP. C--------CHEAT TO PREVENT SHUTTLE DAMAGE UNLESS ON SHIP.
IF((J .EQ. 10) .AND. (ISCRAFT .NE. 1)) GO TO 20 IF((J .EQ. 10) .AND. (ISCRAFT .NE. 1)) GO TO 20
CDAM(LL)=J CDAM(LL)=J
EXTRADM=(HIT*DAMFAC)/(NCRIT*(75.0+25.0*RANF(0))) EXTRADM=(HIT*DAMFAC)/(NCRIT*(75.0+25.0*RAND()))
DAMAGE(J)=DAMAGE(J)+EXTRADM DAMAGE(J)=DAMAGE(J)+EXTRADM
IF(LL .EQ. 1) GO TO 40 IF(LL .EQ. 1) GO TO 40
DO 30 LLL=2,LL DO 30 LLL=2,LL
@@ -7979,23 +8013,23 @@ BUILD TX:STARTRK
1. STAR TREK (THE ORIGINAL TELEVISION SERIES), PRODUCED AND 1. STAR TREK (THE ORIGINAL TELEVISION SERIES), PRODUCED AND
DIRECTED BY GENE RODENBERRY. DIRECTED BY GENE RODDENBERRY.
2. STAR TREK (THE ANIMATED TELEVISION SERIES), PRODUCED BY GENE 2. STAR TREK (THE ANIMATED TELEVISION SERIES), PRODUCED BY GENE
RODENBERRY AND DIRECTED BY HAL SUTHERLAND. ALSO EXCELLENT, RODDENBERRY AND DIRECTED BY HAL SUTHERLAND. ALSO EXCELLENT,
AND NOT JUST KIDDIE FARE. IF YOU ENJOYED THE ORIGINAL SERIES AND NOT JUST KIDDIE FARE. IF YOU ENJOYED THE ORIGINAL SERIES
YOU SHOULD ENJOY THIS ONE (UNLESS YOU HAVE SOME SORT OF A YOU SHOULD ENJOY THIS ONE (UNLESS YOU HAVE SOME SORT OF A
HANGUP ABOUT WATCHING CARTOONS). HANGUP ABOUT WATCHING CARTOONS).
3. THE MAKING OF STAR TREK, BY STEVEN E. WHITFIELD AND GENE 3. THE MAKING OF STAR TREK, BY STEVEN E. WHITFIELD AND GENE
RODENBERRY. THE BEST AND MOST COMPLETE READILY AVAILABLE RODDENBERRY. THE BEST AND MOST COMPLETE READILY AVAILABLE
BOOK ABOUT STAR TREK. (BALLANTINE BOOKS) BOOK ABOUT STAR TREK. (BALLANTINE BOOKS)
4. THE WORLD OF STAR TREK, BY DAVID GERROLD. SIMILIAR IN SCOPE 4. THE WORLD OF STAR TREK, BY DAVID GERROLD. SIMILAR IN SCOPE
TO THE ABOVE BOOK. (BANTAM) TO THE ABOVE BOOK. (BANTAM)
5. THE STAR TREK GUIDE, THIRD REVISION 4/17/67, BY GENE 5. THE STAR TREK GUIDE, THIRD REVISION 4/17/67, BY GENE
RODENBERRY. THE ORIGINAL WRITER'S GUIDE FOR THE TELEVISION RODDENBERRY. THE ORIGINAL WRITER'S GUIDE FOR THE TELEVISION
SERIES, BUT LESS COMPREHENSIVE THAN (3) ABOVE. SERIES, BUT LESS COMPREHENSIVE THAN (3) ABOVE.
(NORWAY PRODUCTIONS) (NORWAY PRODUCTIONS)
@@ -8149,6 +8183,9 @@ F77 F7:TRPROUT OVER BO:TRPROUT
F F
F77 F7:TRRAM OVER BO:TRRAM F77 F7:TRRAM OVER BO:TRRAM
F
F77 F7:TRRANF OVER BO:TRRANF
F F
F77 F7:TRSCAN OVER BO:TRSCAN F77 F7:TRSCAN OVER BO:TRSCAN
@@ -8247,6 +8284,7 @@ BUILD TRPLAQU FROM BO:TRPLAQU(ROM)
BUILD TRPRELI FROM BO:TRPRELI(ROM) BUILD TRPRELI FROM BO:TRPRELI(ROM)
BUILD TRPROUT FROM BO:TRPROUT(ROM) BUILD TRPROUT FROM BO:TRPROUT(ROM)
BUILD TRRAM FROM BO:TRRAM(ROM) BUILD TRRAM FROM BO:TRRAM(ROM)
BUILD TRRANF FROM BO:TRRANF(ROM)
BUILD TRSCAN FROM BO:TRSCAN(ROM) BUILD TRSCAN FROM BO:TRSCAN(ROM)
BUILD TRSCOM FROM BO:TRSCOM(ROM) BUILD TRSCOM FROM BO:TRSCOM(ROM)
BUILD TRSCORE FROM BO:TRSCORE(ROM) BUILD TRSCORE FROM BO:TRSCORE(ROM)
@@ -8356,6 +8394,8 @@ DELETE F7:TRPROUT
DELETE BO:TRPROUT DELETE BO:TRPROUT
DELETE F7:TRRAM DELETE F7:TRRAM
DELETE BO:TRRAM DELETE BO:TRRAM
DELETE F7:TRRANF
DELETE BO:TRRANF
DELETE F7:TRSCAN DELETE F7:TRSCAN
DELETE BO:TRSCAN DELETE BO:TRSCAN
DELETE F7:TRSCOM DELETE F7:TRSCOM