1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-01 17:26:38 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

290 lines
12 KiB
Plaintext

C FOCAL-10 CSM(V3)
1.01 E;F X=1,6;T !
1.02 T :31,"STAR TREK",!;F X=1,6;T !
1.03 T "FOR INSTRUCTIONS TYPE D11:STREK.HLP",!
1.04 A "INPUT A 3 DIGIT DECIMAL NUMBER FROM 1 TO 10 TO INITIALIZE:",X9;I (X9-888),1.04
1.05 S T0=FITR(FRAN(X9)*20+20)*100;S T=T0;S T9=30;S D0=0
1.06 S E=3000;S E0=E;S P=10;S P0=P;S S9=200;S S=0
1.07 L F0=31.99
1.08 S Q1=FITR(FRAN()*8+1);S Q2=FITR(FRAN()*8+1)
1.09 S S1=FITR(FRAN()*8+1);S S2=FITR(FRAN()*8+1)
1.10 S C(2,1)=-1;S C(3,1)=-1;S C(4,1)=-1;S C(4,2)=-1;S C(5,2)=-1;S C(6,2)=-1
1.11 S C(1,1)=0;S C(3,2)=0;S C(5,1)=0;S C(7,2)=0;S C(9,1)=0
1.12 S C(1,2)=1;S C(2,2)=1;S C(6,1)=1;S C(7,1)=1;S C(8,1)=1;S C(8,2)=1;S C(9,2)=1
1.13 S B9=0;S K9=0
1.14 F I=1,8;F J=1,8;D 2.0
1.15 G 3.01
2.01 S R1=FRAN();I (R1-.8)2.02,2.02;I (R1-.98),,2.05;I (R1-.95),,2.04;G 2.03
2.02 S K3=0;G 2.06
2.03 S K3=1;S K9=K9+1;G 2.06
2.04 S K3=2;S K9=K9+2;G 2.06
2.05 S K3=3;S K9=K9+3
2.06 S R1=FRAN();I (R1-.96)2.07,2.07;S B3=1;S B9=B9+1;G 2.08
2.07 S B3=0
2.08 S S3=FITR(FRAN()*8+1);S G(I,J)=K3*100+B3*10+S3;S Z(I,J)=0
3.01 I (B9)1.04,1.04
3.02 S K7=K9;T "YOU MUST DESTROY",%2,K9," KLINGONS IN",T9," STARDATES WITH",B9," STARBASES",!
3.03 S K3=0;S B3=0;S S3=0;I (Q1-1)3.09;I (Q1-8),,3.09;I (Q2-1)3.09;I (Q2-8),,3.09
3.04 S X=G(Q1,Q2)*.01;S K3=FITR(X);S B3=FITR((X-K3)*10);S K6=K3
3.05 S S3=G(Q1,Q2)-FITR(G(Q1,Q2)*.1)*10;I (K3),3.08;I (S-200),,3.08
3.06 T "COMBAT AREA CONDITION RED",!
3.07 T " SHIELDS DANGEROUSLY LOW",!
3.08 F I=1,3;F J=1,3;S K(I,J)=0
3.09 F I=1,3;S K(I,3)=0
3.10 F I=1,8;F J=1,8;S A(I,J)=0
3.11 S Z9=1;S Z1=S1;S Z2=S2;D 27.0;I (K3),3.13
3.12 F I=1,K3;D 26.0;S Z9=2;S Z1=R1;S Z2=R2;D 27.0;S K(I,1)=R1;S K(I,2)=R2;S K(I,3)=S9
3.13 I (B3),3.14;F I=1,B3;D 26.0;S Z9=3;S Z1=R1;S Z2=R2;D 27.0
3.14 F I=1,S3;D 26.0;S Z9=4;S Z1=R1;S Z2=R2;D 27.0
3.15 D 23.0
3.16 I (E)24.01,24.01;A "COMMAND:",A;I (A-1)3.21,3.15;I (A-3)4.23,24.1;I (A-5)7.06,7.30;I (A-7)7.34,7.38
3.17 T !," 0 = SET COURSE",!," 1 = SHORT RANGE SENSOR SCAN",!
3.18 T " 2 = LONG RANGE SENSOR SCAN",!," 3 = FIRE PHASERS",!
3.19 T " 4 = FIRE PHOTON TORPEDOES",!," 5 = SHIELD CONTROL",!
3.20 T " 6 = DAMAGE CONTROL REPORT",!," 7 = CALL ON LIBRARY COMPUTER",!,!;G 3.16
3.21 A "COURSE:",C1;I (C1),3.16;I (C1-1)3.21;I (C1-9),3.21,3.21
3.22 A "WARP FACTOR (0-8):",W1;I (W1)3.21;I (W1-8),,3.21;I (D(1)),3.24,3.24;I (W1-.2)3.24,3.24
3.23 T "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2",!;G 3.21
3.24 I (K3)3.25,3.25;D 25.0;I (K3)3.25,3.25;I (S)25.05;G 3.28
3.25 I (E),,3.28;I (S-1)24.10
3.26 T "YOU HAVE",%7.3,E," UNITS OF ENERGY",!
3.27 T "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE",S," UNITS LEFT",!;G 3.16
3.28 F I=1,8;D 4.0
3.29 G 4.03
4.01 I (D(I))4.02;R
4.02 S D(I)=D(I)+1;R
4.03 I (FRAN()-.2),,4.08;S R1=FITR(FRAN()*8+1);I (D(R1))4.06
4.04 S D(R1)=D(R1)-(FRAN()*5+1)
4.05 T !,"DAMAGE CONTROL REPORT:";D 5.0;T " DAMAGED",!,!;G 4.08
4.06 S D(R1)=D(R1)+(FRAN()*5+1)
4.07 T !,"DAMAGE CONTROL REPORT:";D 5.0;T " STATE OF REPAIR IMPROVED",!,!
4.08 S N=FITR(W1*8);S Z9=0;S Z1=S1;S Z2=S2;D 27.0;S X=S1;S Y=S2
4.09 S X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-FITR(C1))
4.10 S Y8=-1;S X2=C(C1,2)+[C(C1+1,2)-C(C1,2)]*[C1-FITR(C1)]
4.11 F I=1,N;S S1=S1+X1;S S2=S2+X2;I (S1-1)4.29;I (S1-9),4.29,4.29;I (S2-1)4.29;I (S2-9),4.29,4.29;I (A(S1,S2)),,4.30
4.12 I (Y8)4.14,4.17,4.13
4.13 T "WARP ENGINES SHUTDOWN AT SECTOR",%1,S1," -",S2," DUE TO BAD NAVIGATION",!;S S1=S1-X1;S S2=S2-X2
4.14 S Z9=1;S Z1=S1;S Z2=S2;D 27.0;S E=E-N+5;I (W1-1)4.15;S T=T+1
4.15 I (T-T0-T9)4.16,4.16;T !,"IT IS STARDATE",%5,T;G 24.04
4.16 D 28;G 3.15
4.17 S X=Q1*8+X+X1*N;S Y=Q2*8+Y+X2*N;S Q1=FITR(X/8);S Q2=FITR(Y/8)
4.18 S S1=FITR(X-Q1*8);S S2=FITR(Y-Q2*8);I (S1)4.19,,4.19;S Q1=Q1-1;S S1=8
4.19 I (S2)4.20,,4.20;S Q2=Q2-1;S S2=8
4.20 S T=T+1;S E=E-N+5
4.21 I (T-T0-T9)4.22,4.22;T !,"IT IS STARDATE",%5,T;G 24.04
4.22 G 3.03
4.23 I (D(3)),4.25,4.25
4.24 T "LONG RANGE SENSORS ARE INOPERABLE",!;G 3.16
4.25 T "LONG RANGE SENSOR SCAN FOR QUADRANT ",%1,Q1," -",Q2,!
4.26 T "----------------------",!
4.27 F I=Q1-1,Q1+1;D 6.0
4.28 G 3.16
4.29 S Y8=0;S I=N+1;G 4.12
4.30 S Y8=1;S I=N+1;G 4.12
4.32 F I=1,K3;D 26;S A(R1,R2)=2;S K(I,1)=R1;S K(I,2)=R2;I (I-K3),3.15
4.33 C
5.01 I (R1-2)5.02,5.03;I (R1-4)5.04,5.05;I (R1-6)5.06,5.07;I (R1-8)5.08,5.09;R
5.02 T "WARP ENGINES";R
5.03 T "S.R. SENSORS";R
5.04 T "L.R. SENSORS";R
5.05 T "PHASER CNTRL";R
5.06 T "PHOTON TUBES";R
5.07 T "DAMAGE CNTRL";R
5.08 T "SHIELD CNTRL";R
5.09 T "COMPUTER";R
6.01 F J=Q2-1,Q2+1;D 6.03
6.02 D 6.05;R
6.03 I (I-1)6.04;I (I-8),,6.04;I (J-1)6.04;I (J-8),,6.04;S N(J-Q2+2)=G(I,J);I (D(7))6.12;S Z(I,J)=G(I,J)
6.04 S N(J-Q2+2)=0;R
6.05 T %3,":",N(1)," :",N(2)," :",N(3)," :",!,"----------------------",!;R
6.06 I (D(7)),6.07,6.07;T "COMPUTER FAILURE HAMPERS ACCURACY",!
6.07 T "PHASERS LOCKED ON TARGET. ENERGY AVAILABLE =",%4,E,!
6.08 A "NUMBER OF UNITS TO FIRE:",X;I (X)3.16,3.16;I (E-X)6.06;S E=E-X
6.09 D 25.0;I (D(7)),6.1,6.1;S X=X*FRAN()
6.10 F I=1,3;D 7.0
6.11 I (E)24.01;G 3.16
6.12 C
7.01 I (K(I,3))7.02,7.02;S H=(X/K3/F0(K(I,1),S1,K(I,2),S2))*(2*FRAN());S K(I,3)=K(I,3)-H;G 7.03
7.02 R
7.03 T %4,H," UNIT HIT ON KLINGON AT SECTOR "%1,K(I,1)," -",K(I,2)," ("%3,K(I,3)," LEFT)",!
7.04 I (K(I,3)),,7.05;D 29.0
7.05 I (K9)24.06,24.06;R
7.06 I (D(5)),7.07,7.07;T "PHOTON TUBES ARE NOT OPERATIONAL",!;G 3.16
7.07 I (P),,7.08;T "ALL PHOTON TORPEDOES EXPENDED",!;G 3.16
7.08 A "TORPEDO COURSE (1-9):",C1;I (C1),3.16;I (C1-1)7.08;I (C1-9),7.08,7.08
7.09 S X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-FITR(C1))
7.10 S X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-FITR(C1))
7.11 S X=S1;S Y=S2;S P=P-1;T "TORPEDO TRACK:",!
7.12 S X=X+X1;S Y=Y+X2
7.13 G 30.01
7.14 T :16,%1,X," -",Y,!
7.15 S Z9=0;S Z1=X;S Z2=Y;D 22.0;I (Z3),,7.12
7.16 S Z9=2;S Z1=X;S Z2=Y;D 22.0;I (Z3),7.24
7.17 T "*** KLINGON DESTROYED ***",!;S K3=K3-1;S K9=K9-1;I (K9)24.06,24.06
7.18 F I=1,3;D 7.20
7.19 G 7.28
7.20 I (FITR(X)-K(I,1))7.21,,7.21;I (FITR(Y)-K(I,2))7.21,,7.21;S K(I,3)=0;S A(K(I,1),K(I,2))=0;S I=4;R
7.21 C
7.24 S Z9=4;S Z1=X;S Z2=Y;D 22.0;I (Z3),24.09;G 24.08
7.25 T "YOU LEPIDOPTERIAN! YOU DESTROYED YOUR STARBASE!",!
7.27 S B3=B3-1;S Z9=0;S Z1=X;S Z2=Y;D 27.0
7.28 S G(Q1,Q2)=K3*100+B3*10+S3;S Z(Q1,Q2)=G(Q1,Q2)
7.29 D 25.0;I (E)24.01;G 3.16
7.30 I (D(7)),7.31,7.31;T "SHIELD CONTROL IS NON-OPERATIONAL",!;G 3.16
7.31 T "ENERGY AVAILABLE =",%6.2,E+S,!
7.32 A " NUMBER OF UNITS TO SHIELDS:",X;I (X)3.16;I (E+S-X)7.31
7.33 S E=E+S-X;S S=X;G 3.16
7.34 I (D(6)),7.35,7.35;T "DAMAGE REPORT IS NOT AVAILABLE",!;G 3.16
7.35 T !,"DEVICE STATE OF REPAIR",!
7.36 F R1=1,8;D 5.0;T :18,%1,D(R1),!
7.37 T !;G 3.16
7.38 I (D(8)),7.39,7.39;T "COMPUTER DISABLED",!;G 3.16
7.39 A "COMPUTER ACTIVE AND AWAITING COMMAND :",A
7.40 I (A)7.41;I (A-3),,7.41;I (A-1)8.01,9.01;I (A-3)11.01,10.01
7.41 T "FUNCTIONS AVAILABLE FROM COMPUTER",!
7.42 T " 0 = CUMULATIVE GALACTIC RECORD",!," 1 = STATUS REPORT",!
7.43 T " 2 = PHOTON TORPEDO DATA",!," 3 = COURSE DATA",!;G 7.39
8.01 T "COMPUTER RECORD OF GALAXY FOR QUADRANT ",%1,Q1," -",Q2,!
8.02 T " 1 2 3 4 5 6 7 8",!
8.03 T " ----- ----- ----- ----- ----- ----- ----- -----",!
8.04 F I=1,8;T ,%1,I;D 8.05;I (I-8),3.16
8.05 F J=1,8;D 8.07;I (J-8),8.08
8.06 T " ----- ----- ----- ----- ----- ----- ----- -----",!;R
8.07 T %4,Z(I,J)
8.08 T !;D 8.06;R
9.01 T " STATUS REPORT",!
9.02 T "NUMBER OF KLINGONS LEFT =",%2,K9,!
9.03 T "NUMBER OF STARDATES LEFT =",%4,(T0+T9)-T,!
9.04 T "NUMBER OF STARBASES LEFT =",%2,B9,!;G 7.34
10.01 T "YOU ARE AT QUADRANT ",%1,Q1," -",Q2," SECTOR ",S1," -",S2,!
10.02 A "QUADRANT (1) OR SECTOR (2) COMPUTATION :",M6
10.03 I (M6-2)10.08,10.04,10.02
10.04 A "ENTER NEW SECTOR #'S:",W1,X
10.05 S C1=S1;S A=S2;I (FABS(W1-C1)-FABS(X-A)),10.07,10.07
10.06 T "WARP FACTOR =",%5.3,FABS(X-A)/8,!;D 12.0;G 3.16
10.07 T "WARP FACTOR =",%5.3,FABS(W1-C1)/8,!;D 12.0;G 3.16
10.08 A "ENTER NEW QUADRANT #'S:",W1,X
10.09 S C1=Q1;S A=Q2;I (FABS(W1-C1)-FABS(X-A)),10.11,10.11
10.10 T "WARP FACTOR =",%5.3,FABS(X-A),!;D 12;G 3.16
10.11 T "WARP FACTOR =",%5.3, FABS(W1-C1),!;D 12.0;G 3.16
11.01 T !
11.02 F I=1,3;D 11.04
11.03 G 3.16
11.04 I (K(I,3))11.05,11.05;S C1=S1;S A=S2;S W1=K(I,1);S X=K(I,2);D 12.0;R
11.05 R
12.12 S X=X-A;S A=C1-W1;I (X)12.16;I (A)12.18;I (X),,12.13;I (A),12.23
12.13 S C1=1;I (FABS(A)-FABS(X))12.15,12.15
12.14 T "DIRECTION =",%5.3,C1+(((FABS(A)-FABS(X))+FABS(A))/FABS(A)),!;G 12.22
12.15 T "DIRECTION =",%5.3,C1+(FABS(A)/FABS(X)),!;G 12.22
12.16 I (A),,12.17;I (X),12.18;G 12.23
12.17 S C1=3;G 12.19
12.18 S C1=7
12.19 I (FABS(A)-FABS(X)),12.21,12.21
12.20 T "DIRECTION =",%5.3,C1+(((FABS(X)-FABS(A))+FABS(X))/FABS(X)),!;G 12.22
12.21 T "DIRECTION =",%5.3,C1+(FABS(X)/FABS(A)),!
12.22 T "DISTANCE =",%5.3,FSQT(X^2+A^2),!;R
12.23 S C1=5;I (FABS(A)-FABS(X))12.15,12.15;G 12.14
18.01 S Z9=3;S Z1=I;S Z2=J;D 22.0
18.02 I (Z3),,18.03;S D0=0;R
18.03 S D0=1;S E=3000;S P=10;F Y9=1,8;S D(Y9)=0;S S=0;S I=S1+2;S J=S2+2
18.04 T "SHIELDS DROPPED FOR DOCKING PURPOSES",!;R
19.01 I (K(I,3)),,19.02;R
19.02 S H=(K(I,3)/F0(K(I,1),S1,K(I,2),S2))*(2+FRAN())
19.03 S S=S-H
19.04 T %4,H," UNIT HIT ON ENTERPRISE AT SECTOR ",%1,K(I,1)," -",K(I,2)," (",%4,S," LEFT)",!
19.05 R
22.01 S Z3=0
22.02 I (A(Z1,Z2)-Z9),22.03;R
22.03 S Z3=1;R
23.01 F I=S1-1,S1+1;F J=S2-1,S2+1;D 18.0;I (D0),,23.02
23.02 I (D(2)),23.03,23.03;T !,"SHORT RANGE SENSORS ARE OUT",!;R
23.03 T "----------------",!
23.04 S I=1;F J=1,8;D 23.06
23.05 G 23.12
23.06 I (A(I,J)-1)23.07,23.08;I (A(I,J)-3)23.09,23.10,23.11;R
23.07 T " ";R
23.08 T " #";R
23.09 T " +";R
23.10 T " !";R
23.11 T " *";R
23.12 S I=2;T !;F J=1,8;D 23.06
23.13 T :20,"STARDATE",:32,%4,T,!
23.14 S I=3;F J=1,8;D 23.06
23.15 I (D0-1),23.20;I (K3),,23.18;I (E-(E0*.1))23.19
23.17 T :20,"CONDITION",:33,"GREEN"!;G 23.21
23.18 T :20,"CONDITION",:33,"RED",!;G 23.21
23.19 T :20,"CONDITION",:33,"YELLOW",!;G 23.21
23.20 T :20,"CONDITION",:33,"DOCKED",!;G 23.21
23.21 S I=4;F J=1,8;D 23.06
23.22 T :20,"QUADRANT",:32,%1,Q1," -",Q2,!
23.23 S I=5;F J=1,8;D 23.06
23.24 T :20,"SECTOR",:32,%1,S1," -",S2,!
23.25 S I=6;F J=1,8;D 23.06
23.26 T :20,"ENERGY",:32,%4,E,!
23.27 S I=7;F J=1,8;D 23.06
23.28 T :20,"PHOTONS",:32,%2,P,!
23.29 S I=8;F J=1,8;D 23.06
23.30 T :20,"SHIELDS",:32,%4,S,!
23.31 T "----------------",!
24.01 T "THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE ALL IMPENDING",!
24.02 T "ATTACK YOU WILL BE DEMOTED TO THE RANK OF PRIVATE",!
24.03 I (K3)24.04,24.04;D 25.0;G 24.03
24.04 T "THERE ARE STILL "%2,K9," KLINGON BATTLE CRUISERS.",!;L Q
24.06 T !"THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN DESTROYED",!;G 24.07
24.07 T "THE FEDERATION HAS BEEN SAVED !!!",!,!;L Q
24.08 T "YOU CAN'T DESTROY STARS, YOU SIMIAN!",!;G 7.29
24.09 S Z9=3;S Z1=X;S Z2=Y;D 22.0;I (Z3),7.12;G 7.25
24.10 I (K3),,24.11;T "SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT",!;G 3.16
24.11 I (D(4)),6.06,6.06;T "PHASER CONTROL IS DISABLED",!;G 3.16
25.01 I (D0-1)25.02;T "STAR BASE SHIELDS PROTECT THE ENTERPRISE",!;R
25.02 I (K3),,25.03;R
25.03 F I=1,3;D 19.0
25.04 I (S)25.05;R
25.05 T "THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE CONQUERED",!
25.06 T "THERE ARE STILL "%2,K9," KLINGON BATTLE CRUISERS",!;L Q
26.01 S R1=FITR(FRAN()*8+1);S R2=FITR(FRAN()*8+1)
26.02 S Z9=0;S Z1=R1;S Z2=R2
26.03 D 22.0;I (Z3),26.01;R
27.01 S A(Z1,Z2)=Z9;R
28.01 F I=1,8;F J=1,8;I (A(I,J)-2)28.02,,28.02;S A(I,J)=0
28.02 C
28.03 I (K6)28.05,28.05;F I=1,K6;I (K(I,3)),,28.04;I (I-K6),28.05
28.04 D 26;S K(I,1)=R1;S K(I,2)=R2;S A(R1,R2)=2
28.05 R
29.01 T "KLINGON AT SECTOR ",%1,K(I,1)," -",K(I,2)," DESTROYED.",!
29.02 S K3=K3-1;S K9=K9-1;S Z9=0;S Z1=K(I,1);S Z2=K(I,2);D 27.0
29.03 S G(Q1,Q2)=K3*100+B3*10+S3
29.04 S Z(Q1,Q2)=G(Q1,Q2);R
30.01 I (X-1),30.02,30.02;T "TORPEDO MISSED",!;D 25.0;I (E)24.01;G 3.16
30.02 I (X-9)30.03;T "TORPEDO MISSED",!;D 25.0;I (E)24.01;G 3.16
30.03 I (Y-1),30.04,30.04;T "TORPEDO MISSED",!;D 25.0;I (E)24.01;G 3.16
30.04 I (Y-9)30.05;T "TORPEDO MISSED",!;D 25.01;I (E)24.0;G 3.16
30.05 G 7.14
31.99 S Z'=FSQT((A'-B')^2+(C'-D')^2)