File: STARWR.LS of Tape: V50/Source/Source-Listing-FORTRAN-1
(Source file text)
FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE ONE C PROGRAM SIMULATES TV PROGRAM STAR TREK C FORTRAN IV VERSION BY KAY R. FISHER ...DEC C ORIGINAL BASIC PROGRAM BY MIKE MAYFIELD C CENTERLINE ENGINEERING 0002 INTEGER ENERGY,QUAD1,QUAD2,SECT1,SECT2,CHART(9,2) 0003 INTEGER TKLING,TBASES,BASES3,STARS3,ARRAY(8,8,3) 0004 INTEGER KLINST(3,3),LRSENS(3),SHIELD 0005 INTEGER ZONE1,ZONE2,RANK1,RANK2,OK,COMM,DOCKED,TORPED 0006 INTEGER COND,HELL,LONG(3),HIT 0007 REAL NO,DAMAGE(8) 0010 COMMON ARRAY,ZONE1,ZONE2,INSERT,RANK1,RANK2,OK,IRA,JONES 0011 COMMON DOCKED,KLING3,KLINST,SECT1,SECT2,SHIELD 0012 DATA YES/'YES'/,NO/'NO'/ C ************************************************* C THIS MADNESS IS THE NAVIGATION CHART C ************************************************* 0013 DATA CHART(2,1)/-1/,CHART(3,1)/-1/,CHART(4,1)/-1/ 0014 DATA CHART(4,2)/-1/,CHART(5,2)/-1/,CHART(6,2)/-1/ 0015 DATA CHART(1,1)/0/,CHART(3,2)/0/,CHART(5,1)/0/ 0016 DATA CHART(7,2)/0/,CHART(9,1)/0/,CHART(1,2)/1/ 0017 DATA CHART(2,2)/1/,CHART(6,1)/1/,CHART(7,1)/1/ 0020 DATA CHART(8,1)/1/,CHART(8,2)/1/,CHART(9,2)/1/ C ************************************************* C IT LOOKS LIKE THIS C ************************************************* C 0 1 C 1 1 C 1 0 C 1 -1 C 0 -1 C -1 -1 C -1 0 C -1 1 C 0 1 C ************************************************* 0021 WRITE (4,1) 0022 1 FORMAT (////,1X,'PLEASE ENTER THE TIME (24 HOUR FORMAT),IE: 4:30 1 P.M. = 1630.',/,1X,'TIME?',$) 0023 READ (4,1290) ITEMP 0024 IRA = INT((FLOAT(ITEMP))/100) 0025 JONES = INT(ITEMP-IRA*100) 0026 ASSIGN 1270 TO HELL 0027 5 KSHELD = 200 0030 DOCKED = 0 0031 TORPED = 10 0032 SHIELD = 0 0033 DO 9 I=1,8 0034 DAMAGE(I)=0. 0035 9 CONTINUE 0036 WRITE (4,10) 0037 10 FORMAT(////,T20,'* * * STAR TREK * * *' 1 /,T20,'FORTRAN IV VERSION BY KAY R. FISHER ...DEC') 0040 25 WRITE (4,30) 0041 30 FORMAT(////,1X,'DO YOU WANT INSTRUCTIONS (THEY ARE LONG!)?',$) 0042 READ (4,40)ANSWER FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE TWO 0043 40 FORMAT(A3) 0044 IF(ANSWER.EQ.YES) GOTO 20000 0045 IF(ANSWER.EQ.NO) GOTO 100 0046 WRITE (4,50) 0047 50 FORMAT(1X,'PLEASE ANSWER YES OR NO!') 0050 GOTO 25 0051 100 DATLFT=30.0 0052 ENERGY=3000 0053 SHIELD=0 C THIS ARRAY REPRESENTS KLINGON POSITIONS C AND THERE REMAINING SHIELD ENERGY!! C FOR UP TO 3 KLINGONS(I.E. ONE SECTOR'S WORTH) 0054 DO 105 I=1,3 0055 DO 105 J=1,3 0056 KLINST(I,J) = 0 0057 105 CONTINUE C THIS ARRAY WILL REPRESENT 3-8X8 PLANES C PLANE 1 = MASTER GALAXY LAYOUT C PLANE 2 = LIBRARY RECORD OF ALL LONG RANGE SENSOR SCANS C PLANE 3 = PRESENT SECTOR LAYOUT 0060 DO 200 I=1,8 0061 DO 200 J=1,8 0062 DO 200 K=1,3 0063 ARRAY(I,J,K)=0. 0064 200 CONTINUE C PUT THE ENTERPRISE SOMEWHERE 0065 QUAD1=INT(RAN(IRA,JONES)*8+1) 0066 QUAD2=INT(RAN(IRA,JONES)*8+1) 0067 SECT1=INT(RAN(IRA,JONES)*8+1) 0070 SECT2=INT(RAN(IRA,JONES)*8+1) C SETS UP WHAT EXISTS IN GALAXY 0071 TKLING=0. 0072 TBASES=0. 0073 DO 750 I=1,8 0074 DO 750 J=1,8 0075 RND=RAN(IRA,JONES) 0076 IF (RND.GT..98) GOTO 580 0077 IF(RND.GT..95) GOTO 610 0100 IF(RND.GT..8) GOTO 640 0101 KLING3=0. 0102 GOTO 660 0103 580 KLING3=3. 0104 TKLING=TKLING+3. 0105 GOTO 660 0106 610 KLING3=2. 0107 TKLING=TKLING+2. 0110 GOTO 660 0111 640 KLING3=1. 0112 TKLING=TKLING+1. 0113 660 RND=RAN(IRA,JONES) 0114 IF(RND.GT..96) GOTO 700 0115 BASES3=0. 0116 GOTO 720 0117 700 BASES3=1. 0120 TBASES=TBASES+1. FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE THREE 0121 720 STARS3=INT(RAN(IRA,JONES)*8+1) 0122 ARRAY(I,J,1)=KLING3*100+BASES3*10+STARS3 0123 750 CONTINUE 0124 KLING7=TKLING 0125 IF(TBASES.GT.0.) GOTO 780 0126 IRND1=INT(RAN(IRA,JONES)*8+1) 0127 IRND2=INT(RAN(IRA,JONES)*8+1) 0130 ARRAY(IRND1,IRND2,1)=ARRAY(IRND1,IRND2,1)+10. 0131 TBASES=1. 0132 780 WRITE (4,800)TKLING,DATLFT,TBASES 0133 800 FORMAT(//,1X,'YOU MUST DESTROY',1X,I2,1X,'KLINGONS 1 IN',F6.1,1X,'STARDATES WITH',I2,1X,'STARBASES!!!',////////) 0134 TIME = INT(RAN(IRA,JONES)*20+20)*100 0135 TIME0 = TIME C OK NOW CLEAR THIS SECTOR!!!!! 0136 810 STARS3=0 0137 KLING3=0 0140 BASES3=0 C THIS CHECKS TO SEE IF WE ARE IN OUR ASSIGNED C REGION OF THE GALAXY!!! 0141 IF (QUAD1.LT.1) GOTO 920 0142 IF (QUAD1.GT.8) GOTO 920 0143 IF (QUAD2.LT.1) GOTO 920 0144 IF (QUAD2.GT.8) GOTO 920 C IF NOT GOTO 920 C OK THEN LET'S SEE WHAT IS IN THIS QUADRANT 0145 TEMP = ARRAY(QUAD1,QUAD2,1)*.01 0146 KLING3=INT(TEMP) 0147 BASES3 = INT((TEMP-KLING3)*10) 0150 STARS3=ARRAY(QUAD1,QUAD2,1)-INT(ARRAY(QUAD1,QUAD2,1)*.1)*10 C IF THERE'S NO KLINGONS HERE THEN IT'S C NOT CONDITION RED 0151 IF (KLING3.EQ.0) GOTO 920 C LET'S SEE IF THE SHIELDS ARE LOW? 0152 IF (SHIELD.GE.200) GOTO 900 0153 WRITE (4,890) 0154 890 FORMAT(//,1X,' SHIELDS DANGEROUSLY LOW') 0155 900 WRITE (4,910) 0156 910 FORMAT(1X,'COMBAT AREA CONDITION RED') C CLEAR OUT THE KLINGON SHIELD POWER ARRAY 0157 920 DO 940 I=1,3 0160 KLINST(I,3) = 0 0161 940 CONTINUE C PUT THE ENTERPRISE SOMEWHERE 0162 ZONE1 = SECT1 0163 ZONE2 = SECT2 0164 DO 970 I=1,8 0165 DO 970 J=1,8 0166 ARRAY(I,J,3)=0 0167 970 CONTINUE C INSERT=1=ENTERPRISE 0170 INSERT = 1 C PLACE - PLACE - PLACE - PLACE 0171 ARRAY (ZONE1,ZONE2,3) = INSERT C PUT KLINGONS SOMEWHERE FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE FOUR 0172 IF (KLING3.EQ.0) GOTO 1120 0173 DO 1110 I=1,KLING3 0174 CALL SECTOR C INSERT=2=KLINGON 0175 INSERT = 2 0176 ZONE1 = RANK1 0177 ZONE2 = RANK2 C PLACE - PLACE - PLACE - PLACE 0200 ARRAY(ZONE1,ZONE2,3) = INSERT C UPDATE KLINGON STATUS ARRAY (KLINST) 0201 KLINST(I,1) = RANK1 0202 KLINST(I,2) = RANK2 0203 KLINST(I,3) = KSHELD 0204 1110 CONTINUE C PUT STARBASE SOMEWHERE 0205 1120 IF (BASES3.EQ.0) GOTO 1190 0206 CALL SECTOR C INSERT=3=STARBASE 0207 INSERT = 3 0210 ZONE1 = RANK1 0211 ZONE2 = RANK2 C PLACE - PLACE - PLACE - PLACE 0212 ARRAY(ZONE1,ZONE2,3) = INSERT C PUT STARS SOMEWHERE 0213 1190 IF (STARS3.EQ.0) GOTO 1260 0214 DO 1250 I=1,STARS3 0215 CALL SECTOR C INSERT=4=STARS 0216 INSERT = 4 0217 ZONE1 = RANK1 0220 ZONE2 = RANK2 C PLACE - PLACE - PLACE - PLACE 0221 ARRAY(ZONE1,ZONE2,3) = INSERT 0222 1250 CONTINUE C ************************************** C THIS IS THE SHORT RANGE SENSOR SCAN C ************************************** C CHECK FOR DOCKING 0223 1260 DO 4200 I=1,3 0224 DO 4200 J=1,3 0225 ZONE1 = SECT1+I-2 0226 IF (ZONE1.LT.1) GOTO 4200 0227 IF (ZONE1.GT.8) GOTO 4200 0230 ZONE2 = SECT2+J-2 0231 IF (ZONE2.LT.1) GOTO 4200 0232 IF (ZONE2.GT.8) GOTO 4200 0233 INSERT = 3 C CHECKING FOR A STARBASE 0234 CALL CHECK 0235 IF (OK.EQ.1) GOTO 4240 0236 4200 CONTINUE 0237 DOCKED = 0 0240 GOTO 4310 C WE ARE DOCKED 0241 4240 DOCKED = 1 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE FIVE 0242 ENERGY = 3000 0243 TORPED = 10 C GET REPAIRS 0244 DO 4260 I=1,8 0245 IF (DAMAGE(I).GE.0) GOTO 4260 0246 DAMAGE(I) = 0 0247 4260 CONTINUE 0250 WRITE (4,4280) 0251 4280 FORMAT (1X,'SHIELDS DROPPED FOR DOCKING PURPOSES') 0252 SHIELD = 0 0253 COND = 1 0254 GOTO 4380 0255 4310 IF (KLING3.GT.0) GOTO 4350 0256 IF (ENERGY.LT.300) GOTO 4370 0257 COND = 0 0260 GOTO 4380 0261 4350 COND = 3 0262 GOTO 4380 0263 4370 COND = 2 0264 4380 IF (DAMAGE(2).GE.0) GOTO 4430 0265 WRITE (4,4390) 0266 4390 FORMAT (/,1X,'*** SHORT RANGE SENSORS ARE OUT ***',/) 0267 GOTO HELL C WILL THE REAL SHORT RANGE SENSOR PLEASE STAND UP? 0270 4430 WRITE (4,4432) 0271 4432 FORMAT(///,1X,'SHORT RANGE SENSOR SCAN',/) 0272 WRITE (4,4435) 0273 4435 FORMAT('+------------------------',/) 0274 DO 4500 I=1,8 0275 DO 4450 J=1,8 0276 IF(ARRAY(I,J,3).EQ.1) GOTO 4441 0277 IF(ARRAY(I,J,3).EQ.2) GOTO 4442 0300 IF(ARRAY(I,J,3).EQ.3) GOTO 4443 0301 IF(ARRAY(I,J,3).EQ.4) GOTO 4444 0302 WRITE (4,4445) 0303 GOTO 4450 0304 4441 WRITE (4,4446) 0305 GOTO 4450 0306 4442 WRITE (4,4447) 0307 GOTO 4450 0310 4443 WRITE (4,4448) 0311 GOTO 4450 0312 4444 WRITE (4,4449) 0313 4445 FORMAT('+ ',$) 0314 4446 FORMAT('+<*>',$) 0315 4447 FORMAT('++++',$) 0316 4448 FORMAT('+>!<',$) 0317 4449 FORMAT('+ * ',$) 0320 4450 CONTINUE C WHAT LINE ARE WE TYPING? 0321 GOTO (4458,4462,4476,4480,4484,4488,4492,4456), I 0322 4456 WRITE (4,4457) 0323 4457 FORMAT('+',/) 0324 GOTO 4500 0325 4458 WRITE (4,4459) TIME FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE SIX 0326 4459 FORMAT('+',4X,'STARDATE',7X,F7.1,/) 0327 GOTO 4500 0330 4462 WRITE (4,4463) 0331 4463 FORMAT('+',4X,'CONDITION',7X,$) 0332 IF(COND.EQ.1) GOTO 4465 0333 IF(COND.EQ.2) GOTO 4467 0334 IF(COND.EQ.3) GOTO 4469 0335 WRITE (4,4464) 0336 4464 FORMAT('+ GREEN',/) 0337 GOTO 4500 0340 4465 WRITE (4,4466) 0341 4466 FORMAT('+DOCKED',/) 0342 GOTO 4500 0343 4467 WRITE (4,4468) 0344 4468 FORMAT('+YELLOW',/) 0345 GOTO 4500 0346 4469 WRITE (4,4470) 0347 4470 FORMAT('+ RED',/) 0350 GOTO 4500 0351 4476 WRITE (4,4477) QUAD1,QUAD2 0352 4477 FORMAT('+',4X,'QUADRANT',9X,I2,',',I2,/) 0353 GOTO 4500 0354 4480 WRITE (4,4481) SECT1,SECT2 0355 4481 FORMAT('+',4X,'SECTOR',11X,I2,',',I2,/) 0356 GOTO 4500 0357 4484 WRITE (4,4485) ENERGY 0360 4485 FORMAT('+',4X,'TOTAL ENERGY',6X,I4,/) 0361 GOTO 4500 0362 4488 WRITE (4,4489) TORPED 0363 4489 FORMAT('+',4X,'PHOTON TORPEDOES',4X,I2,/) 0364 GOTO 4500 0365 4492 WRITE (4,4493) SHIELD 0366 4493 FORMAT('+',4X,'SHIELDS',11X,I4,/) 0367 4500 CONTINUE 0370 WRITE (4,4435) C ********************************************************* C INPUT COMMAND-----INPUT COMMAND-----INPUT COMMAND C ********************************************************* 0371 1270 WRITE (4,1280) 0372 1280 FORMAT(//,1X,'COMMAND:'$) 0373 READ (4,1290)COMM 0374 1290 FORMAT(I4) C COMMAND 69 = CHEAT/TEST/DEBUG 0375 IF (COMM.EQ.69) GOTO 10000 0376 IF (COMM.LT.0) GOTO 1300 0377 IF (COMM.GT.8) GOTO 1300 0400 IF (COMM.EQ.0) GOTO 1410 0401 GOTO (1260,2330,2530,2800,3460,3560,4630,5), COMM 0402 1300 WRITE (4,1310) 0403 1310 FORMAT(//,4X,'0 = SET COURSE',/,4X,'1 = SHORT RANGE SENS SCAN', 1 /,4X,'2 = LONGE RANGE SENS SCAN',/,4X,'3 = FIRE PHASERS',/, 2 4X,'4 = FIRE PHOTON TORPEDOES',/,4X,'5 = SHIELD CONTROL',/, 3 4X,'6 = DAMAGE CONTROL REPORT',/,4X,'7 = CALL LIB COMPUTER',/, 4 4X,'8 = BEGIN NEW CONTEST',/,) 0404 GOTO HELL FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE SEVEN C ************************************************** C THIS IS THE COURSE CONTROL CODE C ************************************************** 0405 1410 WRITE (4,1415) 0406 1415 FORMAT (1X,'COURSE (1-9):?',$) 0407 READ (4,1420) COURSE 0410 1420 FORMAT (F16.0) 0411 IF (COURSE.EQ.0) GOTO HELL 0412 IF (COURSE.LT.0.OR.COURSE.GE.9) GOTO 1410 0413 WRITE (4,1450) 0414 1450 FORMAT (1X,'WARP FACTOR (0-8):?',$) 0415 READ (4,1420) WARP 0416 IF (WARP.LE.0.OR.WARP.GT.8) GOTO HELL 0417 IF (WARP.LE..2.OR.DAMAGE(1).GE.0) GOTO 1510 0420 WRITE (4,1490) 0421 1490 FORMAT (1X,'WARP DRIVE IS DISABLED!',/, 1 1X,'IMPULSE ENGINES ACTIVATED.',/, 2 1X,'MAXIMUM SPEED = WARP .2') 0422 GOTO HELL 0423 1510 IF (KLING3.LE.0) GOTO 1560 0424 CALL SHOOT 0425 IF (SHIELD.LT.0) GOTO 4000 0426 IF (KLING3.LE.0) GOTO 1560 0427 IF (SHIELD.GE.0) GOTO 1610 0430 4000 WRITE (4,4010) 0431 4010 FORMAT (/,1X,'THE ENTERPRISE HAS BEEN DESTROYED. THE 1 FEDERATION WILL BE CONQUERED.') 0432 4020 WRITE (4,4011) TKLING 0433 4011 FORMAT (1X,'THERE ARE STILL ',I3,' KLINGON BATTLE 1 CRUISERS.') 0434 WRITE (4,4012) 0435 4012 FORMAT (1X,'YOU GET ANOTHER CHANCE....') 0436 GOTO 5 0437 1560 IF (ENERGY.GT.0) GOTO 1610 0440 IF (SHIELD.GE.1) GOTO 1580 0441 3920 WRITE (4,3930) 0442 3930 FORMAT (1X,'THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE 1 ALL IMPENDING',/,1X,'ATTACKS YOU WILL BE DEMOTED TO THE 2 RANK OF PRIVATE.') 0443 3940 IF (KLING3.LE.0) GOTO 4020 0444 CALL SHOOT 0445 IF (SHIELD.LT.0) GOTO 4000 0446 GOTO 3940 0447 GOTO 5 0450 1580 WRITE (4,1590) ENERGY,SHIELD 0451 1590 FORMAT (1X,'YOU HAVE ',I5,' UNITS OF ENERGY',/, 1 1X,'SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE ', 2 I5,' UNITS LEFT.') 0452 GOTO HELL C FIX ANY DAMAGED DEVICE MR. SCOTT 0453 1610 DO 1640 I=1,8 0454 IF (DAMAGE(I).GE.0) GOTO 1640 0455 DAMAGE(I) = DAMAGE(I)+1. 0456 1640 CONTINUE 0457 IF (RAN(IRA,JONES).GT..2) GOTO 1810 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE EIGHT 0460 ITEMP = INT(RAN(IRA,JONES)*8+1) 0461 IF (RAN(IRA,JONES).GE..5) GOTO 1750 0462 DAMAGE(ITEMP) = DAMAGE(ITEMP)-(RAN(IRA,JONES)*5+1) 0463 WRITE (4,1690) 0464 1690 FORMAT (/,1X,'DAMAGE CONTROL REPORTS:',$) 0465 GOTO (1692,1694,1696,1700,1702,1704,1706,1708) ITEMP 0466 1692 WRITE (4,1693) 0467 1693 FORMAT('+ WARP DRIVE ',$) 0470 GOTO 1720 0471 1694 WRITE (4,1695) 0472 1695 FORMAT('+ SHORT RANGE SENSORS ',$) 0473 GOTO 1720 0474 1696 WRITE (4,1697) 0475 1697 FORMAT('+ LONG RANGE SENSORS ',$) 0476 GOTO 1720 0477 1700 WRITE (4,1701) 0500 1701 FORMAT('+ PHASER CONTROL ',$) 0501 GOTO 1720 0502 1702 WRITE (4,1703) 0503 1703 FORMAT('+ PHOTON TUBES ',$) 0504 GOTO 1720 0505 1704 WRITE (4,1705) 0506 1705 FORMAT('+ DAMAGE CONTROL ',$) 0507 GOTO 1720 0510 1706 WRITE (4,1707) 0511 1707 FORMAT('+ SHIELD CONTROL ',$) 0512 GOTO 1720 0513 1708 WRITE (4,1709) 0514 1709 FORMAT('+ COMPUTER ',$) 0515 1720 WRITE (4,1722) 0516 1722 FORMAT('+DAMAGED',/) 0517 GOTO 1810 0520 1750 DAMAGE(ITEMP) = DAMAGE(ITEMP)+(RAN(IRA,JONES)*5+1) 0521 WRITE (4,1690) 0522 GOTO (1752,1754,1756,1758,1760,1762,1764,1766) ITEMP 0523 1752 WRITE (4,1693) 0524 GOTO 1790 0525 1754 WRITE (4,1695) 0526 GOTO 1790 0527 1756 WRITE (4,1697) 0530 GOTO 1790 0531 1758 WRITE (4,1701) 0532 GOTO 1790 0533 1760 WRITE (4,1703) 0534 GOTO 1790 0535 1762 WRITE (4,1705) 0536 GOTO 1790 0537 1764 WRITE (4,1707) 0540 GOTO 1790 0541 1766 WRITE (4,1709) 0542 1790 WRITE (4,1792) 0543 1792 FORMAT ('+STATE OF REPAIR IMPROVED',/) 0544 1810 MOVE = INT((WARP+.0625)*8) 0545 ZONE1 = SECT1 0546 ZONE2 = SECT2 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE NINE 0547 INSERT = 0 C ZERO THE SECTOR WE LEAVE 0550 ARRAY(ZONE1,ZONE2,3) = INSERT 0551 X = SECT1 0552 Y = SECT2 0553 X1=CHART(INT(COURSE),1)+(CHART(INT(COURSE+1.),1)-CHART(INT( 1 COURSE),1))*(COURSE-INT(COURSE)) 0554 X2=CHART(INT(COURSE),2)+(CHART(INT(COURSE+1.),2)-CHART(INT( 1 COURSE),2))*(COURSE-INT(COURSE)) 0555 DO 2070 I=1,MOVE 0556 X=X+X1 0557 Y=Y+X2 C DID WE FLY OUT OF OUR SECTOR? 0560 IF(X.LT.1..OR.X.GE.9..OR.Y.LT.1..OR.Y.GE.9.) GOTO 2170 C DID WE HIT ANYTHING? 0561 ZONE1 = X 0562 ZONE2 = Y 0563 INSERT = 0 0564 CALL CHECK C WHEN WE RETURN OK BETTER = 1 0565 IF (OK.EQ.1) GOTO 2070 C COLLISION COURSE - BACK UP 1 SECTOR 0566 SECT1 = INT(X-X1) 0567 SECT2 = INT(Y-X2) 0570 ZONE1 = SECT1 0571 ZONE2 = SECT2 0572 WRITE (4,2030) SECT1,SECT2 0573 2030 FORMAT (1X,'WARP ENGINES SHUTDOWN AT SECTOR ',I2,' ,',I2, 1 ' DUE TO BAD NAVAGATION') 0574 GOTO 2080 0575 2070 CONTINUE 0576 SECT1 = INT(X) 0577 SECT2 = INT(Y) 0600 ZONE1 = SECT1 0601 ZONE2 = SECT2 0602 2080 INSERT = 1 C HERE WE ARE LET'S PARK THE ENTERPRISE 0603 ARRAY(ZONE1,ZONE2,3) = INSERT 0604 ENERGY = ENERGY-MOVE+5 0605 TIME = TIME+.1 0606 IF (WARP.LT.1) GOTO 2150 0607 TIME = TIME+.9 0610 2150 IF(TIME.LE.TIME0+DATLFT)GOTO 1260 0611 3969 WRITE (4,3970) TIME 0612 3970 FORMAT(1X,'IT IS STARDATE ',F7.1) 0613 GOTO 4020 0614 2170 X = QUAD1*8+SECT1+X1*MOVE 0615 Y = QUAD2*8+SECT2+X2*MOVE 0616 QUAD1 = INT(X/8) 0617 QUAD2 = INT(Y/8) 0620 SECT1 = INT(X-QUAD1*8) 0621 SECT2 = INT(Y-QUAD2*8) C IN THIS CRAZY MATH IT IS POSSIBLE TO ARRIVE C AT SECTOR X,0 OR 0,X IN WHICH CASE WE C MUST FALL BACKWARDS INTO ANOTHER QUADRANT FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE TEN C AT SECTOR X,8 OR 8,X 0622 IF (SECT1.NE.0) GOTO 2260 0623 QUAD1 = QUAD1-1 0624 SECT1 = 8 0625 2260 IF (SECT2.NE.0) GOTO 2290 0626 QUAD2 = QUAD2-1 0627 SECT2 = 8 0630 2290 TIME = TIME+1. 0631 ENERGY = ENERGY-MOVE+5 0632 IF (TIME.GT.TIME0+DATLFT) GOTO 3969 0633 GOTO 810 C ************************************************** C THIS IS THE PHOTON TORPEDOE CONTROL C ************************************************** 0634 2800 IF (DAMAGE(5).GE.0) GOTO 2830 0635 WRITE (4,2810) 0636 2810 FORMAT (1X,'PHOTON TUBES ARE NOT OPERATIONL') 0637 GOTO HELL 0640 2830 IF (TORPED.GT.0) GOTO 2860 0641 WRITE (4,2840) 0642 2840 FORMAT (1X,'ALL PHOTON TORPEDOES EXPENDED') 0643 GOTO HELL 0644 2860 WRITE (4,2862) 0645 2862 FORMAT (1X,'TORPEDO COURSE (1-9):?',$) 0646 READ (4,1420) COURSE 0647 IF (COURSE.EQ.0) GOTO HELL 0650 IF (COURSE.LT.1.OR.COURSE.GE.9) GOTO 2860 0651 X1=CHART(INT(COURSE),1)+(CHART(INT(COURSE)+1,1)-CHART(INT 1 (COURSE),1))*(COURSE-INT(COURSE)) 0652 X2=CHART(INT(COURSE),2)+(CHART(INT(COURSE)+1,2)-CHART(INT 1 (COURSE),2))*(COURSE-INT(COURSE)) 0653 X = SECT1 0654 Y = SECT2 0655 TORPED = TORPED-1 0656 WRITE (4,2950) 0657 2950 FORMAT (1X,'TORPEDO TRACK:') 0660 2960 X = X+X1 0661 Y = Y+X2 0662 IF(X.LT.1.OR.X.GE.9.OR.Y.LT.1.OR.Y.GE.9) GOTO 3420 0663 WRITE (4,2990) X,Y 0664 2990 FORMAT (15X,G16.8,',',G16.8) 0665 IF (INT(X+.25).NE.INT(X+.75)) GOTO 2960 0666 IF (INT(Y+.25).NE.INT(Y+.75)) GOTO 2960 0667 ZONE1 = INT(X+.5) 0670 ZONE2 = INT(Y+.5) 0671 INSERT = 0 0672 CALL CHECK 0673 IF (OK.EQ.1) GOTO 2960 0674 INSERT = 2 0675 CALL CHECK 0676 IF (OK.EQ.0) GOTO 3220 0677 WRITE (4,3120) 0700 3120 FORMAT(1X,'*** KLINGON DESTROYED ***') C NEGATE 1 KLINGON 0701 KLING3 = KLING3-1 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE ELEVEN 0702 TKLING = TKLING-1 0703 IF (TKLING.LE.0) GOTO 4040 0704 DO 3190 I=1,3 0705 IF (ZONE1.NE.KLINST(I,1).OR.ZONE2.NE.KLINST(I,2))GOTO3190 0706 KLINST(I,3) = 0 0707 3190 CONTINUE 0710 GOTO 3360 0711 3220 INSERT = 4 0712 CALL CHECK 0713 IF (OK.EQ.0) GOTO 3290 0714 WRITE (4,3270) 0715 3270 FORMAT (1X,'YOU CAN''T DESTROY STARS, SILLY') 0716 GOTO 3420 0717 3290 INSERT = 3 0720 CALL CHECK 0721 IF (OK.EQ.0) GOTO 2960 0722 WRITE (4,3340) 0723 3340 FORMAT (1X,'*** STAR BASE DESTROYED ***......CONGRATULATIONS') C DECREMENT 1 STARBASE 0724 BASES3 = BASES3-1 0725 TBASES =TBASES-1 0726 3360 INSERT = 0 C PLACE - PLACE - PLACE - PLACE 0727 ARRAY(ZONE1,ZONE2,3) = INSERT C UPDATE GALAXY 0730 ARRAY(QUAD1,QUAD2,1) = KLING3*100+BASES3*10+STARS3 0731 IF (ARRAY(QUAD1,QUAD2,2).LT.1) GOTO 3410 0732 ARRAY(QUAD1,QUAD2,2) = ARRAY(QUAD1,QUAD2,1) 0733 3410 GOTO 3430 0734 3420 WRITE (4,3422) 0735 3422 FORMAT (1X,'TORPEDO MISSED') 0736 3430 CALL SHOOT 0737 IF (SHIELD.LT.0.OR.ENERGY.LT.0) GOTO 4000 0740 GOTO HELL C ************************************************** C THIS IS THE FIRE PHASER COMMAND C ************************************************** 0741 2530 IF (KLING3.GT.0) GOTO 2540 0742 WRITE (4,3670) 0743 3670 FORMAT(1X,'SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS 1 QUADRANT') 0744 GOTO HELL 0745 2540 IF (DAMAGE(4).GE.0) GOTO 2570 0746 WRITE (4,2550) 0747 2550 FORMAT(1X,'PHASERS NOT OPERATIONAL') 0750 GOTO HELL 0751 2570 IF(DAMAGE(8).GE.0) GOTO 2590 0752 WRITE (4,2580) 0753 2580 FORMAT (2X,'COMPUTER FAILURE HAMPERS ACCURACY') 0754 2590 WRITE (4,2592) ENERGY 0755 2592 FORMAT (1X,'PHASERS LOCKED ON TARGET. ENERGY AVAILABLE = ', 1 I4,/,1X,'NUMBER OF UNITS TO FIRE:?',$) 0756 READ (4,1420) X 0757 ITEMP = INT(X) 0760 IF (ITEMP.LE.0) GOTO HELL FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE TWELVE 0761 IF (ENERGY-ITEMP.LT.0) GOTO 2590 0762 ENERGY = ENERGY-ITEMP 0763 CALL SHOOT 0764 IF (SHIELD.LT.0) GOTO 4000 0765 IF (DAMAGE(8).GE.0) GOTO 2680 0766 X = X*RAN(IRA,JONES) 0767 2680 DO 2770 I=1,3 0770 IF(KLINST(I,3).LE.0) GOTO 2770 0771 TEMP=SQRT(FLOAT((KLINST(I,1)-SECT1)**2+(KLINST(I,2)-SECT2)**2)) 0772 HIT = INT((X/KLING3/TEMP)*(2*RAN(IRA,JONES))) 0773 KLINST(I,3) = KLINST(I,3)-HIT 0774 WRITE (4,2720) HIT,KLINST(I,1),KLINST(I,2),KLINST(I,3) 0775 2720 FORMAT(1X,I4,' UNIT HIT ON KLINGON AT SECTOR ',I2,',',I2, 1 5X,'(',I5,' LEFT)') 0776 IF (KLINST(I,3).GT.0) GOTO 2770 0777 WRITE (4,3690)KLINST(I,1),KLINST(I,2) 1000 3690 FORMAT(1X,'*** KLINGON AT SECTOR ',I2,',',I2,' DESTROYED ***') C NEGATE ONE KLINGON 1001 KLING3 = KLING3-1 1002 TKLING = TKLING-1 1003 ZONE1 = KLINST(I,1) 1004 ZONE2 = KLINST(I,2) 1005 INSERT = 0 C PLACE - PLACE - PLACE - PLACE 1006 ARRAY(ZONE1,ZONE2,3) = INSERT C UPDATE GALAXY 1007 ARRAY(QUAD1,QUAD2,1) = KLING3*100+BASES3*10+STARS3 1010 IF (ARRAY(QUAD1,QUAD2,2).LT.1) GOTO 2760 1011 ARRAY(QUAD1,QUAD2,2) = ARRAY(QUAD1,QUAD2,1) 1012 2760 IF (TKLING.LE.0) GOTO 4040 1013 2770 CONTINUE 1014 IF (ENERGY.LT.0) GOTO 4000 1015 GOTO HELL 1016 4040 WRITE (4,4042) 1017 4042 FORMAT(//,1X,'THE LAST KLINGON BATTLE CRUISER HAS BEEN 1 DESTROYED',/,1X,'THE FEDERATION HAS BEEN SAVED!!!!!',/) 1020 TIMDIF = TIME-TIME0 1021 EFF = ((KLING7/TIMDIF)*1000) 1022 WRITE (4,4080) EFF,TIMDIF 1023 4080 FORMAT(1X,'YOUR EFFICIENCY RATING = ',F16.2,/, 1 1X,'YOUR ACTUAL TIME OF MISSION = ',F16.1,' STARDATES',///, 2 1X,'DO YOU WANT TO TRY AGAIN?',$) 1024 4106 READ (4,40) ANSWER 1025 IF (ANSWER.EQ.YES) GOTO 5 1026 IF(ANSWER.EQ.NO) STOP 1027 WRITE (4,50) 1030 GOTO 4106 C ************************************************** C THIS IS THE LONG RANGE SENSOR SCAN CODE C ************************************************** 1031 2330 IF (DAMAGE(3).GE.0) GOTO 2370 1032 WRITE (4,2340) 1033 2340 FORMAT (1X,'LONG RANGE SENSORS ARE INOPERABLE') 1034 GOTO HELL 1035 2370 WRITE (4,2375) QUAD1,QUAD2 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE THIRTEEN 1036 2375 FORMAT(1X,'LONG RANGE SENSOR SCAN FOR QUADRANT ',I2,', ',I2) 1037 WRITE (4,2380) 1040 2380 FORMAT (1X,'-------------------') 1041 DO 2500 I=1,3 1042 DO 2470 J=1,3 1043 IX = I+QUAD1-2 1044 JX = J+QUAD2-2 1045 IF(IX.LT.1.OR.IX.GT.8.OR.JX.LT.1.OR.JX.GT.8) GOTO 2460 1046 LONG(JX-QUAD2+2) = ARRAY(IX,JX,1) 1047 IF (DAMAGE(8).LT.0) GOTO 2470 1050 ARRAY(IX,JX,2) = ARRAY(IX,JX,1) 1051 GOTO 2470 1052 2460 LONG(JX-QUAD2+2) = 0 1053 2470 CONTINUE 1054 WRITE (4,2472) LONG(1),LONG(2),LONG(3) 1055 2472 FORMAT (1X,':',I4,' :',I4,' :',I4,' :') 1056 WRITE (4,2380) 1057 2500 CONTINUE 1060 GOTO HELL C ************************************************** C THIS IS THE DAMAGE CONTROL REPORT CODE C ************************************************** 1061 3560 IF (DAMAGE(6).GE.0) GOTO 3580 1062 WRITE (4,3570) 1063 3570 FORMAT (1X,'DAMAGE CONTROL REPORT IS NOT AVAILABLE') 1064 GOTO HELL 1065 3580 WRITE (4,3590) DAMAGE(1),DAMAGE(2),DAMAGE(3),DAMAGE(4), 1 DAMAGE(5),DAMAGE(6),DAMAGE(7),DAMAGE(8) 1066 3590 FORMAT (/,1X,'DAMAGE CONTROL REPORT:',//, 1 1X,'DEVICE STATE OF REPAIR',/, 2 1X,'WARP DRIVE',T27,F16.2,/,1X,'S.R. SENSORS',T27,F16.2,/, 3 1X,'L.R. SENSORS',T27,F16.2,/,1X,'PHASER CONTROL',T27,F16.2,/, 4 1X,'PHOTON TUBES',T27,F16.2,/,1X,'DAMAGE CONTROL',T27,F16.2,/, 5 1X,'SHIELD CONTROL',T27,F16.2,/,1X,'COMPUTER',T27,F16.2,/) 1067 GOTO HELL C ************************************************** C THIS IS THE SHIELD CONTROL CODE C ************************************************** 1070 3460 IF (DAMAGE(7).GE.0) GOTO 3480 1071 WRITE (4,3470) 1072 3470 FORMAT (1X,'SHIELD CONTROL IS NON-OPERATIONAL') 1073 GOTO HELL 1074 3480 TEMP=ENERGY+SHIELD 1075 WRITE (4,3490) TEMP 1076 3490 FORMAT (1X,'ENERGY AVAILABLE = ',I5,/, 1 4X,'NUMBER OF UNITS TO SHIELDS:?',$) 1077 READ (4,1290) ITEMP 1100 IF (ITEMP.LT.0) GOTO HELL 1101 IF (ENERGY+SHIELD-ITEMP.LT.0) GOTO 3480 1102 ENERGY = ENERGY+SHIELD-ITEMP 1103 SHIELD = ITEMP 1104 GOTO HELL C ************************************************** C LIBRARY COMPUTER CODE C ************************************************** FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE FOURTEEN 1105 4630 IF (DAMAGE(8).GE.0) GOTO 4660 1106 WRITE (4,4640) 1107 4640 FORMAT (1X,'COMPUTER DISABLED') 1110 GOTO HELL 1111 4660 WRITE (4,4662) 1112 4662 FORMAT(1X,'COMPUTER ACTIVE AND AWAITING COMMAND:?',$) 1113 READ (4,1290) ITEMP 1114 IF (ITEMP.EQ.0) GOTO 4740 1115 IF (ITEMP.EQ.1) GOTO 4830 1116 IF (ITEMP.EQ.2) GOTO 4880 1117 WRITE (4,4690) 1120 4690 FORMAT (1X,'FUNCTIONS AVIALABLE FROM COMPUTER',/,4X, 1 '0 = CUMULATIVE GALACTIC RECORD',/,4X, 2 '1 = STATUS REPORT',/,4X,'2 = PHOTON TORPEDO DATA') 1121 GOTO 4660 C CUMULATIVE GALACTIC RECORD CODE BEGINS HERE 1122 4740 WRITE (4,4750) 1123 4750 FORMAT (1X,'COMPUTER RECORD OF GALAXY FOR ALL LONG RANGE 1 SENSOR SCANS',/,6X,'1 2 3 4 5 2 6 7 8') 1124 WRITE (4,4770) 1125 4770 FORMAT(4X,'----- ----- ----- ----- ----- ----- ----- -----') 1126 DO 4810 I=1,8 1127 WRITE (4,4795) I,ARRAY(I,1,2),ARRAY(I,2,2),ARRAY(I,3,2), 1 ARRAY(I,4,2),ARRAY(I,5,2),ARRAY(I,6,2),ARRAY(I,7,2),ARRAY(I,8,2) 1130 4795 FORMAT(1X,I2,T5,I3,T11,I3,T17,I3,T23,I3,T29,I3,T35,I3,T41,I3, 1 T47,I3) 1131 WRITE (4,4770) 1132 4810 CONTINUE 1133 GOTO HELL C STATUS REPORT CODE BEGINS HERE 1134 4830 TEMP=TIME0+DATLFT-TIME 1135 WRITE (4,4840) TKLING,TEMP,TBASES 1136 4840 FORMAT (4X,'STATUS REPORT',/,1X, 1 'NUMBER OF KLINGONS LEFT = ',I3,/,1X, 2 'NUMBER OF STARDATES LEFT = ',F7.1,/,1X, 3 'NUMBER OF STARBASES LEFT = ',I3) C TRANSFER TO DAMAGE CONTROL REPORT CODE 1137 GOTO 3560 C LIBRARY PHOTON TORPEDO DATA CODE BEGINS HERE 1140 4880 PH8 = 0 1141 DO 5260 I=1,3 1142 IF (KLINST(I,3).LE.0) GOTO 5260 1143 PC1 = SECT1 1144 PA = SECT2 1145 PW1 = KLINST(I,1) 1146 PX = KLINST(I,2) 1147 GOTO 5010 1150 4970 WRITE (4,4972)QUAD1,QUAD2,SECT1,SECT2 1151 4972 FORMAT(1X,'YOU ARE AT QUADRANT (',I3,' ,',I3,' ) SECTOR (', 1 I3,' ,',I3,' )',/,1X,'SHIP AND TARGET COORDINATES ARE:?',$) 1152 READ (4,4990)PC1,PA,PW1,PX 1153 4990 FORMAT(4F16.0) 1154 5010 PX = PX-PA 1155 PA = PC1-PW1 FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE FIFTEEN 1156 IF (PX.LT.0) GOTO 5130 1157 IF (PA.LT.0) GOTO 5190 1160 IF (PX.GT.0) GOTO 5070 1161 IF (PA.EQ.0) GOTO 5150 1162 5070 PC1 = 1. 1163 5080 IF (ABS(PA).LE.ABS(PX)) GOTO 5110 1164 TEMP = PC1+(((ABS(PA)-ABS(PX))+ABS(PA))/ABS(PA)) 1165 WRITE (4,5090)TEMP 1166 5090 FORMAT(1X,'DIRECTION = ',G16.6) 1167 GOTO 5240 1170 5110 TEMP=PC1+(ABS(PA)/ABS(PX)) 1171 WRITE (4,5090) TEMP 1172 GOTO 5240 1173 5130 IF (PA.GT.0) GOTO 5170 1174 IF (PX.GT.0) GOTO 5190 1175 5150 PC1 = 5. 1176 GOTO 5080 1177 5170 PC1 = 3. 1200 GOTO 5200 1201 5190 PC1 = 7. 1202 5200 IF (ABS(PA).GE.ABS(PX)) GOTO 5230 1203 TEMP=PC1+(((ABS(PX)-ABS(PA))+ABS(PX))/ABS(PX)) 1204 WRITE (4,5090) TEMP 1205 GOTO 5240 1206 5230 TEMP=PC1+(ABS(PX)/ABS(PA)) 1207 WRITE (4,5090) TEMP 1210 5240 TEMP=SQRT(PX**2+PA**2) 1211 WRITE (4,5242) TEMP 1212 5242 FORMAT(1X,'DISTANCE = ',G16.6) 1213 IF (PH8.EQ.1) GOTO HELL 1214 5260 CONTINUE 1215 PH8 = 0. 1216 5280 WRITE (4,5282) 1217 5282 FORMAT(1X,'DO YOU WANT TO USE THE CALCULATOR?',$) 1220 READ (4,40) ANSWER 1221 IF (ANSWER.EQ.YES) GOTO 4970 1222 IF (ANSWER.EQ.NO) GOTO HELL 1223 WRITE (4,50) 1224 GOTO 5280 C *********************************************** C THIS IS COMMAND 69 - CHEAT/TEST/DEBUG C *********************************************** 1225 10000 WRITE (4,10010) ARRAY 1226 10010 FORMAT(8I5) 1227 GOTO HELL 1230 20000 WRITE (4,20010) 1231 20010 FORMAT (6X,'INSTRUCTIONS',//, 1 1X,'THE GALAXY IS DIVIDED INTO AN 8,8 QUADRANT GRID',/, 2 1X,'WHICH IS IN TURN DIVIDED INTO AN 8,8 SECTOR GRID.',//, 3 1X,'THE CAST OF CHARACTERS IS AS FOLLOWS:',/, 4 1X,'<*> = ENTERPRISE',/,1X,'+++ = KLINGON',/,1X,'>!< = 5 STARBASE',/) 1232 WRITE (4,20011) 1233 20011 FORMAT(2X,'* = STAR',/,1X,'COMMAND 0 = WARP ENGINE CONTROL:',/, 1 3X,'COURSE IS IN A CIRCULAR NUMERICAL 4 3 2',/, FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE SIXTEEN 2 3X,'VECTOR ARRANGEMENT AS SHOWN. \ ^ /',/, 3 3X,'INTEGER AND REAL VALUES MAY BE \^/',/, 4 3X,'USED. THEREFORE COURSE 1.5 IS 5 ----- 1') 1234 WRITE (4,20020) 1235 20020 FORMAT(3X,'HALF WAY BETWEEN 1 AND 2. /!\',/, 1 43X,'/ ! \',/, 2 3X,'A VECTOR OF 9 IS UNDEFINED, BUT 6 7 8',/, 3 3X,'VALUES MAY APPROACH 9.',17X,'COURSE',//, 4 3X,'ONE WARP FACTOR IS THE SIZE OF',/, 5 3X,'ONE QUADRANT. THEREFORE TO GET',/) 1236 WRITE (4,20021) 1237 20021 FORMAT(3X,'FROM QUADRANT 6,5 TO 5,5 YOU WOULD',/, 1 3X,'USE COURSE 3. WARP FACTOR 1.',//, 2 1X,'COMMAND 1 = SHORT RANGE SENSOR SCAN',/, 3 3X,'PRINTS THE QUADRANT YOU ARE CURRENTLY IN. INCLUDING') 1240 WRITE (4,20030) 1241 20030 FORMAT(3X,'STARS, KLINGONS, STARBASES, AND THE ENTERPRISE. 1 ALONG',/, 2 3X,'WITH OTHER PERTINATE INFORMATION.',//, 3 1X,'COMMAND 2 = LONG RANGE SENSOR SCAN',/, 4 3X,'SHOWS CONDITIONS IN SPACE FOR ONE QUADRANT ON EACH SIDE',/, 5 3X,'OF THE ENTERPRISE IN THE MIDDLE OF THE SCAN. THE SCAN') 1242 WRITE (4,20031) 1243 20031 FORMAT(3X,'IS CODED IN THE FORM "KBS", WHERE K IS THE NUMBER',/, 1 3X,'OF KLINGONS, B IS THE NUMBER OF STARBASES, AND S IS',/, 2 3X,'THE NUMBER OF STARS.',//, 3 1X,'COMMAND 3 = PHASER CONTROL',/, 4 3X,'ALLOWS YOU TO DESTROY THE KLINGONS BY HITTING THEM WITH') 1244 WRITE (4,20040) 1245 20040 FORMAT(3X,'SUITABLY LARGE NUMBERS OF ENERGY UNITS TO DEPLETE 1 THEIR',/, 2 3X,'SHIELD POWER. KEEP IN MIND THAT WHEN YOU SHOOT AT THEM.',/, 3 3X,'THEY GONNA SHOOT AT YOU, TOO!',//, 4 1X,'COMMAND 4 = PHOTON TORPEDO CONTROL',/, 5 3X,'COURSE IS THE SAME AS USED IN WARP ENGINE CONTROL') 1246 WRITE (4,20041) 1247 20041 FORMAT(3X,'IF YOU HIT THE KLINGON, HE IS DESTROYED AND CANNOT', 1 /,3X,'FIRE BACK AT YOU. IF YOU MISS, YOU ARE SUBJECT TO HIS', 2 /,3X,'PHASER FIRE.',//, 3 3X,'NOTE: THE LIBRARY COMPUTER (COMMAND 7) HAS AN OPTION',/, 4 3X,'TO COMPUTE TORPEDO TRAJECTORY FOR YOU (OPTION 2).',/) 1250 WRITE (4,20050) 1251 20050 FORMAT(1X,'COMMAND 5 = SHIELD CONTROL',/, 1 3X,'DEFINES NUMBER OF ENERGY UNITS TO BE ASSIGNED TO SHIELDS.', 2 /,3X,'ENERGY IS TAKEN FROM TOTAL SHIP''S ENERGY.',/, 3 3X,'NOTE: TOTAL ENERGY INCLUDES SHIELD ENERGY.',//, 4 1X,'COMMAND 6 = DAMAGE CONTROL REPORT',/, 5 3X,'GIVES STATE OF REPAIRS OF ALL DEVICES. A STATE OF REPAIR') 1252 WRITE (4,20051) 1253 20051 FORMAT(/,3X,'LESS THAN ZERO SHOWS THAT THE DEVICE IS ',/, 1 3X,'TEMPORALLY DAMAGED.',//, 2 1X,'COMMAND 7 = LIBRARY COMPUTER',/, 3 3X,'THE LIBRARY COMPUTER CONTAINS THREE OPTIONS:') 1254 WRITE (4,20060) 1255 20060 FORMAT(5X,'OPTION 0 = CUMULATIVE GALACTIC RECORD',/, FORTRAN IV 5AAAA (A6) 9-APR-92 PAGE SEVENTEEN 1 7X,'WHICH SHOWS COMPUTER MEMORY OF THE RESULTS',/, 2 7X,'OF ALL PREVIOUS LONG RANGE SENSOR SCANS.',/, 3 5X,'OPTION 1 = STATUS REPORT',/, 4 7X,'WHISH SHOWS NUMBER OF KLINGONS, STARBASES,',/, 5 7X,'AND STARDATES LEFT.',/) 1256 WRITE (4,20061) 1257 20061 FORMAT(5X,'OPTION 2 = PHOTON TORPEDO DATA',/, 1 7X,'GIVES TRAJECTORY AND DISTANCE BETWEEN THE',/, 2 7X,'ENTERPRISE AND ALL KLINGONS IN YOUR QUADRANT',/, 3 7X,'IF YOU WISH TO USE THE COMPUTER''S CALCULATOR',/, 4 7X,'TO AID NAVIGATION OR DOCKING THEN ENTER',/, 5 7X,'COORDINATES (QUADRANT OR SECTOR)') 1260 WRITE (4,20062) 1261 20062 FORMAT(7X,'OF SHIP AND TARGET - IN SOURCE,DESTINATION',/, 1 7X,'FORMAT - EG...S,S,T,T',/) 1262 WRITE (4,20070) 1263 20070 FORMAT (1X,'COMMAND 8 = BEGIN NEW CONTEST',/, 1 3X,'STARTS PROGRAM OVER AGAIN WITH ALL NEW DATA.',/, 2 3X,'USED TO CREATE MORE CHALLENGING SETUP - IE: MORE',/, 3 3X,'KLINGONS AND FEWER STARBASES!',///) 1264 GOTO 100 1265 END