File TOWER.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

1580 PRINT "YOU HAVE";E;"UNITS OF ENERGY"
1590 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE";S;"UNITS LEFT"
1600 GOTO 1270
1610FOR I=1TO8\ IF D(I)>=0 THEN 1640
1611REM *** FIX ANY DAMAGED DEVICE
1630D(I)=D(I)+1
1640NEXT I
1650IF RND(1)>.2 THEN 1810
1660R1=INT(RND(1)*8+1)
1670IF RND(1)>= .5 THEN 1750
1680D(R1)=D(R1)-(RND(1)*5+1)
1690 PRINT\PRINT "DAMAGE CONTROL REPORT:";
1710GOSUB 5610
1720PRINT" DAMAGED"\PRINT\GOTO 1810
1750D(R1)=D(R1)+(RND(1)*5+1)
1760 PRINT\PRINT "DAMAGE CONTROL REPORT:";
1780GOSUB 5610
1790PRINT" STATE OF REPAIR IMPROVED"\PRINT
1810 N=INT((W1+.0625)*8)\A$="   "\Z1=S1\Z2=S2
1850GOSUB 5510
1870X=S1\Y=S2
1890X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1))
1900X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1))
1910FOR I=1TON\S1=S1+X1\S2=S2+X2
1940 IF S1<1 GOTO 2170\IF S1>=9 GOTO 2170\IF S2<1 GOTO 2170\IF S2>=9 GOTO 2170
1950S8=S1*24+S2*3-26\ IF S8>72 THEN 1990
1970 IF SEG$(Q$,S8,S8+2)="   " GOTO 2070
1980GOTO 2030
1990IF S8>144 THEN 2020
2000 IF SEG$(R$,S8-72,S8-70)="   " GOTO 2070
2010GOTO 2030
2020 IF SEG$(S$,S8-144,S8-142)="   " GOTO 2070
2030 S1=INT(S1-X1)\S2=INT(S2-X2)\PRINT "WARP ENGINES SHUTDOWN AT SECTOR";
2035 PRINT S1;",";S2;"DUE TO BAD NAVAGATION"
2040 GOTO 2080
2070NEXT I
2075 S1=INT(S1)\S2=INT(S2)
2080A$="<*>"\Z1=S1\Z2=S2
2110GOSUB 5510
2120 E=E-N+5\T=(INT(10*T+1.1))/10\IF W1<1 THEN 2150
2140 T=(INT(10*T+9))/10
2150IF T>T0+T9 THEN 3970
2160GOTO 1260
2170X=Q1*8+X+X1*N\Y=Q2*8+Y+X2*N
2190Q1=INT(X/8)\Q2=INT(Y/8)\S1=INT(X-Q1*8)\S2=INT(Y-Q2*8)
2230IF S1<>0 THEN 2260
2240Q1=Q1-1\S1=8
2260IF S2<>0 THEN 2290
2270Q2=Q2-1\S2=8
2290T=T+1\E=E-N+5
2310IF T>T0 + T9 THEN 3970
2320GOTO 810
2321REM *** LONG RANGE SENSON SCAN CODE BEGINS HERE
2330IF D(3)>=0 THEN 2370
2340PRINT "LONG RANGE SENSORS ARE INOPERABLE"
2360GOTO 1270
2370 PRINT "LONG RANGE SENSOR SCAN FOR QUADRANT";Q1;",";Q2
2380PRINT"-------------------"
2390FOR I=Q1-1 TO Q1+1
2410FOR J=Q2-1 TO Q2+1
2420 IF I<1 GOTO 2500\IF I>8 GOTO 2500\IF J<1 GOTO 2500\IF J>8 GOTO 2500
2430N(J-Q2+2)=G(I,J)
2440 IF D(8)<0 THEN 2460
2450Z(I,J)=G(I,J)
2460NEXT J
2470 PRINT ":";N(1);TAB(7);":";N(2);TAB(13);":";N(3);TAB(19);":"
2480PRINT"-------------------"
2490NEXT I
2495 GOTO 1270
2500 N(J-Q2+2)=0\GOTO 2460
2501REM *** PHASER CONTROL CODE BEGINS HERE
2530IF K3<=0 THEN 3670
2540IF D(4)>=0 THEN 2570
2550 PRINT "PHASERS NOT OPERATIONAL"
2560GOTO 1270
2570 IF D(8)>=0 THEN 2590
2580PRINT " COMPUTER FAILURE HAMPERS ACCURACY"
2590 PRINT "PHASERS LOCKED ON TARGET.  ENERGY AVAILABLE =";E
2600 PRINT "NUMBER OF UNITS TO FIRE:";\INPUT X
2620IF X<=0 THEN 1270
2630 IF E-X<0 THEN 2590
2640E=E-X
2650GOSUB 3790
2660IF D(7)>=0 THEN 2680
2670X=X*RND(1)
2680FOR I=1TO3
2690IF K(I,3)<=0 THEN 2770
2700H=INT((X/K3/FND(0))*(2*RND(1)))
2710K(I,3)=K(I,3)-H
2720 PRINT H;" UNIT HIT ON KLINGON AT SECTOR";K(I,1);",";K(I,2);
2721 PRINT "     (";K(I,3);" LEFT)"
2740IF K(I,3)>0 THEN 2770
2750GOSUB 3690
2760IF K9<=0 THEN 4040
2770NEXT I
2780IF E<0 THEN 4000
2790GOTO 1270
2791REM *** PHOTON TORPEDO CODE BEGINS HERE
2800IF D(5)>=0 THEN 2830
2810PRINT "PHOTON TUBES ARE NOT OPERATIONAL"
2820GOTO 1270
2830IF P>0 THEN 2860
2840PRINT "ALL PHOTON TORPEDOES EXPENDED"
2850GOTO 1270
2860 PRINT "TORPEDO COURSE (1-9):";\INPUT C1
2880IF C1=0 THEN 1270
2890 IF C1<1 GOTO 2860\IF C1>=9 GOTO 2860
2900X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1))
2910X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1))
2920X=S1\Y=S2\P=P-1
2950 PRINT "TORPEDO TRACK:"
2960X=X+X1\Y=Y+X2
2980 IF X<1 GOTO 3420\IF X>=9 GOTO 3420\IF Y<1 GOTO 3420\IF Y>=9 GOTO3420
2990 PRINT "               ";X;",";Y
2992 IF INT(X+.25)<>INT(X+.75) GOTO 2960
2994 IF INT(Y+.25)<>INT(Y+.75) GOTO 2960
3000 Z1=INT(X+.5)\Z2=INT(Y+.5)
3010 A$="   "
3040GOSUB 5680
3050IF Z3=0 THEN 3070
3060GOTO 2960
3070 A$="+++"
3100GOSUB 5680
3110IF Z3=0 THEN 3220
3120PRINT "*** KLINGON DESTROYED ***"
3130K3=K3-1\K9=K9-1
3150IF K9<=0 THEN 4040
3160FOR I=1TO3\IF INT(X)<>K(I,1) THEN 3190
3180IF INT(Y)=K(I,2) THEN 3200
3190NEXT I
3200K(I,3)=0\GOTO 3360
3220 A$=" * "
3250GOSUB 5680
3260IF Z3=0 THEN 3290
3270PRINT "YOU CAN'T DESTROY STARS, SILLY"
3280GOTO 3420
3290 A$=">!<"
3320GOSUB 5680



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search