1 ON ERROR GOTO 32767 \ I$=SYS(CHR$(6%)+CHR$(9%)) ! SET UP ^C TRAP FOR ACCOUNTING DUMP TO [8,9]. 100 REM *** PROGRAM SIMULATES TV PROGRAM STARTREK 110 REM *** WRITTEN BY MIKE MAYFIELD, CENTERLINE ENGINEERING 120 RANDOMIZE 130 PRINT " * * * STAR TREK * * *":PRINT 135 K% = ASCII(RIGHT(SYS(CHR$(6%)+CHR$(9%)),2%))/2% \ K% = K%<8% OR K%>13% ! IS USER ON A CRT TERMINAL? 140 INPUT "DO YOU WANT INSTRUCTIONS (THEY'RE LONG!)";A$ 150 IF A$<>"YES" THEN 200 160 OPEN "[8,9] TREK.DOC" FOR INPUT AS FILE 1% \ ON ERROR GOTO 180 170 WHILE -1% \ INPUT LINE#1%, L$ \ PRINT L$; \ NEXT 180 CLOSE 1% \ RESUME 190 190 ON ERROR GOTO 32767 \ IF NOT K% THEN 32767 200 REM *** PROGRAM BEGINS HERE 205 IF NOT K% THEN PRINT "THIS PROGRAM MAY ONLY BE RUN FROM A CRT (TV) TERMINAL." \ PRINT "THE INSTRUCTIONS MAY BE LISTED FROM ANY TERMINAL." \ GOTO 32767 210 Z$,R$,Q$=" " 220 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8) 230 T0,T=INT(RND(1)*20+20)*100 240 T9=30:D0=0:E0,E=3000:P0,P=10:S9=200:S,H8=0 250 DEF FND(D)=SQR((K(I,1)-S1)**2+(K(I,2)-S2)**2) 260 Q1=INT(RND(1)*8+1) 270 Q2=INT(RND(1)*8+1) 280 S1=INT(RND(1)*8+1) 290 S2=INT(RND(1)*8+1) 300 T7=TIME(0) 310 C(2,1),C(3,1),C(4,1),C(4,2),C(5,2),C(6,2)=-1 320 C(1,1),C(3,2),C(5,1),C(7,2),C(9,1)=0 330 C(1,2),C(2,2),C(6,1),C(7,1),C(8,1),C(8,2),C(9,2)=1 340 MAT D=ZER 350 D$="WARP ENGINESS.R. SENSORSL.R. SENSORSPHASER CNTRL" 360 D$=D$+"PHOTON TUBESDAMAGE CNTRL" 370 E$="SHIELD CNTRLCOMPUTER" 380 B9,K9=0 390 REM *** SETS UP WHAT EXISTS IN GALAXY 400 FOR I=1TO8 410 FOR J=1TO8 420 R1=RND(1) 430 IF R1>.98 THEN 470 440 IF R1>.95 THEN 480 450 IF R1>.8 THEN 490 460 K3=0:GOTO 500 470 K3=3:K9=K9+3:GOTO 500 480 K3=2:K9=K9+2:GOTO 500 490 K3=1:K9=K9+1 500 R1=RND(1) 510 IF R1>.96 THEN 530 520 B3=0:GOTO 540 530 B3=1:B9=B9+1 540 S3=INT(RND(1)*8+1) 550 G(I,J)=K3*100+B3*10+S3 560 Z(I,J)=0 570 NEXT J 580 NEXT I 590 K7=K9 600 PRINT:PRINT 610 PRINT"YOU MUST DESTROY"K9" KLINGONS IN"T9" STARDATES WITH "B9" STARBASES" 620 IF B9>0 THEN 640 630 G(6,3)=114 640 K3,B3,S3=0 650 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 750 660 X=G(Q1,Q2)*.01 670 K3=INT(X) 680 B3=INT((X-K3)*10) 690 S3=G(Q1,Q2)-INT(G(Q1,Q2)*.1)*10 700 IF K3=0 THEN 740 710 IF S>200 THEN 740 720 PRINT"COMBAT AREA CONDITION RED" 730 PRINT" SHIELDS DANGEROUSLY LOW" 740 MAT K=ZER 750 FOR I=1TO3 760 K(I,3)=0 770 NEXT I 780 Q$=Z$:R$=Z$ 790 S$=MID(Z$,1,48) 800 REM *** PUT ENTERPRISE SOMEWHERE 810 A$="<*>" 820 Z1=S1 830 Z2=S2 840 GOSUB 4610 850 FOR I=1TOK3 860 GOSUB 4570 870 REM *** PUT KLINGONS SOMEWHERE 880 A$="+++" 890 Z1=R1 900 Z2=R2 910 GOSUB 4610 920 K(I,1)=R1: K(I,2)=R2: K(I,3)=S9 930 NEXT I 940 FOR I=1TOB3 950 GOSUB 4570 960 REM *** PUT STARBASE(S) SOMEWHERE 970 A$=">!<": Z1=R1: Z2=R2 980 GOSUB 4610 990 NEXT I 1000 FOR I=1TOS3 1010 GOSUB 4570 1020 REM *** PUT STARS SOMEWHERE 1030 A$=" * ": Z1=R1: Z2=R2 1040 GOSUB 4610 1050 NEXT I 1060 GOSUB 3470 1070 INPUT "COMMAND:";A 1080 IF A=0 GOTO 1280 1090 IF A=1 GOTO 1060 1100 IF A=2 GOTO 1950 1110 IF A=3 GOTO 2140 1120 IF A=4 GOTO 2400 1130 IF A=5 GOTO 2890 1140 IF A=6 GOTO 2990 1150 IF A=7 GOTO 3910 1160 IF A=8 GOTO 32767 1170 PRINT:PRINT" 0 = SET COURSE" 1180 PRINT" 1 = SHORT RANGE SENSOR SCAN" 1190 PRINT" 2 = LONG RANGE SENSOR SCAN" 1200 PRINT" 3 = FIRE PHASERS" 1210 PRINT" 4 = FIRE PHOTON TORPEDOES" 1220 PRINT" 5 = SHIELD CONTROL" 1230 PRINT" 6 = DAMAGE CONTROL REPORT" 1240 PRINT" 7 = CALL ON LIBRARY COMPUTER" 1250 PRINT" 8 = END THE CONTEST":PRINT 1260 GOTO 1070 1270 REM *** COURSE CONTROL CODE BEGINS HERE 1280 INPUT "COURSE (1-9):";C1 1290 IF C1=0 THEN 1070 1300 IF C1<1 OR C1>9 THEN 1280 1310 INPUT "WARP FACTOR (0-8):";W1 1320 IF W1<0 OR W1>8 THEN 1280 1330 IF D(1)>=0 OR W1<=.2 THEN 1360 1340 PRINT "WARP ENGINES ARE DAMAGED, MAXIMUM SPEED = WARP .2" 1350 GOTO 1280 1360 IF K3<=0 THEN 1410 1370 GOSUB 3150 1380 IF K3<=0 THEN 1410 1390 IF S<0 THEN 3340 1400 GOTO 1460 1410 IF E>0 THEN 1460 1420 IF S<1 THEN 3260 1430 PRINT "YOU HAVE"E" UNITS OF ENERGY" 1440 PRINT "SUGGEST YOU GET SOME FROM YOUR SHIELDS WHICH HAVE"S" UNITS LEFT" 1450 GOTO 1070 1460 FOR I=1TO8: IF D(I)>=0 THEN 1490 1470 REM *** FIX ANY DAMAGED DEVICE 1480 D(I)=D(I)+1 1490 NEXT I 1500 IF RND(1)>.2 THEN 1610 1510 R1=INT(RND(1)*8+1) 1520 IF RND(1)>= .5 THEN 1570 1530 D(R1)=D(R1)-(RND(1)*5+1) 1540 PRINT:PRINT "DAMAGE CONTROL REPORT:"; 1550 GOSUB 4700 1560 PRINT" DAMAGED":PRINT:GOTO 1610 1570 D(R1)=D(R1)+(RND(1)*5+1) 1580 PRINT:PRINT "DAMAGE CONTROL REPORT:"; 1590 GOSUB 4700 1600 PRINT" STATE OF REPAIR IMPROVED":PRINT 1610 N=INT(W1*8):A$=" ":Z1=S1:Z2=S2 1620 GOSUB 4610 1630 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) 1640 X=S1:Y=S2 1650 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) 1660 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) 1670 FOR I=1TON:S1=S1+X1:S2=S2+X2 1680 IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 1850 1690 S8=S1*24+S2*3-26: IF S8>72 THEN 1720 1700 IF MID(Q$,S8,3)=" " THEN 1780 1710 GOTO 1760 1720 IF S8>144 THEN 1750 1730 IF MID(R$,S8-72,3)=" " THEN 1780 1740 GOTO 1760 1750 IF MID(S$,S8-144,3)=" " THEN 1780 1760 PRINT"WARP ENGINES SHUTDOWN AT SECTOR "S1","S2" DUE TO BAD NAVAGATION" 1770 S1=S1-X1:S2=S2-X2:GOTO 1790 1780 NEXT I 1790 A$="<*>":Z1=S1:Z2=S2 1800 GOSUB 4610 1810 E=E-N+5:IF W1<1 THEN 1830 1820 T=T+1 1830 IF T>T0+T9 THEN 3310 1840 GOTO 1060 1850 X=Q1*8+X+X1*N:Y=Q2*8+Y+X2*N 1860 Q1=INT(X/8):Q2=INT(Y/8):S1=INT(X-Q1*8):S2=INT(Y-Q2*8) 1870 IF S1<>0 THEN 1890 1880 Q1=Q1-1:S1=8 1890 IF S2<>0 THEN 1910 1900 Q2=Q2-1:S2=8 1910 T=T+1:E=E-N+5 1920 IF T>T0 + T9 THEN 3310 1930 GOTO 640 1940 REM *** LONG RANGE SENSON SCAN CODE BEGINS HERE 1950 IF D(3)>=0 THEN 1980 1960 PRINT "LONG RANGE SENSORS ARE INOPERABLE" 1970 GOTO 1070 1980 PRINT"LONG RANGE SENSOR SCAN FOR QUADRANT "Q1","Q2 1990 PRINT"-------------------" 2000 FOR I=Q1-1 TO Q1+1 2010 MAT N=ZER 2020 FOR J=Q2-1 TO Q2+1 2030 IF I<1 OR I>8 OR J<1 OR J>8 THEN 2070 2040 N(J-Q2+2)=G(I,J) 2050 IF D(7)<0 THEN 2070 2060 Z(I,J)=G(I,J) 2070 NEXT J 2080 P1$=": ### : ### : ### :" 2090 PRINT USING P1$,N(1),N(2),N(3) 2100 PRINT"-------------------" 2110 NEXT I 2120 GOTO 1070 2130 REM *** PHASER CONTROL CODE BEGINS HERE 2140 IF K3<=0 THEN 3080 2150 IF D(4)>=0 THEN 2170 2160 GOTO 1070 2170 IF D(7)>=0 THEN 2190 2180 PRINT " COMPUTER FAILURE HAMPERS ACCURACY" 2190 PRINT"PHASERS LOCKED ON TARGET. ENERGY AVAILABLE="E 2200 INPUT "NUMBER OF UNITS TO FIRE:";X 2210 IF X<=0 THEN 1070 2220 IF E-X<0 THEN 2170 2230 E=E-X 2240 GOSUB 3150 2250 IF D(7)>=0 THEN 2270 2260 X=X*RND(1) 2270 FOR I=1TO3 2280 IF K(I,3)<=0 THEN 2360 2290 H=INT((X/K3/FND(0))*(2*RND(1))) 2300 K(I,3)=K(I,3)-H 2310 PRINTH" UNIT HIT ON KLINGON AT SECTOR "K(I,1)","K(I,2); 2320 PRINT" ("K(I,3)" LEFT)" 2330 IF K(I,3)>0 THEN 2360 2340 GOSUB 3100 2350 IF K9<=0 THEN 3370 2360 NEXT I 2370 IF E<0 THEN 3340 2380 GOTO 1070 2390 REM *** PHOTON TORPEDO CODE BEGINS HERE 2400 IF D(5)>=0 THEN 2430 2410 PRINT "PHOTON TUBES ARE NOT OPERATIONAL" 2420 GOTO 1070 2430 IF P>0 THEN 2460 2440 PRINT "ALL PHOTON TORPEDOES EXPENDED" 2450 GOTO 1070 2460 INPUT "TORPEDO COURSE (1-9):";C1 2470 IF C1=0 THEN 1070 2480 IF C1<1 OR C1>=9 THEN 2460 2490 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) 2500 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) 2510 X=S1:Y=S2:P=P-1 2520 PRINT "TORPEDO TRACK:" 2530 X=X+X1:Y=Y+X2 2540 IF X<1 OR X>=9 OR Y<1 OR Y>=9 THEN 2840 2550 PRINT" "X","Y 2560 A$=" ":Z1=X:Z2=Y 2570 GOSUB 4750 2580 IF Z3=0 THEN 2600 2590 GOTO 2530 2600 A$="+++":Z1=X:Z2=Y 2610 GOSUB 4750 2620 IF Z3=0 THEN 2700 2630 PRINT "*** KLINGON DESTROYED ***" 2640 K3=K3-1:K9=K9-1 2650 IF K9<=0 THEN 3370 2660 FOR I=1TO3:IF INT(X)<>K(I,1) THEN 2680 2670 IF INT(Y)=K(I,2) THEN 2690 2680 NEXT I 2690 K(I,3)=0:GOTO 2800 2700 A$=" * ":Z1=X:Z2=Y 2710 GOSUB 4750 2720 IF Z3=0 THEN 2750 2730 PRINT "YOU CAN'T DESTROY STARS, SILLY" 2740 GOTO 2840 2750 A$=">!<":Z1=X:Z2=Y 2760 GOSUB 4750 2770 IF Z3=0 THEN 2530 2780 PRINT "*** STAR BASE DESTROYED *** .......CONGRATULATIONS" 2790 B3=B3-1 2800 A$=" ":Z1=X:Z2=Y 2810 GOSUB 4610 2820 G(Q1,Q2)=K3*100+B3*10+S3 2830 GOTO 2850 2840 PRINT "TORPEDO MISSED" 2850 GOSUB 3150 2860 IF E<0 THEN 3340 2870 GOTO 1070 2880 REM *** SHIELD CONTROL CODE BEGINS HERE 2890 IF D(7)>=0 THEN 2920 2900 PRINT "SHIELD CONTROL IS NON-OPERATIONAL" 2910 GOTO 1070 2920 PRINT "ENERGY AVAILABLE ="E+S; 2930 INPUT " NUMBER OF UNITS TO SHIELDS:";X 2940 IF X<=0 THEN 1070 2950 IF E+S-X<0 THEN 2920 2960 E=E+S-X:S=X 2970 GOTO 1070 2980 REM *** DAMAGE CONTROL REPORT CODE BEGINS HERE 2990 IF D(6)>=0 THEN 3020 3000 PRINT "DAMAGE CONTROL REPORT IS NOT AVAILABLE" 3010 GOTO 1070 3020 PRINT:PRINT "DEVICE STATE OF REPAIR" 3030 FOR R1=1TO8 3040 GOSUB 4700 3050 PRINTD(R1) 3060 NEXT R1:PRINT 3070 GOTO 1070 3080 PRINT"SHORT RANGE SENSORS REPORT NO KLINGONS IN THIS QUADRANT" 3090 GOTO 1070 3100 PRINT "KLINGON AT SECTOR "K(I,1)","K(I,2)"DESTROYED ***" 3110 K3=K3-1:K9=K9-1:A$=" ":Z1=K(I,1):Z2=K(I,2) 3120 GOSUB 4610 3130 G(Q1,Q2)=K3*100+B3*10+S3 3140 RETURN 3150 IF C$<>"DOCKED" THEN 3180 3160 PRINT "STAR BASE SHIELDS PROTECT THE ENTERPRISE" 3170 RETURN 3180 IF K3<=0 THEN 3250 3190 FOR I=1TO3:IF K(I,3)<=0 THEN 3240 3200 H=INT((K(I,3)/FND(0))*(2+RND(1))):S=S-H 3210 PRINTH" UNIT HIT ON ENTERPRISE AT SECTOR "K(I,1)","K(I,2); 3220 PRINT" ("S" LEFT)" 3230 IF S<0 THEN 3340 3240 NEXT I 3250 RETURN 3260 PRINT "THE ENTERPRISE IS DEAD IN SPACE. IF YOU SURVIVE ALL IMPENDING" 3270 PRINT "ATTACKS, YOU WILL BE DEMOTED TO THE RANK OF LAUNDRY ASSISTANT" 3280 IF K3<=0 THEN 3350 3290 GOSUB 3150 3300 GOTO 3280 3310 PRINT:PRINT "IT IS STARDATE"T 3320 GOTO 3350 3330 REM *** NO ENERGY LEFT 3340 PRINT:PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE CONQUERED" 3350 PRINT "THIS PLANET IS PART OF THE FEDERATION, YOU KNOW." \ GOTO 32767 3370 PRINT:PRINT"THE LAST KLINGON BATTLE CRUISER IN THE GALAXY HAS BEEN DESTROYED" 3380 PRINT"THE FEDERATION HAS BEEN SAVED!!!!!":PRINT 3390 E5=((K7/(T-T0))*1000) 3400 PRINT "YOUR EFFICIENCY RATING ="E5 3410 PRINT"YOUR ACTUAL TIME OF MISSION ="INT((TIME(0)-T7)/60);" MINUTES" 3420 PRINT:PRINT:PRINT 3430 INPUT"DO YOU WANT TO TRY AGAIN";R$ 3440 IF R$ = "YES" THEN 200 3450 GOTO 32767 3460 REM *** SHORT RANGE SENSOR SCAN AND STARTING POINT CODE 3470 FOR I=S1-1TO S1+1 3480 FOR J=S2-1TO S2+1 3490 IF I<1 OR I>8 OR J<1 OR J>8 THEN 3530 3500 A$=">!<":Z1=I:Z2=J 3510 GOSUB 4750 3520 IF Z3=1 THEN 3560 3530 NEXT J 3540 NEXT I 3550 D0=0:GOTO 3590 3560 D0=1:C$="DOCKED":E=3000:P=10 3570 PRINT "SHIELDS DROPPED FOR DOCKING PURPOSES" 3580 S=0:GOTO 3650 3590 IF K3>0 THEN 3630 3600 IF E=0 THEN 3680 3660 PRINT:PRINT"*** SHORT RANGE SENSORS ARE OUT ***":PRINT 3670 GOTO 3890 3680 O1$="---------------------------------" 3690 PRINT USING O1$ 3700 O2$=" \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \" 3710 PRINT USING O2$,MID(Q$,1,3),MID(Q$,4,3),MID(Q$,7,3), MID(Q$,10,3),MID(Q$,13,3),MID(Q$,16,3),MID(Q$,19,3), MID(Q$,22,3) 3720 O3$=O2$+" STARDATE #####" 3730 PRINT USING O3$,MID(Q$,25,3),MID(Q$,28,3),MID(Q$,31,3), MID(Q$,34,3),MID(Q$,37,3),MID(Q$,40,3), MID(Q$,43,3),MID(Q$,46,3),T 3740 O4$=O2$+" CONDITION \ \" 3750 PRINT USING O4$,MID(Q$,49,3),MID(Q$,52,3),MID(Q$,55,3), MID(Q$,58,3),MID(Q$,61,3),MID(Q$,64,3),MID(Q$,67,3), MID(Q$,70,3),C$ 3760 O5$=O2$+" QUADRANT #" 3770 PRINT USING O5$,MID(R$,1,3),MID(R$,4,3),MID(R$,7,3), MID(R$,10,3),MID(R$,13,3),MID(R$,16,3),MID(R$,19,3), MID(R$,22,3),Q1; 3780 PRINT ",";Q2 3790 O6$=O2$+" SECTOR #" 3800 PRINT USING O6$,MID(R$,25,3),MID(R$,28,3), MID(R$,31,3),MID(R$,34,3),MID(R$,37,3),MID(R$,40,3), MID(R$,43,3),MID(R$,46,3),S1; 3810 PRINT ",";S2 3820 O7$=O2$+" TOTAL ENERGY ######" 3830 PRINT USING O7$,MID(R$,49,3),MID(R$,52,3),MID(R$,55,3), MID(R$,58,3),MID(R$,61,3),MID(R$,64,3),MID(R$,67,3), MID(R$,70,3),E 3840 O8$=O2$+" PHOTON TORPEDOES ###" 3850 PRINT USING O8$,MID(S$,1,3),MID(S$,4,3),MID(S$,7,3),MID(S$,10,3), MID(S$,13,3),MID(S$,16,3),MID(S$,19,3),MID(S$,22,3),P 3860 O9$=O2$+" SHIELDS ######" 3870 PRINT USING O9$,MID(S$,25,3),MID(S$,28,3),MID(S$,31,3), MID(S$,34,3),MID(S$,37,3),MID(S$,40,3),MID(S$,43,3), MID(S$,46,3),S 3880 PRINT USING O1$ 3890 RETURN 3900 REM *** LIBRARY COMPUTER CODE BEGINS HERE 3910 IF D(8)>=0 THEN 3930 3920 PRINT "COMPUTER DISABLED":GOTO 1070 3930 INPUT "COMPUTER ACTIVE AND AWAITING COMMAND:";A 3940 IF A=0 GOTO 4030 3950 IF A=1 GOTO 4130 3960 IF A=2 GOTO 4190 3970 PRINT "FUNCTIONS AVAILABLE FROM COMPUTER" 3980 PRINT " 0 = CUMULATIVE GALACTIC RECORD" 3990 PRINT " 1 = STATUS REPORT" 4000 PRINT " 2 = PHOTON TORPEDO DATA" 4010 GOTO 3930 4020 REM *** CUMULATIVE GALACTIC RECORD CODE BEGINS HERE 4030 PRINT"COMPUTER RECORD OF GALAXY FOR QUADRANT "Q1","Q2 4040 PRINT" 1 2 3 4 5 6 7 8" 4050 PRINT" ----- ----- ----- ----- ----- ----- ----- -----" 4060 FOR I=1TO8 4070 N1$="# ### ### ### ### ### ### ### ###" 4080 PRINT USING N1$,I,Z(I,1),Z(I,2),Z(I,3),Z(I,4),Z(I,5),Z(I,6), Z(I,7),Z(I,8) 4090 PRINT" ----- ----- ----- ----- ----- ----- ----- -----" 4100 NEXT I 4110 GOTO 1070 4120 REM *** STATUS REPORT CODE BEGINS HERE 4130 PRINT " STATUS REPORT" 4140 PRINT "NUMBER OF KLINGONS LEFT ="K9 4150 V5=(T0+T9)-T 4160 PRINT "NUMBER OF STARDATES LEFT =";V5 4170 PRINT "NUMBER OF STARBASES LEFT ="B9 4180 GOTO 2990 4190 PRINT:H8=0 4200 REM *** PHOTON TORPEDO DATA CODE BEGINS HERE 4210 FOR I=1TO3 4220 IF K(I,3)<=0 THEN 4500 4230 C1=S1:A=S2:W1=K(I,1):X=K(I,2) 4240 GOTO 4270 4250 PRINT"YOU ARE AT QUADRANT ( "Q1","Q2" ) SECTOR ( "S1","S2" )" 4260 INPUT "SHIP AND TARGET COORDINATES ARE:";C1,A,W1,X 4270 X=X-A:A=C1-W1 4280 IF X<0 THEN 4390 4290 IF A<0 THEN 4430 4300 IF X>0 THEN 4320 4310 IF A=0 THEN 4410 4320 C1=1 4330 IF ABS(A) <= ABS(X) THEN 4370 4340 V5=C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)) 4350 PRINT "DIRECTION ="V5 4360 GOTO 4480 4370 PRINT "DIRECTION ="C1+(ABS(A)/ABS(X)) 4380 GOTO 4480 4390 IF A>0 THEN 4420 4400 IF X=0 THEN 4430 4410 C1=5:GOTO 4330 4420 C1=3:GOTO4440 4430 C1=7 4440 IF ABS(A)>=ABS(X) THEN 4470 4450 PRINT "DIRECTION ="C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)) 4460 GOTO 4480 4470 PRINT "DIRECTION ="C1+(ABS(X)/ABS(A)) 4480 PRINT "DISTANCE ="SQR(X**2+A**2) 4490 IF H8=1 THEN 4550 4500 NEXT I 4510 H8=0 4520 INPUT "DO YOU WANT TO USE THE CALCULATOR";A$ 4530 IF A$="YES" THEN 4250 4550 GOTO 1070 4560 REM *** END OF LIBRARY COMPUTER CODE 4570 R1=INT(RND(1)*8+1):R2=INT(RND(1)*8+1):A$=" ":Z1=R1:Z2=R2 4580 GOSUB 4750 4590 IF Z3=0 THEN 4570 4600 RETURN 4610 REM *** INSERTION IN STRING ARRAY FOR QUADRANT *** 4620 S8=Z1*24+Z2*3-26:IF S8>72 THEN 4650 4630 Q$=LEFT(Q$,S8-1)+A$+RIGHT(Q$,S8+3) 4640 GOTO 4690 4650 IF S8>144 THEN 4680 4660 R$=LEFT(R$,S8-73)+A$+RIGHT(R$,S8-69) 4670 GOTO 4690 4680 S$=LEFT(S$,S8-145)+A$+RIGHT(S$,S8-141) 4690 RETURN 4700 REM *** PRINTS DEVICE NAME FROM ARRAY*** 4710 S8=R1*12-11:IF S8>72 THEN 4730 4720 PRINT MID(D$,S8,11),:GOTO 4740 4730 PRINT MID(E$,S8-72,11), 4740 RETURN 4750 REM ***STRING COMPARISON IN QUADRANT ARRAY*** 4760 S8=Z1*24+Z2*3-26:Z3=0:IF S8>72 THEN 4790 4770 IF MID(Q$,S8,3)<>A$ THEN 4840 4780 Z3=1:GOTO 4840 4790 IF S8>144 THEN 4820 4800 IF MID(R$,S8-72,3)<>A$ THEN 4840 4810 Z3=1:GOTO 4840 4820 IF MID(S$,S8-144,3)<>A$ THEN 4840 4830 Z3=1 4840 RETURN 32767 I$=SYS(CHR$(6%)+CHR$(-15%)+' '+CHR$(9%)+CHR$(8%)) \ ON ERROR GOTO 0 UNLESS ERR=28% \ END ! DUMP ACCOUNTING DATA TO [8,9]. REPORT ERROR UNLESS ^C.