1 REM Ins{nd av Lennart Einarsson <6554> 1986-10-23 20.37.42 (DUMP) 10 REM SUPER STAR TREK 20 REM av Bengt H Larsson, SOLLENTUNA, <2728> 30 REM Granskad och justerad av L.Einarsson <6554> 40 RANDOMIZE 50 ; CHR$(12%) 60 FOR I%=45 TO 5 STEP -1 70 ; CUR(2,I%)' ,------*------,' 80 ; CUR(3,I%)" ,------------- '--- ------'" 90 ; CUR(4,I%)" '-------- --' / /" 100 ; CUR(5,I%)" '---' '--------/ /--'" 110 ; CUR(6,I%)" '-----------------'" 120 FOR J%=1 TO 25 : NEXT J% 130 IF I%>6 THEN FOR J%=2 TO 6 : ; CUR(J%,1)SPACE$(78) : NEXT J% 140 NEXT I% 150 ; " THE USS ENTERPRISE --- NCC-1701" : ; 160 Z$=" " 170 DIM G(8,8),C(9,2),K(3,3),N(3),Z(8,8),D(8),Q$=512 180 T=INT(RND*20%+20%)*100% : T0=T : T9=25%+INT(RND*10%) : D0=0% : E=3000% : E0=E 190 P=10 : P0=P : S9=200 : S=0 : B9=0 : K9=0 : X$="" : X0$=" IS " 200 DEFFND(D)=SQR(ABS(K(I%,1%)-S1)^2%+ABS(K(I%,2%)-S2)^2%) 210 DEFFNR(R)=INT(RND*R*7.98+1.01) 220 REM INIT. ENTERPRISE's POSITION 230 Q1=FNR(1) : Q2=FNR(1) : S1=FNR(1) : S2=FNR(1) 240 FOR I%=1% TO 9% : C(I%,1%)=0% : C(I%,2%)=0% : NEXT I% 250 C(3%,1%)=-1% : C(2%,1%)=-1% : C(4%,1%)=-1% : C(4%,2%)=-1% : C(5%,2%)=-1% : C(6%,2%)=-1% 260 C(1%,2%)=1% : C(2%,2%)=1% : C(6%,1%)=1% : C(7%,1%)=1% : C(8%,1%)=1% : C(8%,2%)=1% : C(9%,2%)=1% 270 FOR I%=1% TO 8% : D(I%)=0 : NEXT I% 280 A1$="NAVKRSLRSPHATORSKYREPDATXXX" 290 REM SETUP WHAT EXISTS IN GALAXY 300 REM K3=# KLINGONS B3=# STARBASE S3=# STARS 310 FOR I%=1% TO 8% : FOR J%=1% TO 8% : K3=0 : Z(I%,J%)=0 : R1=RND 320 IF R1>.98 THEN K3=3 : K9=K9+3 : GOTO 350 330 IF R1>.95 THEN K3=2 : K9=K9+2 : GOTO 350 340 IF R1>.8 THEN K3=1 : K9=K9+1 350 B3=0 : IF RND>.96 THEN B3=1 : B9=B9+1 360 G(I%,J%)=K3*100+B3*10+FNR(1) : NEXT J% : NEXT I% : IF K9>T9 THEN T9=K9+1 370 IF B9<>0 THEN 400 380 IF G(Q1,Q2)<200 THEN G(Q1,Q2)=G(Q1,Q2)+100 : K9=K9+1 390 B9=1 : G(Q1,Q2)=G(Q1,Q2)+10 : Q1=FNR(1) : Q2=FNR(1) 400 K7=K9 : IF B9<>1 THEN X$="ER" : X0$=" [R " 410 ; TAB(10%)"DINA ORDER [R F\LJANDE:" : ; 420 ; " F\RINTA DE";K9;" KLINGON RYMDSKEPPEN SOM HAR INVADERAT" 430 ; " GALAXEN INNAN DE KAN ATTACKERA FEDERATIONENS H\GKVARTER" 440 ; " UNDER STJ[RN]R";T0+T9;" DETTA GER DIG";T9;" STJ. ]R. D[R FINNS" 450 ; B9;" STJ[RNBAS";X$;" I GALAXEN F\R ATT F\RNYA DINA F\RR]D." 460 ; : ; " TRYCK P] VILKEN KNAPP SOM HELST UTOM RETURN F\R ATT F] KOMMANDOT"; : GET \$ 470 I=RND : IF \$=CHR$(13) THEN 50 ELSE ; CHR$(12%) 480 REM HERE ANY TIME NEW QUADRANT ENTERED 490 Z4=Q1 : Z5=Q2 : K3=0 : B3=0 : S3=0 : G5=0 : D4=.5*RND : Z(Q1,Q2)=G(Q1,Q2) 500 IF Q1<1 OR Q1>8 OR Q2<1 OR Q2>8 THEN 590 510 GOSUB 3800 : PRINT : IF T0<>T THEN 530 520 ; "I DEN GALAXISKA KVADRANTEN, '";G2$;"'." : GOTO 540 530 ; "INKOMMER I ";G2$;" KVADRANTEN . . ." 540 ; : K3=INT(G(Q1,Q2)*.01) : B3=INT(G(Q1,Q2)*.1)-10*K3 550 S3=G(Q1,Q2)-100*K3-10*B3 : IF K3=0 THEN 580 560 ; "STRIDS ZON KONDITION R\D" : IF S>200 THEN 580 570 ; " SKYDD FARLIGT L]GT" 580 FOR I%=1% TO 3% : K(I%,1%)=0 : F(I%,2%)=0 : NEXT I% 590 FOR I%=1 TO 3 : K(I%,3)=0 : NEXT I% : Q$=Z$+Z$+Z$+Z$+Z$+Z$+Z$+LEFT$(Z$,17) 600 REM POS ENTERP. IN QUQDR.,THEN PLACE "K3" KLINGONS & "B3" STARBASES & "S3" STARS ELSEWHERE. 610 A$=' @ ' : Z1=S1 : Z2=S2 : GOSUB 3590 : IF K3<1 THEN 640 620 FOR I%=1 TO K3 : GOSUB 3560 : A$=' K ' : Z1=R1 : Z2=R2 630 GOSUB 3590 : K(I%,1)=R1 : K(I%,2)=R2 : K(I%,3)=S9*(.5+RND) : NEXT I% 640 IF B3<1 THEN 660 650 GOSUB 3560 : A$=' $ ' : Z1=R1 : B4=R1 : Z2=R2 : B5=R2 : GOSUB 3590 660 FOR I%=1 TO S3 : GOSUB 3560 : A$=' * ' : Z1=R1 : Z2=R2 : GOSUB 3590 : NEXT I% 670 GOSUB 2690 680 IF S+E>10 THEN IF E>10 OR D(7)=0 THEN 740 690 ; : ; TAB(15%)'** FATALT FEL **' 700 ; : ; 'DU HAR JUST STRANDSATT DITT SKEPP I RYMDEN' 710 ; 'DU HAR OTILLR[KLIG MAN\VER ENERGI,'; 720 ; ' OCH SKYDD' : ; 'DET [R OM\JLIGT ATT F] KONTAKT MED MOTOR RUMET!!!' : GOTO 2560 730 ONERRORGOTO 770 740 ; 'KOMMANDO'; : INPUT A$ : IF LEN(A$)<3 THEN 780 750 FOR I%=1 TO 9 : IF LEFT$(A$,3)<>MID$(A1$,3*I%-2,3) THEN 770 760 ON I% GOTO 890,670,1550,1640,1850,2170,2260,2920,2580 770 NEXT I% 780 ; 'GE ETT AV F\LJANDE KOMMANDON:' 790 ; ' NAV (ATT S[TTA KURS)' 800 ; ' KRS (F\R KORT RADAR SPANING)' 810 ; ' LRS (F\R L]NG RADAR SPANING)' 820 ; ' PHA (ATT SKJUTA PHASER)' 830 ; ' TOR (ATT SKJUTA FOTON TORPED)' 840 ; ' SKY (ATT H\JA ELLER MINSKA SKYDDET)' 850 ; ' REP (F\R REPARATIONS STATUS REPORT)' 860 ; ' DAT (F\R ATT ANROPA DATORN)' 870 ; ' XXX (ATT GE UPP DITT KOMMANDO)' : ; : GOTO 680 880 REM COURSE CONTROL BEGINS HERE 890 ONERRORGOTO 730 : ; 'KURS (0-9)'; : INPUT C1 : IF C1=9 THEN C1=1 900 IF C1>=1 AND C1<9 THEN 920 910 ; 'LT. SULU RAPPORTERAR: Fel kurs data, SIR!' : GOTO 680 920 X$='8' : IF D(1%)<0 THEN X$='0.2' 930 ; 'WARP FAKTOR (0-';X$;')'; : INPUT W1 : IF D(1)<0 AND W1>.2 THEN 980 940 IF W1>0 AND W1<=8 THEN 990 950 IF W1=0 THEN 680 960 ; 'MOTOR CHEF SCOTT RAPPORTERAR:' 970 ; "The engines won't take warp ";W1;'!' : GOTO 680 980 ; 'Warp motorerna {r skadade.' : ; 'MAX FART = WARP 0.2' : GOTO 680 990 N=INT(W1*8+.5) : IF E-N>=0 THEN 1050 1000 ; 'MOTORRUMMET RAPPORTERAR:' : ; 'Otillr{klig energi f|r man|vrering vid warp';W1;'!' 1010 IF S=0 THEN 1130 1100 D(I%)=D(I%)+D6 : IF D(I%)>-.1 AND D(I%)<0 THEN D(I%)=-.1 : GOTO 1130 1110 IF D(I%)=0 THEN 1130 1120 IF D(I%)>0 ; : ; : ; : ; 'SKADE RAPPORT:' : R1=I% : GOSUB 3650 : ; G2$;' Reperationer klara.' 1130 NEXT I% : IF RND>.2 THEN 1200 1140 R1=FNR(1) : IF RND>=.6 THEN 1170 1150 D(R1)=D(R1)-(RND*5+1) : ; : ; : ; 'SKADE RAPPORT:' 1160 GOSUB 3650 : ; G2$;' SKADAT' : ; : GOTO 1200 1170 D(R1)=D(R1)+RND*3+1 : ; : ; : ; 'SKADE RAPPORT:' 1180 GOSUB 3650 : ; G2$;' Reperationerna forts{tter.' : ; 1190 REM BEGIN TO MOVE STARSHIP 1200 A$=' ' : Z1=INT(S1) : Z2=INT(S2) : GOSUB 3590 1210 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) : X=S1 : Y=S2 1220 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) : Q4=Q1 : Q5=Q2 1230 FOR I%=1 TO N : S1=S1+X1 : S2=S2+X2 : IF S1<1 OR S1>=9 OR S2<1 OR S2>=9 THEN 1340 1240 S8=INT(S1)*24+INT(S2)*3-26 : IF MID$(Q$,S8,2)=' ' THEN 1270 1250 S1=INT(S1-X1) : S2=INT(S2-X2) : ; 'WARP MOTORERNA AVST[NGDA I '; 1260 ; 'SEKTOR';S1;',';S2;' P.G.A. USEL NAVIGATION' : GOTO 1280 1270 NEXT I% : S1=INT(S1) : S2=INT(S2) 1280 A$=' @ ' : Z1=INT(S1) : Z2=INT(S2) : GOSUB 3590 : GOSUB 1500 : T8=1 1290 IF W1<1 THEN T8=.1*INT(10*W1) 1300 T=T+T8 : IF T>T0+T9 THEN 2560 1310 REM SEE IF DOCKED, THEN GET COMMAND 1320 GOTO 670 1330 REM EXCEEDED QUADRANT LIMITS 1340 X=8*Q1+X+N*X1 : Y=8*Q2+Y+N*X2 : Q1=INT(X/8) : Q2=INT(Y/8) : S1=INT(X-Q1*8) 1350 S2=INT(Y-Q2*8) : IF S1=0 THEN Q1=Q1-1 : S1=8 1360 IF S2=0 THEN Q2=Q2-1 : S2=8 1370 X5=0 : IF Q1<1 THEN X5=1 : Q1=1 : S1=1 1380 IF Q1>8 THEN X5=1 : Q1=8 : S1=8 1390 IF Q2<1 THEN X5=1 : Q2=1 : S2=1 1400 IF Q2>8 THEN X5=1 : Q2=8 : S2=8 1410 IF X5=0 THEN 1470 1420 ; 'LT. UHURA RAPPORTERAR MEDDELANDE FR]N STJ[RNFLOTTS KOMMANDOT:' 1430 ; 'Ni har ej tillst}nd att korsa galaxen NEKAS. St{ng av motorerna.' 1440 ; 'MOTOR CHEF SCOTT RAPPORTERAR:' 1450 ; 'Warp motorerna avs{ngda i sektor';S1;',';S2;' i kvadrant';Q1;',';Q2;'.' 1460 IF T>T0+T9 THEN 2560 1470 IF 8*Q1+Q2=8*Q4+Q5 THEN 1280 1480 T=T+1 : GOSUB 1500 : GOTO 490 1490 REM MANEUVER ENERGY S/R** 1500 E=E-N-10 : IF E>=0 THEN RETURN 1510 ; 'SKYDDSRUMMET AVDELAR ENERGI F\R ATT M\JLIGG\RA MAN\VERN.' 1520 S=S+E : E=0 : IF S<=0 THEN S=0 1530 RETURN 1540 REM LONG RANGE SNSOR SCAN CODE 1550 IF D(3)<0 THEN ; 'L]NG-RADARN [R UR FUNKTION' : GOTO 680 1560 ; 'L]NG RADAR BILD F\R KVADRANT';Q1;',';Q2 1570 O1$='--------------------' : ; O1$ 1580 FOR I%=Q1-1 TO Q1+1 : N(1)=-1 : N(2)=-2 : N(3)=-3 : FOR J%=Q2-1 TO Q2+1 1590 IF I%>0 AND I%<9 AND J%>0 AND J%<9 THEN N(J%-Q2+2)=G(I%,J%) : Z(I%,J%)=G(I%,J%) 1600 NEXT J% : FOR L%=1 TO 3 : ; ': '; : IF N(L%)<0 THEN ; '*** '; : GOTO 1620 1610 ; RIGHT$(NUM$(N(L%)+1000),3);' '; 1620 NEXT L% : ; ':' : ; O1$ : NEXT I% : GOTO 680 1630 REM PHASER CONTROL CODE 1640 IF D(4)<0 THEN ; 'PHASER UR FUNKTION' : GOTO 680 1650 IF K3>0 THEN 1680 1660 ; 'VETENSKAPS OFFICER SPOCK RAPPORTERAR:' 1670 ; 'Radarn visar inga fiende skepp i denna kvadrant.' : GOTO 680 1680 IF D(8)<0 THEN ; 'DATOR FEL MINSKAR PRECISIONEN.' 1690 ; 'PHASER L]ST P] M]LET; '; 1700 ; 'TILLG[NGLIG ENERGI =';E;' ENHETER' 1710 ONERRORGOTO 730 : ; 'ANTAL ENHETER ATT SKJUTA'; : INPUT X : IF X<=0 THEN 680 1720 IF E-X<0 THEN 1700 1730 E=E-X : IF D(7)<0 THEN X=X*RND 1740 H1=INT(X/K3) : FOR I%=1 TO 3 : IF K(I%,3)<=0 THEN 1830 1750 H=INT((H1/FND(0))*(RND+2)) : IF H>.15*K(I%,3) THEN 1770 1760 ; 'RADARN VISAR INGEN SKADA P] FIENDEN I ';K(I%,1);',';K(I%,2) : GOTO 1830 1770 K(I%,3)=K(I%,3)-H : OUT 6,0 : OUT 6,197 : ; H;' ENHETER TR[FFADE KLINGON I SEKTOR';K(I%,1);','; 1780 FOR W=0 TO 100 : NEXT W 1790 OUT 6,0 : ; K(I%,2) : IF K(I%,3)<=0 THEN ; '*** KLINGON F\RINTAD ***' : OUT 6,137 : GOTO 1810 1800 ; ' (RADARN VISAR';K(I%,3);' ENHETER KVAR)' : GOTO 1830 1810 K3=K3-1 : K9=K9-1 : Z1=K(I%,2) : A$=' ' : GOSUB 3590 1820 K(I%,3)=0 : G(Q1,Q2)=G(Q1,Q2)-100 : Z(Q1,Q2)=G(Q1,Q2) : IF K9<=0 THEN 2650 1830 NEXT I% : GOSUB 2420 : GOTO 680 1840 REM PHOTON TORPEDO CODE 1850 IF P<=0 THEN ; 'Alla foton torpeder {r slut' : GOTO 680 1860 IF D(5)<0 THEN ; 'Torpedtuberna {r ur funktion' : GOTO 680 1870 ONERRORGOTO 730 1880 ; : ; 'FOTON TORPED KURS (1-9)'; : INPUT C1 : IF C1=9 THEN C1=1 1890 IF C1>=1 AND C1<9 THEN 1920 1900 ; 'H\GMAN CHEKOV RAPPORTERAR: Fel kurs, SIR!' 1910 GOTO 680 1920 X1=C(C1,1)+(C(C1+1,1)-C(C1,1))*(C1-INT(C1)) : E=E-2 : P=P-1 1930 X2=C(C1,2)+(C(C1+1,2)-C(C1,2))*(C1-INT(C1)) : X=S1 : Y=S2 1940 ; 'TORPED SP]R:' 1950 X=X+X1 : Y=Y+X2 : X3=INT(X+.5) : Y3=INT(Y+.5) 1960 IF X3<1 OR X3>8 OR Y3<1 OR Y3>8 THEN 2150 1970 ; ' -->';X3;',';Y3; : A$=' ' : Z1=X : Z2=Y : GOSUB 3750 1980 IF Z3<>0 THEN 1950 1990 A$=' K ' : Z1=X : Z2=Y : GOSUB 3750 : IF Z3=0 THEN 2040 2000 OUT 6,0 : ; ' *** KLINGON F\RINTAD ***' : OUT 6,137 : K3=K3-1 : K9=K9-1 : IF K9<=0 THEN 2650 2010 FOR I%=1 TO 3 : IF X3=K(I%,1) AND Y3=K(I%,2) THEN 2030 2020 NEXT I% : I%=3 2030 K(I%,3)=0 : GOTO 2130 2040 A$=' * ' : Z1=X : Z2=Y : GOSUB 3750 : IF Z3=0 THEN 2060 2050 ; ' Stj{rna i';X3;',';Y3;' absorberade torped energin.' : GOSUB 2420 : GOTO 680 2060 A$=' $ ' : Z1=X : Z2=Y : GOSUB 3750 : IF Z3=0 THEN 1880 2070 ; ' *** STJ[RNBASEN F\RINTAD ***' : B3=B3-1 : B9=B9-1 2080 IF B9>=0 OR K9>T-T0-T9 THEN 2120 2090 ; 'N U F ] R D E T V A R A N O G K A P T E N !' : ; ' DU [R FR]N NU FR]NTAGEN KOMMANDOT.' 2100 ; 'OCH D\MD TILL 99 STJ[RN]RS H]RT ARBETE P] CYGNUS 12!!!' 2110 GOTO 2580 2120 ; 'STJ[RNKOMMANDOT KOMMER ATT SKAFFA MATERIAL F\R R[TTEG]NG!' : D0=0 2130 Z1=X : Z2=Y : A$=' ' : GOSUB 3590 2140 G(Q1,Q2)=K3*100+B3*10+S3 : Z(Q1,Q2)=G(Q1,Q2) : GOSUB 2420 : GOTO 680 2150 ; ' TORPEDEN MISSADE!' : GOSUB 2420 : GOTO 680 2160 REM SHIELD CONTROL 2170 IF D(7)<0 THEN ; 'SKYDDSRUMMET UR FUNKTION' : GOTO 680 2180 ONERRORGOTO 730 : ; 'Tillg{nglig energi:';E+S : ; 'Antal enheter f|r skydd:'; : INPUT X 2190 IF X<=0 OR S=X THEN ; '' : GOTO 680 2200 IF X<=E+S THEN 2230 2210 ; 'SKYDDSRUMMET RAPPORTERAR: Detta {r inte riksbanken.' 2220 ; '' : GOTO 680 2230 E=E+S-X : S=X : ; 'DEFLEKTOR RUMMET RAPPORTERAR:' 2240 ; 'Skyddet nu';INT(S);' enheter enl. order.' : GOTO 680 2250 REM DAMAGE CONTROL 2260 IF D(6)>=0 THEN 2370 2270 ; 'SKADE RAPPORT EJ TILLG[NGLIG' : IF D0=0 THEN 680 2280 D3=0 : FOR I%=1 TO 8 : IF D(I%)<0 THEN D3=D3+.1 2290 NEXT I% : IF D3=0 THEN 680 2300 D3=D3+D4 : IF D3>=1 THEN D3=.9 2310 ; 'TEKNIKERNA [R KLARA ATT B\RJA REPARERA SKEPPET;' 2320 ; 'Bed|md reperationstid:';.01*INT(100*D3);' stj{rn}r' 2330 ; 'F}r vi tillst}nd att reparera (J)'; : INPUT A$ 2340 IF A$='N' THEN 680 2350 FOR I%=1 TO 8 : IF D(I%)<0 THEN D(I%)=0 2360 NEXT I% : T=T+D3+.1 2370 ; : ; 'ENHET REPARATIONS STATUS' : FOR R1=1 TO 8 2380 GOSUB 3650 : ; G2$;LEFT$(Z$,25-LEN(G2$));INT(D(R1)*100)*.01 2390 NEXT R1 : ; : IF D0<>0 THEN 2280 2400 GOTO 680 2410 REM KLINGONS SHOOTING 2420 IF K3=0 THEN RETURN 2430 IF D0<>0 THEN ; 'STJ[RNBASEN SKYDDAR ENTERPRISE' : RETURN 2440 FOR I%=1 TO 3 : IF K(I%,3)<=0 THEN 2540 2450 H=INT((K(I%,3)/FND(1))*(2*RND)) : S=S-H 2460 K(I%,3)=K(I%,3)/(3+RND) 2470 OUT 6,0 : OUT 6,197 : ; H;' enheter tr{ffade ENTERPRISE fr}n sektor';K(I%,1);',';K(I%,2) 2480 FOR W=0 TO 100 : NEXT W 2490 OUT 6,0 : IF S<=0 THEN 2570 2500 ; 'SKYDDET NERE I';S;' ENHETER' : IF H<20 THEN 2540 2510 IF RND>.6 OR H/S<=.02 THEN 2540 2520 R1=FNR(1) : D(R1)=D(R1)-H/S-.5*RND : GOSUB 3650 2530 ; : ; : ; 'SKADERUMMET PAPPORTERAR: ';G2$;' skadad av tr{ff' 2540 NEXT I% : RETURN 2550 REM END OF GAME *************** 2560 ; 'Det {r stj{rn}r';T : GOTO 2580 2570 ; : ; 'Enterprise har blivit f|rintad. FEDERATIONEN kommer att er|vras' 2580 ; 'D{r fanns';K9;' KLINGON slagskepp kvar vid slutet av ditt uppdrag' 2590 ; : ; : IF B9=0 THEN 2640 2600 ; 'FEDERATIONEN beh|ver en NY rymdskepps kommend|r' 2610 ; 'f|r ett liknande uppdrag -- om d{r finns en frivillig,' 2620 ; 'l}t honom kliva fram och svara "AYE"'; : INPUT A$ : IF A$='AYE' THEN 10 ELSE 2640 2630 ; 'Kommer att er|vras' : GOTO 2560 2640 END : REM CHAIN "MENY" 2650 ; 'Gratulerar, kapten! Det sista Klingon slagskeppet som hotade FEDERATIONEN' 2660 ; 'har f|rintats.' : ; 2670 ; 'Din effektivetets plats {r';1000*(K7/(T-T0))^2 : GOTO 2590 2680 REM SHORT RANGE SENSOR SCAN & STARTUP ROUTINE 2690 FOR I%=S1-1 TO S1+1 : FOR J%=S2-1 TO S2+1 2700 IF I%<1 OR I%>8 OR J%<1 OR J%>8 THEN 2720 2710 A$=' $ ' : Z1=I% : Z2=J% : GOSUB 3750 : IF Z3=1 THEN 2730 2720 NEXT J% : NEXT I% : D0=0 : GOTO 2750 2730 D0=1 : C$='DOCKAD' : E=E0 : P=P0 2740 ; 'Skyddet minskat f|r docknings {ndam}l' : S=0 : GOTO 2770 2750 IF K3>0 THEN C$='*R\D*' : OUT 6,43 : GOTO 2770 2760 C$='GR\N' : IF E=0 THEN 2790 2780 ; : ; '*** KORT-RADARN TRASIG ***' : ; : RETURN 2790 O1$=STRING$(26,45) : ; O1$ : FOR I%=1 TO 8 : ; I%; 2800 FOR J%=(I%-1)*24+1 TO (I%-1)*24+22 STEP 3 : ; MID$(Q$,J%,3); : NEXT J% 2810 ON I% GOTO 2820,2830,2840,2850,2860,2870,2880,2890 2820 ; TAB(40);' STJ[RN]R ';INT(T*10)*.1 : GOTO 2900 2830 ; TAB(40);' KONDITION ';C$ : GOTO 2900 2840 ; TAB(40);' KVADRANT ';Q1;',';Q2 : GOTO 2900 2850 ; TAB(40);' SEKTOR ';S1;',';S2 : GOTO 2900 2860 ; TAB(40);' FOTON TORPEDER ';INT(P) : GOTO 2900 2870 ; TAB(40);' TOTAL ENERGI ';INT(E+S) : GOTO 2900 2880 ; TAB(40);' SKYDD ';INT(S) : GOTO 2900 2890 ; TAB(40);' KLINGONS KVAR ';INT(K9) 2900 NEXT I% : ; O1$ : ; ' 1 2 3 4 5 6 7 8' : RETURN 2910 REM LIBRARY COMPUTER CODE 2920 IF D(8)<0 THEN ; 'DATOR UR FUNKTION' : GOTO 680 2930 GOTO 2960 2940 ; 'DATORN AKTIV & V[NTAR KOMMANDO'; : INPUT A : IF A<0 THEN 680 2950 ; : H8=1 : ON A+1 GOTO 3050,3190,3280,3530,3330,3040 2960 ; 'M\JLIGA TJ[NSTER FR]N DATORN:' 2970 ; ' 0 = Kumulativ galaxisk loggbok' 2980 ; ' 1 = Status rapport' 2990 ; ' 2 = Foton torped data' 3000 ; ' 3 = Stj{rnbas nav. data' 3010 ; ' 4 = Riktning/avst}nds ber{kning' 3020 ; ' 5 = Galax zon namns karta' : ; : GOTO 2940 3030 REM SETUP TO CHANGE CUM GAL REC TO GAL MAP 3040 H8=0 : G5=1 : ; SPACE$(24);'THE GALAXY' : GOTO 3090 3050 GOTO 3090 3060 ; : ; ' '; 3070 ; 'DATOR LOGGBOK AV GALAXEN F\R KVADRANT';Q1;',';Q2 3080 ; 3090 ; ' 1 2 3 4 5 6 7 8' 3100 O1$=' ----- ----- ----- ----- ----- ----- ----- -----' 3110 ; O1$ : FOR I%=1 TO 8 : ; I%; : IF H8=0 THEN 3150 3120 FOR J%=1 TO 8 : ; ' '; : IF Z(I%,J%)=0 THEN ; '***'; : GOTO 3140 3130 ; RIGHT$(NUM$(Z(I%,J%)+1000),3); 3140 NEXT J% : GOTO 3170 3150 Z4=I% : Z5=1 : GOSUB 3800 : J0=INT(15-.5*LEN(G2$)) : ; TAB(J0);G2$; 3160 Z5=5 : GOSUB 3800 : J0=INT(39-.5*LEN(G2$)) : ; TAB(J0);G2$; 3170 ; : ; O1$ : NEXT I% : ; : GOTO 680 3180 REM STATUS REPORT 3190 ; ' STATUS RAPPORT:' 3200 ; 'KLINGON KVAR: ';K9 3210 ; 'Uppdraget m}ste slutf|ras p}';.1*INT((T0+T9-T)*10);' stj{rn}r' 3220 X$='er' : IF B9<2 THEN X$='' : IF B9<1 THEN 3250 3230 ; 'FEDERATIONEN har';B9;' stj{rnbas';X$;' i galaxen' 3240 GOTO 2260 3250 ; 'DIN DUMMHET HAR L[MNAT DIG P] EGEN HAND I GALAXEN' 3260 ; ' -- DU HAR INGEN STJ[RNBAS KVAR!' : GOTO 2260 3270 REM TORPEDO, BAS NAV,D/D CALCULATOR 3280 IF K3<=0 THEN 1660 3290 ; 'FR]N ENTERPRISE TILL KLINGON RYMDSKEPP' 3300 H8=0 : FOR I%=1 TO 3 : IF K(I%,3)<=0 THEN 3520 3310 W1=K(I%,1) : X=K(I%,2) 3320 C1=S1 : A=S2 : GOTO 3370 3330 ; 'RIKTNING/AVST]NDS KALKYL:' 3340 ; 'Du {r i kvadrant ';Q1;',';Q2;' sektor ';S1;',';S2 3350 ; 'Ge start koordinaterna (X,Y)' 3360 INPUT C1,A : ; 'Slut koordinaterna (X,Y): '; : INPUT W1,X 3370 X=X-A : A=C1-W1 : IF X<0 THEN 3450 3380 IF A<0 THEN 3470 3390 IF X>0 THEN 3410 3400 IF A=0 THEN C1=5 ELSE C1=1 3410 REM 3420 IF ABS(A)<=ABS(X) THEN 3440 3430 ; 'RIKTNING =';C1+(((ABS(A)-ABS(X))+ABS(A))/ABS(A)) : GOTO 3510 3440 ; 'RIKTNING =';C1+(ABS(A)/ABS(X)) : GOTO 3510 3450 IF A>0 THEN C1=3 : GOTO 3480 3460 IF X<>0 THEN C1=5 : GOTO 3420 3470 C1=7 3480 IF ABS(A)>=ABS(X) THEN 3500 3490 ; 'RIKTNING = ';C1+(((ABS(X)-ABS(A))+ABS(X))/ABS(X)) : GOTO 3510 3500 ; 'RIKTNING = ';C1+(ABS(X)/ABS(A)) 3510 ; 'AVST]ND = ';(ABS(X)^2%+ABS(A)^2%)^.5 : ; : IF H8=1 THEN 680 3520 NEXT I% : GOTO 680 3530 IF B3<>0 THEN ; 'FR]N ENTERPRISE TILL STJ[RNBAS:' : W1=B4 : X=B5 : GOTO 3320 3540 ; 'Mr. SPOCK RAPPORTERAR: Radarn visar ingen stj{rnbas i denna kvadrant.' : GOTO 680 3550 REM FIND EMPTY PLACE IN QUQDRANT 3560 R1=FNR(1) : R2=FNR(1) : A$=' ' : Z1=R1 : Z2=R2 : GOSUB 3750 : IF Z3=0 THEN 3560 3570 RETURN 3580 REM INSERT IN ASTRING FOR QUADR. 3590 S8=INT(Z2-.5)*3+INT(Z1-.5)*24+1 3600 IF LEN(A$)<>3 THEN PRINT 'ERROR 8675' : STOP 3610 IF S8=1 THEN Q$=A$+RIGHT$(Q$,4) : RETURN 3620 IF S8=190 THEN Q$=LEFT$(Q$,189)+A$ : RETURN 3630 Q$=LEFT$(Q$,S8-1)+A$+RIGHT$(Q$,S8+3) : RETURN 3640 REM PRINT DEVICE NAMES 3650 ON R1 GOTO 3660,3670,3680,3690,3700,3710,3720,3730 3660 G2$='WARP MOTORER' : RETURN 3670 G2$='KORT RADAR ANTENN' : RETURN 3680 G2$='L]NG RADAR ANTENN' : RETURN 3690 G2$='PHASER STYRNING' : RETURN 3700 G2$='FOTON TUBER' : RETURN 3710 G2$='SKADE RUMMET' : RETURN 3720 G2$='SKYDDS RUMMET' : RETURN 3730 G2$='DATORN (ABC80)' : RETURN 3740 REM STRING COMPAIR IN QUAD. ARRAY 3750 Z1=INT(Z1+.5) : Z2=INT(Z2+.5) : S8=(Z2-1)*3+(Z1-1)*24+1 : Z3=0 3760 IF MID$(Q$,S8,3)<>A$ THEN RETURN 3770 Z3=1 : RETURN 3780 REM QUADR. NAME IN G2$ FROM Z4,Z5 (=Q1,Q2) 3790 REM CALL WITH G5=1 TO GET REGION NAME ONLY 3800 IF Z5<=4 THEN ON Z4 GOTO 3820,3830,3840,3850,3860,3870,3880,3890 3810 GOTO 3900 3820 G2$='ANTARES' : GOTO 3990 3830 G2$='RIGEL' : GOTO 3990 3840 G2$='PROCYON' : GOTO 3990 3850 G2$='VEGA' : GOTO 3990 3860 G2$='CANOPUS' : GOTO 3990 3870 G2$='ALTAIR' : GOTO 3990 3880 G2$='SAGITTARIUS' : GOTO 3990 3890 G2$='POLLUX' : GOTO 3990 3900 ON Z4 GOTO 3910,3920,3930,3940,3950,3960,3970,3980 3910 G2$='SIRIUS' : GOTO 3990 3920 G2$='DENEB' : GOTO 3990 3930 G2$='CAPELLA' : GOTO 3990 3940 G2$='BETELGEUSE' : GOTO 3990 3950 G2$='ALDEBARAN' : GOTO 3990 3960 G2$='REGULUS' : GOTO 3990 3970 G2$='ARCTURUS' : GOTO 3990 3980 G2$='SPICA' : GOTO 3990 3990 IF G5<>1 THEN ON Z5 GOTO 4010,4020,4030,4040,4010,4020,4030,4040 4000 RETURN 4010 G2$=G2$+' I' : RETURN 4020 G2$=G2$+' II' : RETURN 4030 G2$=G2$+' III' : RETURN 4040 G2$=G2$+' IV' : RETURN 4050 REM ARK *** EOF ****