00030         IMPLICIT INTEGER (A-Z)
00040         REAL X, C1, W1, RAN
00060         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
00070      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
00080      2          QSTR(5),        QOUT(8),
00090      3          Q1,  Q2,  S1,  S2,  R1,  R2,
00100      4          K9,  K3,  E ,  S ,  P ,  T,
00110      5          NR
00130         DATA  C/0, -1, -1, -1, 0, 1, 1, 1, 0,
00140      1          1,  1,  0, -1,-1,-1, 0, 1, 1/
00150         DATA  ZSTR/10HWARP ENGNS,  10HLR SENSORS,
00160      1             10HPHASER CTL,  10HPHOTON TBS,
00170      2             10HSHIELD CTL,  10HCOMPUTER  /
00180         DATA  QSTR/3H . ,3H E ,3H K ,3H * ,3H B /
00190         DATA  D/6*0/
00220         FNA(IR)= INT(IR * RAN(NR) + 1)
00230         FND(DK)= SQRT(FLOAT((K(I,1)-S1)**2 + (K(I,2)-S2)**2))
00270         TYPE 9050
00280 9050    FORMAT('0ENTER A POSITIVE INTEGER:  ',$)
00290         ACCEPT 8000, NR
00300         CALL SETRAN (NR)
00330         T0= (FNA(20) + 20) * 100
00340         T = T0
00350         E = 4000
00360         P = 15
00370         S = 3000
00380         Q1= FNA(8)
00390         Q2= FNA(8)
00400         S1= FNA(8)
00410         S2= FNA(8)
00450 200     B9= 0
00460         K9= 0
00470         DO 330 I= 1,8
00480          DO 320 J= 1,8
00490           K3= 0
00500           B3= 0
00510           IF(RAN(1).LT.0.8) GO TO 270
00520           K3= FNA(3)
00530           K9= K9 + K3
00540 270       IF(RAN(1).LT.0.96) GO TO 300
00550           B3= 1
00560           B9= B9 + 1
00570 300       S3= FNA(5)
00580           G(I,J)= K3*100 + B3*10 + S3
00590 320      CONTINUE
00600 330     CONTINUE
00610         IF(K9.EQ.0.OR.B9.EQ.0) GO TO 200
00650         GO TO 3570
00670 360     IF(Q1.GE.1) GO TO 380
00680         S1= 1
00690         Q1= 1
00700 380     IF(Q1.LE.8) GO TO 400
00710         S1= 8
00720         Q1= 8
00730 400     IF(Q2.GE.1) GO TO 420
00740         S2= 1
00750         Q2= 1
00760 420     IF(Q2.LE.8) GO TO 440
00770         S2= 8
00780         Q2= 8
00800 440     X= FLOAT(G(Q1,Q2))/100.0
00810         K3= INT(X)
00820         B3= INT((X-K3)*10)
00830         S3= G(Q1,Q2) - (B3*10) - (K3*100)
00840         IF(K3.EQ.0) GO TO 520
00850         TYPE 9000
00860 9000    FORMAT('0COMBAT AREA',5X,'CONDITION RED')
00870         IF(S.GT.K3*100) GO TO 520
00880         TYPE 9001
00890 9001    FORMAT('  SHIELDS DANGEROUSLY LOW')
00930 520     DO 525 I= 1,3
00940         DO 525 J= 1,3
00950          K(I,J)= 0
00960 525     CONTINUE
00970         DO 530 I= 1,8
00980         DO 530 J= 1,8
00990          Q(I,J)= 0
01000 530     CONTINUE
01010         Q(S1,S2)= 1
01020         IF(K3.EQ.0) GO TO 620
01030         DO 610 I= 1,K3
01040          CALL QUAD
01050          Q(R1,R2)= 2
01060          K(I,1)= R1
01070          K(I,2)= R2
01080          K(I,3)= 200
01090 610     CONTINUE
01100 620     IF(B3.EQ.0) GO TO 650
01110         CALL QUAD
01120         Q(R1,R2)= 4
01130 650     DO 680 I= 1,S3
01140          CALL QUAD
01150          Q(R1,R2)= 3
01160 680     CONTINUE
01200 690     CALL SHORT
01220 700     TYPE 9002
01230 9002    FORMAT(1H ,'COMMAND:  ',$)
01240         ACCEPT 8000,A
01250 8000    FORMAT(I)
01260         IF(A.LT.200) GO TO 710
01270         CALL CHEAT
01280         GO TO 700
01290 710     R1= A + 1
01300         IF(R1.LT.1.OR.R1.GT.7) GO TO 790
01310         IF(D(R1).GE.0) GO TO 780
01320         DO 720 I= 1,6
01330          IF(D(I).GE.0) GO TO 720
01340          TYPE 9003, (ZSTR(J,I), J=1,2)
01350 9003    FORMAT(1H ,2A5,' NOT OPERATIONAL')
01360 720     CONTINUE
01370         GO TO 700
01390 780     GO TO (890, 1520, 1640, 1800, 2200, 3010, 3550), R1
01410 790     TYPE 9004
01420 9004    FORMAT(1H0,'0 = SET COURSE',T22,'4  3  2'/
01430      1   ' 1 = LONG RANGE SCAN',T23,'^   /'/
01440      2   ' 2 = PHASER CTRL',T24,'\ /'/
01450      3   ' 3 = TORPEDO CTRL',T21,'5---*---1'/
01460      4   ' 4 = SHIELDS',T24,'/ \'/
01470      5   ' 5 = LIBRARY COMPUTER', T23,'/   \'/
01480      6   ' 6 = RESIGNATION',T22,'6  7  8'/1H )
01490         GO TO 700
01530 890     TYPE 9005
01540 9005    FORMAT(1H ,'COURSE (1-8.9999):  ',$)
01550         ACCEPT 8001, C1
01560 8001    FORMAT(F)
01570         IF(C1.LT.1.0.OR.C1.GT.8.9999) GO TO 700
01580 920     TYPE 9006
01590 9006    FORMAT(1H ,'WARP FACTOR (0-8):  ',$)
01600         ACCEPT 8001, W1
01610         IF(W1.LE.0.0.OR.W1.GT.8.0) GO TO 700
01620         IF(D(1).GE.0.OR.W1.LE.0.5) GO TO 980
01630         TYPE 9007
01640 9007    FORMAT(1H ,'ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP 0.5')
01650         GO TO 920
01670 980     IF(E-(W1*8).GT.0) GO TO 1030
01680         IF(S.LT.1) GO TO 2470
01690         TYPE 9008, E, S
01700 9008    FORMAT(1H ,'YOU HAVE ONLY',I5,' UNITS.  SUGGEST YOU'
01710      1   'CROSS-CIRCUIT FROM SHIELDS WHICH HAVE',I5,' UNITS')
01720         GO TO 700
01740 1030    DO 1060 I= 1,6
01750          IF(D(I).GE.0) GO TO 1060
01760          D(I)= D(I) + 1
01770 1060    CONTINUE
01790         IF(FNA(10).NE.5.OR.W1.LT.2.0) GO TO 1120
01800         R1= FNA(6)
01810         D(R1)= D(R1) - FNA(5)
01820         TYPE 9009 , (ZSTR(J,R1), J=1,2)
01830 9009    FORMAT(1HO,'DAMAGE CTRL REPORTS ',2A5,' DAMAGED')
01850 1120    N= INT(W1*8.0)
01860         Q(S1,S2)= 0
01870         XX= S1
01880         YY= S2
01890         C2= INT(C1)
01900         X1= C(C2,1) + (C(C2+1,1) - C(C2,1)) * (C1-C2)
01910         X2= C(C2,2) + (C(C2+1,2) - C(C2,2)) * (C1-C2)
01920         DO 1270 I= 1,N
01930          S1= S1 + X1
01940          S2= S2 + X2
01950          IF(S1.LT.1.OR.S1.GT.8.OR.S2.LT.1.OR.S2.GT.8) GO TO 1360
01960          IF(Q(S1,S2).EQ.0) GO TO 1270
01970          S1= S1 - X1
01980          S2= S2 - X2
01990          GO TO 1280
02000 1270    CONTINUE
02010 1280    Q(S1,S2)= 1
02020         E= E - N
02040         IF(W1.LT.1.0) GO TO 690
02060         T= T + 1
02070         IF(T.GT.T0+30) GO TO 2500
02080         GO TO 690
02100 1360    XX= Q1*8 + XX + X1*N
02110         YY= Q2*8 + YY + X2*N
02120         Q1= XX/8
02130         Q2= YY/8
02140         S1= INT(XX - Q1*8 + 0.5)
02150         S2= INT(YY - Q2*8 + 0.5)
02160         IF(S1.GT.0) GO TO 1450
02170         Q1= Q1 - 1
02180         S1= 8
02190 1450    IF(S2.GT.0) GO TO 1480
02200         Q2= Q2 - 1
02210         S2= 8
02220 1480    T= T + 1
02230         E= E - (N + 5)
02240         IF(T.GT.T0+30) GO TO 2500
02260         GO TO 360
02300 1520    TYPE 9010
02310 9010    FORMAT(1H0,17(1H-))
02320         DO 1610 I= Q1-1, Q1+1
02330          DO 1540 NN= 1,3
02340           NQ(NN)= 0
02350 1540     CONTINUE
02360          DO 1580 J= Q2-1, Q2+1
02370           IF(I.LT.1.OR.I.GT.8.OR.J.LT.1.OR.J.GT.8) GO TO 1580
02380           NQ(J-Q2+2)= G(I,J)
02390 1580     CONTINUE
02400         TYPE 9011, (NQ(NN), NN=1,3)
02410 9011    FORMAT(3H : , 3(I3,3H : ))
02420         TYPE 9010
02430 1610    CONTINUE
02440         GO TO 700
02480 1640    IF(K3.GT.0) GO TO 1650
02490 2350    TYPE 9012
02500 9012    FORMAT(1H ,'SHORT RANGE SENSORS REPORT NO KLINGONS'/
02510      1   'IN THIS QUADRANT')
02520         GO TO 700
02530 1650    TYPE 9013, E
02540 9013    FORMAT(1H ,'ENERGY AVAILABLE = ',I6/
02550      1   1H 'NUMBER OF UNITS TO FIRE:  ',$)
02560         ACCEPT 8000, XP
02570         IF(XP.LT.1) GO TO 700
02580         IF(E-XP.LT.0) GO TO 1650
02590         E= E-XP
02600         DO 1780 I= 1,3
02610          IF(K(I,3).EQ.0) GO TO 1780
02620          H= XP/K3/FND(0)
02630          K(I,3)= K(I,3) - H
02640          TYPE 9014, H
02650 9014    FORMAT(I6,' UNIT HIT ON KLINGON')
02660          IF(K(I,3).GT.0) GO TO 1780
02670          CALL KDEAD(I)
02680 1780    CONTINUE
02700         CALL KFIRE
02710         GO TO 700
02750 1800    IF(P.GT.0) GO TO 1830
02760         TYPE 9015
02770 9015    FORMAT(1H ,'ALL PHOTON TORPEDOES EXPENDED')
02780         GO TO 700
02790 1830    TYPE 9016
02800 9016    FORMAT(1H ,'TORPEDO COURSE (1-8.9999):  ',$)
02810         ACCEPT 8001, C1
02820         IF(C1.LT.1.0.OR.C1.GT.8.9999) GO TO 700
02830         C2= INT(C1)
02840         X1= C(C2,1) + (C(C2+1,1) - C(C2,1)) * (C1-C2)
02850         X2= C(C2,2) + (C(C2+1,2) - C(C2,2)) * (C1-C2)
02860         XX= S1
02870         YY= S2
02880         P= P - 1
02890 1930    XX= XX + X1
02900         YY= YY + X2
02910         IF(XX.LT.1.OR.XX.GT.8.OR.YY.LT.1.OR.YY.GT.8) GO TO 2180
02920         IF(Q(XX,YY).EQ.0.AND.Q(XX+1,YY+1).EQ.0) GO TO 1930
02930         DO 2000 I= 1,3
02940          IF(XX.EQ.K(I,1).AND.YY.EQ.K(I,2)) GO TO 2020
02950          IF(XX+1.EQ.K(I,1).AND.YY+1.EQ.K(I,2)) GO TO 2020
02960          IF(XX-1.EQ.K(I,1).AND.YY-1.EQ.K(I,2)) GO TO 2020
02970 2000    CONTINUE
02980         GO TO 2120
03000 2020    CALL KDEAD(I)
03020         CALL KFIRE
03030         GO TO 700
03050 2120    IF(Q(XX,YY).NE.3) GO TO 2150
03060         TYPE 9017
03070 9017    FORMAT(1H ,'YOU CAN''T DESTROY STARS, SILLY')
03080         GO TO 2180
03090 2150    IF(Q(XX,YY).NE.4) GO TO 2180
03100         TYPE 9018
03110 9018    FORMAT(1H ,'***STARBASE DESTROYED***'/
03120      1   ' YOU ARE HEREBY RELIEVED OF DUTY.  GOOD-BYE***')
03130         STOP
03150 2180    TYPE 9019
03160 9019    FORMAT(1H ,'TORPEDO MISSED')
03170         CALL KFIRE
03180         GO TO 700
03220 2200    TYPE 9020, E, S
03230 9020    FORMAT(1H0,'ENERGY AVAILABLE =  ',I6/
03240      1   ' AND IN SHIELDS =  ',I6/
03250      2   ' WHICH WAY TO TRANSFER--'/
03260      3   ' 1. ENERGY TO SHIELDS'/
03270      4   ' 2. SHIELDS TO ENERGY')
03280         ACCEPT 8000, ES
03290         IF(ES.LT.1.OR.ES.GT.2) GO TO 700
03300 2210    TYPE 9021
03310 9021    FORMAT(1H ,'NUMBER OF UNITS TO TRANSFER:  ',$)
03320         ACCEPT 8000, EX
03330         IF(EX.LT.0) GO TO 700
03340         IF(E+S-EX.LT.0) GO TO 2210
03350         GO TO (2220, 2240), ES
03370 2220    E= E - EX
03380         S= S + EX
03390         GO TO 700
03410 2240    E= E + EX
03420         S= S - EX
03430         GO TO 700
03470 3010    TYPE 9022
03480 9022    FORMAT(1H0,'COMPUTER ACTIVE AND AWAITING COMMAND')
03490         ACCEPT 8000, A
03500         IF(A.GE.0.AND.A.LT.3) GO TO 3030
03510         TYPE 9023
03520 9023    FORMAT(1H ,'FUNCTIONS AVAILABLE FROM COMPUTER'/
03530      1   1H ,'   0 = DAMAGE REPORT'/
03540      2   1H ,'   1 = PHOTON TORPEDO DATA'/
03550      3   1H ,'   2 = SHORT RANGE SCAN')
03560         GO TO 3010
03580 3030    GO TO (2280, 3100, 3310), A+1
03620 2280    TYPE 9024
03630 9024    FORMAT(1H0,'DEVICE',6X,'STATE OF REPAIR')
03640         DO 2300 I= 1,6
03650          TYPE 9025, (ZSTR(J,I), J=1,2), D(I)
03660 9025    FORMAT(1H ,2A5,8X,I3)
03670 2300    CONTINUE
03680         GO TO 700
03720 3100    DO 3200 I= 1,3
03730          IF(K(I,3).LE.0) GO TO 3200
03740          XX= K(I,2) - S2
03750          YY= S1- K(I,1)
03760          IF(XX.EQ.0) GO TO 3240
03770          A= INT(((57.3*ATAN(FLOAT(YY/XX)))/45 + 1) * 100)/100
03780          IF(XX.GT.0.AND.YY.LT.0) GO TO 3290
03790          IF(XX.LT.0) GO TO 3220
03800 3190    TYPE 9026, A
03810 9026    FORMAT(1H ,'DIRECTION = ',I4)
03820          GO TO 3200
03840 3220     A= A + 4
03850          GO TO 3190
03860 3240     IF(YY.LT.0) GO TO 3270
03870          A = 3
03880          GO TO 3190
03890 3270     A = 7
03900          GO TO 3190
03910 3290     A = A + 8
03920          GO TO 3190
03940 3200    CONTINUE
03950         GO TO 700
03990 3310    CALL SHORT
04000         GO TO 700
04040 3550    TYPE 9027
04050 9027    FORMAT(1H0,'YOUR RESIGNATION HAS BEEN ACCEPTED')
04060         STOP
04070 2500    TYPE 9028, T
04080 9028    FORMAT(1H0,'IT IS STARDATE = ',I5)
04090         STOP
04100 2470    TYPE 9029
04110 9029    FORMAT(1HO,'THE ENTERPRISE IS DEAD IN SPACE.'
04120      1   ' IT MUST BE EVACUATED.'/' THE FEDERATION WILL BE CONQUERED**')
04130         STOP
04170 3570    TYPE 9030
04180 9030    FORMAT(1H0,'DO YOU NEED INSTRUCTIONS\  Y OR N  ',$)
04190         ACCEPT 8002, A
04200 8002    FORMAT(A1)
04210         IF(A.NE.'Y') GO TO 440
04220         TYPE 9031
04230 9031    FORMAT(1H ,'THIS PART IS NOT WRITTEN YET')
04240         GO TO 440
04250         END
04260         SUBROUTINE QUAD
04280         IMPLICIT INTEGER (A-Z)
04290         REAL X, C1, W1, RAN
04310         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
04320      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
04330      2          QSTR(5),        QOUT(8),
04340      3          Q1,  Q2,  S1,  S2,  R1,  R2,
04350      4          K9,  K3,  E ,  S ,  P ,  T,
04360      5          NR
04390         FNA(IR)= INT(IR * RAN(NR) + 1)
04410 3510    R1= FNA(8)
04420         R2= FNA(8)
04430         IF(Q(R1,R2).NE.0) GO TO 3510
04440         RETURN
04450         END
04460         SUBROUTINE SHORT
04490         IMPLICIT INTEGER (A-Z)
04500         REAL X, C1, W1, RAN
04520         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
04530      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
04540      2          QSTR(5),        QOUT(8),
04550      3          Q1,  Q2,  S1,  S2,  R1,  R2,
04560      4          K9,  K3,  E ,  S ,  P ,  T,
04570      5          NR
04590         DO 2650 I= S1-1, S1+1
04600          DO 2640 J= S2-1, S2+1
04610           IF(I.LT.1.OR.I.GT.8.OR.J.LT.1.OR.J.GT.8) GO TO 2640
04620           IF(Q(I,J).EQ.4) GO TO 2670
04630 2640     CONTINUE
04640 2650    CONTINUE
04650         GO TO 2730
04670 2670    CSTR(1)= 'DOCKE'
04680         CSTR(2)= 'D    '
04690         E= 4000
04700         P= 15
04710         DO 2700 I= 1,6
04720          D(I)= 0
04730 2700    CONTINUE
04740         S= 3000
04750         GO TO 2810
04770 2730    TYPE 9000
04780 9000    FORMAT(1H )
04790         IF(K3.GT.0) GO TO 2780
04800         IF(E.LT.300) GO TO 2800
04810         CSTR(1)= 'GREEN'
04820         CSTR(2)= ' '
04830         GO TO 2810
04840 2780    CSTR(1)= '*RED*'
04850         CSTR(2)= ' '
04860         GO TO 2810
04870 2800    CSTR(1)= 'YELLO'
04880         CSTR(2)= 'W    '
04900 2810    TYPE 9001
04910 9001    FORMAT(1H ,24(1H-))
04920         Z= 1
04930         CALL QSET (Z)
04940         TYPE 9002, (QOUT(I), I=1,8), T
04950 9002    FORMAT(8A3,5X,8HSTARDATE,5X,I4)
04960         Z=2
04970         CALL QSET (Z)
04980         TYPE 9003, (QOUT(I), I=1,8), CSTR
04990 9003    FORMAT(8A3,5X,9HCONDITION,4X,2A5)
05000         Z= 3
05010         CALL QSET (Z)
05020         TYPE 9004, (QOUT(I), I=1,8), Q1, Q2
05030 9004    FORMAT(8A3,5X,8HQUADRANT,5X,I1,1H-,I1)
05040         Z= 4
05050         CALL QSET (Z)
05060         TYPE 9005, (QOUT(I), I=1,8), S1, S2
05070 9005    FORMAT(8A3,5X,6HSECTOR,7X,I1,1H-,I1)
05080         Z= 5
05090         CALL QSET (Z)
05100         TYPE 9006, (QOUT(I), I=1,8), E
05110 9006    FORMAT(8A3,5X,6HENERGY,7X,I4)
05120         Z= 6
05130         CALL QSET (Z)
05140         TYPE 9007, (QOUT(I), I=1,8), P
05150 9007    FORMAT(8A3,5X,9HTORPEDOES,4X,I4)
05160         Z= 7
05170         CALL QSET (Z)
05180         TYPE 9008, (QOUT(I), I=1,8), S
05190 9008    FORMAT(8A3,5X,7HSHIELDS,6X,I4)
05200         Z= 8
05210         CALL QSET (Z)
05220         TYPE 9009, (QOUT(I), I=1,8), K9
05230 9009    FORMAT(8A3,5X,8HKLINGONS, 5X,I4)
05240         TYPE 9001
05250         RETURN
05260         END
05270         SUBROUTINE QSET (Z)
05290         IMPLICIT INTEGER (A-Z)
05300         REAL X, C1, W1, RAN
05320         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
05330      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
05340      2          QSTR(5),        QOUT(8),
05350      3          Q1,  Q2,  S1,  S2,  R1,  R2,
05360      4          K9,  K3,  E ,  S ,  P ,  T,
05370      5          NR
05390         DO 100 I= 1,8
05400          J= Q(Z,I) + 1
05410          QOUT(I)= QSTR(J)
05420 100     CONTINUE
05430         RETURN
05440         END
05450         SUBROUTINE CHEAT
05490         IMPLICIT INTEGER (A-Z)
05500         REAL X, C1, W1, RAN
05520         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
05530      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
05540      2          QSTR(5),        QOUT(8),
05550      3          Q1,  Q2,  S1,  S2,  R1,  R2,
05560      4          K9,  K3,  E ,  S ,  P ,  T,
05570      5          NR
05590         DO 100 I= 1,8
05600          TYPE 9000, (G(I,J),J=1,8)
05610 100     CONTINUE
05620 9000    FORMAT(1H ,40(1H-)/40 I5)
05630         TYPE 9001
05640 9001    FORMAT(1H ,40(1H-)/1H )
05650         RETURN
05660         END
05670         SUBROUTINE KDEAD (I)
05690         IMPLICIT INTEGER (A-Z)
05700         REAL X, C1, W1, RAN
05720         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
05730      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
05740      2          QSTR(5),        QOUT(8),
05750      3          Q1,  Q2,  S1,  S2,  R1,  R2,
05760      4          K9,  K3,  E ,  S ,  P ,  T,
05770      5          NR
05790         K(I,3)= 0
05800         I1= K(I,1)
05810         I2= K(I,2)
05820         Q(I1,I2)= 0
05830         TYPE 9000
05840 9000    FORMAT(1H0,'***KLINGON DESTROYED***')
05850         K3= K3 - 1
05860         K9= K9 - 1
05870         IF(K9.EQ.0) GO TO 2550
05880         G(Q1,Q2)= G(Q1,Q2) - 100
05890         RETURN
05910 2550    TYPE 9001
05920 9001    FORMAT(1H0,'THE LAST KLINGON BATTLE CRUSIER DESTROYED.'/
05930      1   ' THE FEDERATION HAS BEEN SAVED***  CONGRATULATIONS***')
05940         STOP
05950         END
05960         SUBROUTINE KFIRE
05980         IMPLICIT INTEGER (A-Z)
05990         REAL X, C1, W1, RAN
06010         COMMON  G(8,8), Q(8,8), K(3,3), C(9,2),
06020      1  ZSTR(2,6),      D(6),   NQ(3),  CSTR(2),
06030      2          QSTR(5),        QOUT(8),
06040      3          Q1,  Q2,  S1,  S2,  R1,  R2,
06050      4          K9,  K3,  E ,  S ,  P ,  T,
06060      5          NR
06080         FND(DK)= SQRT(FLOAT((K(I,1)-S1)**2 + (K(I,2)-S2)**2))
06100         IF(CSTR(1).EQ.'DOCKE') GO TO 2460
06110         IF(K3.EQ.0) GO TO 2460
06120         DO 2450 I= 1,3
06130          IF(K(I,3).EQ.0) GO TO 2450
06140          H= K(I,3)/FND(0) + 1
06150          S= S -H
06160          TYPE 9000, H
06170 9000    FORMAT(I5,' UNIT HIT ON ENTERPRISE')
06180          IF(S.LT.0) GO TO 2520
06190 2450    CONTINUE
06200 2460    RETURN
06220 2520    TYPE 9001
06230 9001    FORMAT(1H0,'***THE ENTERPRISE HAS BEEN DESTROYED***'/
06240      1   ' THE FEDERATION WILL BE CONQUERED***')
06250         STOP
06260         END