Starship Commander
Emulation Item Preview
Share or Embed This Item
Notes
Disk info for Starship_Commander_1981_Voyager.do:
File Name: a2_Starship_Commander_1981_Voyager/Starship_Commander_1981_Voyager.do
Disk Name: DISK VOLUME #254
Physical Size (bytes): 143360
Free Space (bytes): 256
Used Space (bytes): 143104
Physical Size (KB): 140
Free Space (KB): 0
Used Space (KB): 139
Archive Order: DOS
Disk Format: DOS 3.3
Total Sectors: 560
Free Sectors: 1
Used Sectors: 559
Tracks On Disk: 35
Sectors On Disk: 16
Disk directory for Starship_Commander_1981_Voyager.do:
a2_Starship_Commander_1981_Voyager/Starship_Commander_1981_Voyager.do DISK VOLUME #254
A 002 HELLO
A 038 N
A 037 ENG
A 033 INFO1
A 029 DEFENSE
A 033 WEAPONS
A 030 TARGET
A 026 INFO2
A 026 COMMUNICATION
A 017 DAMAGE
A 016 SCIENCE
* B 003 CHAIN
A 037 LIFE
A 008 WEAPONSC
A 005 ENGINEER
A 006 NAV
A 009 MAIN MENU
A 005 LIFESC
* T 007 CREW
A 004 START
A 010 DIM
A 013 BYE
A 013 STORE DATA
A 012 GET DATA
* B 005 SMALL.SET
* B 002 SUBROUTINES
A 020 ENTER
A 008 INTRO
* B 005 COLOSSAL.SET
B 005 SHADOW.SET
* B 005 SHIP1 SHAPE
* B 010 SHIP2 SHAPE
* B 010 H
* B 005 WORD.SET
T 001 STARSHIP DATA
DOS 3.3 format; 256 bytes free; 143,104 bytes used.
Text found in Starship_Commander_1981_Voyager.do/BYE.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
30 POKE 2072,85: POKE 2073,42: CALL 2074: VTAB (2): HTAB (5): PRINT VA$4VK$VN$;" STARSHIP COMMANDER EVALUATION "
130 GOSUB 39000: PRINT VP$;
600 FOR Z = 1 TO 12: READ W$(Z): NEXT Z
1000 D = 0: GOSUB 20000: IF EG = 1 THEN D = 1000 +D: GOSUB 21000
1020 IF EG = 2 OR EG = 4 THEN D = 3000 +D: GOSUB 21000
1030 IF EG = 3 THEN D = 8000 +D: GOSUB 21000
1040 IF EG = -2 THEN D = CM(0,0) *10
1043 IF EG = 4 THEN D = D +DA *40
1045 IF EG >0 AND CM(0,0) >30 THEN D = D +2000
1050 Y4 = (D -2000)/3000:Y3 = 3 - INT((Y4 - INT(Y4)) *3):Y4 = INT(Y4)
1080 IF Y4 <1 THEN Y4 = 1:Y3 = 3
1090 IF Y4 >12 THEN Y4 = 12:Y3 = 1
1094 HCOLOR= 0
1095 ON Y4 GOSUB 25100,25200,25300,25400,25500,25600,25700,25800,25900,26000,26100,26200
1100 VTAB (10): HTAB (4): PRINT VA$4VI$VK$"YOUR RANK IS ";W$(Y4): PRINT TAB( 17);"CLASS ";Y3: VTAB (15): HTAB (4): PRINT "YOUR SCORE IS " INT(D)" POINTS"
1110 VTAB (20): HTAB (6): PRINT "PRESS BUTTON FOR A NEW GAME":Y = 5:Z = 1:Z(1) = 20: GOSUB 41000
1120 PRINT VA$0VK$VN$: PRINT CHR$(4)"RUN INTRO"
9999 GOTO 9999
20000 FOR Z = 1 TO F1: IF K(Z) = 0 AND VR(Z) = 0 THEN D = D +KT(Z) *1500 +7000: GOTO 20050
20030 D = D +(MK(Z,0) -KP(Z,0))/2.5 +(200 -KC(Z)) *5
20040 IF VR(Z) = 1 THEN D = D +KT(Z) *500
20050 NEXT Z: RETURN
21000 FOR Z = 1 TO 15:D = D +EN(Z)/3: IF Z <13 AND D(Z) = 0 THEN D = D +40
21030 NEXT Z
21035 IF CM(0,0) = 0 THEN 21090
21040 FOR Z = 1 TO 4
21050 FOR Z1 = 1 TO 3
21060 D = D +CE(Z,Z1) *7 *CM(Z,Z1) +CO(Z,Z1) *2
21070 NEXT Z1
21080 NEXT Z
21090 RETURN
25100 HPLOT 135,40 TO 155,40 TO 155,50 TO 135,50 TO 135,40: RETURN
25200 X = 125: GOSUB 26300: RETURN
25300 X = 108: GOSUB 26300:X = 142: GOSUB 26300: RETURN
25400 X = 110: GOSUB 26300:X = 140: GOSUB 26300: HPLOT 125,45 TO 155,45: RETURN
25500 GOSUB 25400: HPLOT 125,45 TO 140,30 TO 155,45: RETURN
25600 GOSUB 25500: HPLOT 111,65 TO 169,65 TO 169,68 TO 111,68 TO 111,65: RETURN
25700 X = 133: GOSUB 26400: RETURN
25800 X = 120: GOSUB 26400:X = 143: GOSUB 26400: RETURN
25900 X = 115: GOSUB 26400:X = 133: GOSUB 26400:X = 151: GOSUB 26400: RETURN
26000 X = 105: GOSUB 26400:X = 121: GOSUB 26400:X = 139: GOSUB 26400:X = 157: GOSUB 26400: RETURN
26100 X = 133: GOSUB 26400: HPLOT 130,38 TO 130,25 TO 110,38 TO 130,38: HPLOT 150,38 TO 150,25 TO 170,38 TO 150,38: RETURN
26200 X = 134: GOSUB 26400: HPLOT 140,35 TO 150,64 TO 130,64 TO 140,35: HPLOT 120,45 TO 130,64 TO 130,60 TO 120,45: HPLOT 150,60 TO 160,45 TO 150,64 TO 150,60: RETURN
26300 HPLOT X,60 TO X +15,45 TO X +30,60 TO X,60: RETURN
26400 HPLOT X,38 TO X +7,25 TO X +13,38 TO X -2,30 TO X +16,30 TO X,38: RETURN
37000 PRINT VY$: VTAB (22): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;VA$4VI$: RETURN
38000 PRINT VY$: VTAB (23): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;: RETURN
39000 GOSUB 38000: PRINT VA$4VI$VK$;VP$;: RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (20): HTAB (6): PRINT VA$1VK$"L";: HTAB (34): PRINT "M":X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (20): HTAB (6): PRINT " ";: HTAB (34): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 45000: PRINT VA$4VK$VI$;: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
50000 DATA CREWPERSON , ENSIGN , LIEUTENANT , LIEUTENANT COMMANDER , COMMANDER , CAPTAIN , COMMODORE , REAR ADMIRAL ,VICE ADMIRAL , ADMIRAL , SECTOR ADMIRAL , FLEET ADMIRAL
Text found in Starship_Commander_1981_Voyager.do/CHAIN.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 20 85 03 20 A6 03 A9 07 85 8F A5 69 A6 6A 85 9D .. &.). ..%i&j..
$000010 86 9E E4 6C D0 04 C5 6B F0 05 20 7E 02 F0 F3 85 ..dlP.Ek p. ~.ps.
$000020 9F 86 A0 A9 03 85 8F A5 9F A6 A0 E4 6E D0 07 C5 .. )...% .& dnP.E
$000030 6D D0 03 4C E0 02 85 9D 86 9E A0 00 B1 9D AA C8 mP.L`... .. .1.*H
$000040 B1 9D 08 C8 B1 9D 65 9F 85 9F C8 B1 9D 65 A0 85 1..H1.e. ..H1.e .
$000050 A0 28 10 D3 8A 30 D0 C8 B1 9D A0 00 0A 69 05 65 (.S.0PH 1. ..i.e
$000060 9D 85 9D 90 02 E6 9E A6 9E E4 A0 D0 04 C5 9F F0 .....f.& .d P.E.p
$000070 BA 20 88 02 F0 F3 B1 9D 30 46 C8 B1 9D 10 41 C8 : ..ps1. 0FH1..AH
$000080 B1 9D F0 3C C8 B1 9D AA C8 B1 9D 85 9C 86 9B C5 1.p5!.<5
$000160 69 95 42 CA F0 EF A0 00 20 2C FE 6C AE 03 18 B5 i.BJpo . ,~l...5
$000170 00 65 9D 95 71 E8 B5 00 65 9E 95 71 60 AD 00 E0 .e..qh5. e..q`-.`
$000180 A0 0B C9 4C F0 02 A0 17 A2 0B B9 B8 03 9D AC 03 .ILp. . ".98..,.
$000190 88 CA 10 F6 60 6C AC 03 6C B2 03 6C B0 03 6C B4 .J.v`l,. l2.l0.l4
$0001A0 03 6C B6 03 00 00 00 00 00 00 00 00 00 00 00 00 .l6..... ........
$0001B0 65 D6 D2 D7 FB DA 5C DB 84 E4 9A D3 65 0E D4 0F eVRW{Z\[ .d.Se.T.
$0001C0 FC 12 5F 13 7B 1C 9A 0B .. .. .. .. .. .. .. .. |._.{...
** END **
Text found in Starship_Commander_1981_Voyager.do/COMMUNICATION.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
30 K$(4) = "CAPTAIN":CX(1) = 1
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: PRINT VA$0VY$VN$VK$:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOSUB 50000: GOSUB 10000
9999 GOTO 9999
10000 Y = 29:Z(1) = 4:Z(2) = 6:Z(3) = 8:Z(4) = 11:Z = 4: GOSUB 41000:CO = X
10005 IF CO = 4 THEN GOSUB 16000
10010 IF EN(14) > = 40 AND AL(14) > = 40 THEN EN(14) = EN(14) -40:AL(14) = AL(14) -40: GOTO 10090
10020 GOSUB 38000: GOSUB 39000: GOSUB 39300:Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "WE DO NOT HAVE ENOUGH POWER TO TRANSMIT!": GOSUB 47000: GOTO 10000
10090 IF (KC(1) >0 AND K(1)) OR (KC(2) >0 AND K(2)) OR (KC(3) >0 AND K(3)) THEN 10900
10100 GOSUB 38000: GOSUB 39000: GOSUB 39300:Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "ALL CHANNELS ARE OPEN, BUT THERE IS NO RESPONSE TO OUR HAILING REQUEST.": GOSUB 47000: GOTO 10000
10900 ON CO GOSUB 20000,21000,22000,16000: GOTO 10000
16000 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z1$(Z) = "":Z$(Z) = "": NEXT Z:Z$ = "":Z1$ = "": PRINT VA$0VN$VK$: PRINT VY$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
16050 GOTO 16050
20000 REM
20010 GOSUB 38000: GOSUB 39000: GOSUB 39300:Z1$ = K$(4) +":": GOSUB 47000:Z1$ = "LIEUTENT, OPEN A CHANNEL TO THE VEGANS. USE CHANNEL 7.": GOSUB 47000: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "CHANNEL IS OPEN.": GOSUB 47000
20080 PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39500:Z1$ = K$(4) +":": GOSUB 47000:Z1$ = "THIS IS THE CAPTAIN OF THE STARSHIP RANGER.": GOSUB 47000:Z1$ = "WE WILL SELF-DESTRUCT IN 1 MINUTE.": GOSUB 47000
20110 Z1$ = "ALL SHIPS ARE TO REMAIN CLEAR OF THIS AREA.": GOSUB 47000:Z1$ = "CAPTAIN OUT.": GOSUB 47000: FOR Z = 1 TO 1000: NEXT Z: GOSUB 39000: GOSUB 39300: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000: ON CB GOSUB 20200,20400,20600,20700,20800,20900:B1 = 1
20115 RETURN
20135 GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39500:Z1$ = K$(4) +":": GOSUB 47000:Z1$ = "THIS IS THE CAPTAIN OF THE USS RANGER. WILL YOU ACCEPT OUR UNCONDITIONAL SURRENDER?": GOSUB 47000: FOR Z = 1 TO 1000: NEXT Z: ON FF GOSUB 21200,21400:F1 = 1
20190 RETURN
20200 Z1$ = "THERE'S NO RESPONSE FROM THE VEGANS. IT SEEMS THAT THEY HAVE CALLED YOUR BLUFF.": GOSUB 47000: RETURN
20400 Z1$ = "WE ARE RECEIVING A MESSAGE FROM THE VEGANS.": GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39600:Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "DO YOU EXPECT US TO FALL FOR THAT OLD TRICK? WE VEGANS GROW TIRED OF YOUR STUPIDINESS. PREPARE TO DIE.": GOSUB 47000: RETURN
20600 Z1$ = "A MESSAGE FROM THE VEGAN COMMANDER.": GOSUB 47000: GOSUB 39000: GOSUB 39400: GOSUB 39600: PRINT :Z1$ = "VEGAN COMMANDER:": GOSUB 47000
20630 Z1$ = "CAPTAIN, WE WERE EXPECTING YOU TO DO SOMETHING AS COWARDLY AS THIS. YOU DON'T MIND IF WE HELP YOU ALONG? IT'S THE LEAST WE CAN DO.": GOSUB 47000: RETURN
20700 Z1$ = "WE ARE RECIEVING A MESSAGE FROM THE VEGANS.": GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39600:Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "YOU EARTHLINGS MUST TAKE US FOR FOOLS. WE WILL DESTROY YOUR SHIP. YOU DON'T HAVE TO BOTHER TO SELF-DESTRUCT.": GOSUB 47000: RETURN
20800 Z1$ = "WE ARE RECIEVING A MESSAGE FROM THE VEGANS.": GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39600:Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "WE WILL ASSIST YOU.": GOSUB 47000: RETURN
20900 Z1$ = "CAPTAIN, THE VEGANS ARE REVERSING THEIR ENGINES. THEY'RE FALLING FOR IT.": GOSUB 47000: RETURN
21000 GOSUB 39000: GOSUB 38000:Z1$ = K$(4) +":": GOSUB 39300: GOSUB 47000:Z1$ = "LIEUTENT, OPEN A CHANNEL TO THE VEGAN COMMAND SHIP.": GOSUB 47000: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "CHANNEL IS OPEN."
21035 GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39500:Z1$ = K$(4) +":": GOSUB 47000
21036 Z1$ = "THIS IS THE CAPTAIN OF THE USS RANGER. WILL YOU ACCEPT OUR UNCONDITIONAL SURRENDER?": PRINT : GOSUB 47000: FOR Z = 1 TO 1000: NEXT Z: ON FF GOSUB 21200,21400
21095 RETURN
21200 GOSUB 39000: GOSUB 39300: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "WE ARE RECIEVING THE VEGAN REPLY."
21230 GOSUB 47000: PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39600:Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "WE DO NOT ACCEPT YOUR SURRENDER. YOU ARE OBVIOUSLY CREATURES WITH LITTLE BACKBONE. YOU WILL BE DESTROYED.": GOSUB 47000
21235 RETURN
21400 GOSUB 39000: GOSUB 39300: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "WE ARE RECIEVING THE VEGAN REPLY.": GOSUB 47000
21420 PRINT : GOSUB 39000: GOSUB 39400: GOSUB 39600:Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "LOWER YOUR SHIELDS, AND PREPARE FOR BOARDING.": GOSUB 47000
21430 EG = -2: GOTO 51000
22000 GOSUB 38000: GOSUB 39000: GOSUB 39300:Z1$ = K$(4) +":": GOSUB 47000:Z1$ = "OPEN A CHANNEL TO THE VEGAN SHIP.": GOSUB 47000: PRINT :Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "CHANNEL'S CLEARED.": GOSUB 47000: PRINT
22040 GOSUB 39000: GOSUB 39400: GOSUB 39500
22045 Z1$ = "THIS IS THE " +K$(4) +" OF THE USS RANGER. YOU ARE BADLY DAMAGED AND THERE IS NO HOPE FOR YOUR SURVIVAL. LOWER ALL YOUR SHIELDS AND SURRENDER."
22060 GOSUB 47000:Z1$ = "YOUR CREW WILL BE WELL TREATED.": GOSUB 47000: PRINT : FOR Z = 1 TO 1000: NEXT Z: GOSUB 39000: GOSUB 39300:Z1$ = "LIEUTENT:": GOSUB 47000:Z1$ = "A MESSAGE FROM THE VEGAN COMMAND SHIP.": GOSUB 47000: GOSUB 39000: GOSUB 39400: GOSUB 39600: ON F9 GOTO 22200,22300:F2 = 1: RETURN
22200 PRINT :Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "YOU MUST BE JOKING. YOU ARE IN NO CONDITION TO DICTATE SURRENDER!": GOSUB 47000: RETURN
22300 PRINT :Z1$ = "VEGAN COMMANDER:": GOSUB 47000:Z1$ = "WE WILL LOWER OUR SHIELDS. WE GIVE YOU OUR UNCONDITIONAL SURRENDER.": GOSUB 47000:EG = 3: GOTO 51000
36000 PRINT VY$;: VTAB (22): HTAB (26): PRINT VW$;: VTAB (3): HTAB (4): PRINT VV$;: RETURN
38000 GOSUB 36000: PRINT VI$VP$;: RETURN
39000 HCOLOR= 0:Z8 = 112:Z9 = 119: GOSUB 39200:Z8 = 128:Z9 = 135: GOSUB 39200:Z8 = 152:Z9 = 159: GOSUB 39200:Z8 = 168:Z9 = 175: GOSUB 39200: RETURN
39200 FOR Z5 = 196 TO 209: HPLOT Z5,Z8 TO Z5,Z9: NEXT Z5: RETURN
39300 HCOLOR= 1:Z8 = 112:Z9 = 119: GOSUB 39200: POKE 2048,100: POKE 2049,110: CALL 2050: POKE 2048,30: POKE 2049,80: CALL 2050: RETURN
39400 HCOLOR= 1:Z8 = 128:Z9 = 135: GOSUB 39200: POKE 2048,60: POKE 2049,110: CALL 2050: POKE 2048,60: POKE 2049,110: CALL 2050: RETURN
39500 HCOLOR= 1:Z8 = 152:Z9 = 159: GOSUB 39200: POKE 2048,100: POKE 2049,50: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: POKE 2048,30: POKE 2049,50: CALL 2050: RETURN
39600 HCOLOR= 1:Z8 = 168:Z9 = 175: GOSUB 39200: POKE 2048,60: POKE 2049,50: CALL 2050: POKE 2048,100: POKE 2049,50: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
47000 Z = LEN(Z1$):Z$ = Z1$: IF Z <23 THEN GOSUB 47100: GOTO 47095
47010 FOR Z1 = 22 TO 1 STEP -1:Z2 = ASC( MID$ (Z1$,Z1,1)): IF Z2 = 32 THEN Z$ = LEFT$(Z1$,Z1):Z1$ = RIGHT$(Z1$,Z -Z1): GOSUB 47100: GOTO 47080
47040 NEXT Z1:Z$ = LEFT$(Z1$,22):Z1$ = RIGHT$(Z1$,Z -22): GOSUB 47100
47080 GOTO 47000
47095 RETURN
47100 Z = LEN(Z$): PRINT VA$4VK$VI$;: FOR Z1 = 1 TO Z: PRINT MID$ (Z$,Z1,1);: POKE 2048,100: POKE 2049,15: CALL 2050: NEXT Z1: PRINT : RETURN
50000 POKE 49234,0: POKE 2072,85: POKE 2073,42: CALL 2074:Z$ = VA$ +"1" +VK$ +VI$ +" E" +VA$ +"4":Z1$ = VI$ +" "
50001 PRINT VY$;: VTAB (1): HTAB (29): PRINT VV$;: VTAB (24): HTAB (11): PRINT VW$;: VTAB (2): HTAB (1): PRINT VA$3VK$;" COMMUNIC. ";: PRINT VA$4Z1$;
50040 PRINT Z$"BLUFF ";: PRINT Z1$;: PRINT Z$"SURRENDER";: PRINT Z1$;: PRINT Z$"ASK FOR ";: PRINT " SURRENDER";: PRINT Z1$;: PRINT Z$"RETURN ";
50120 Z$ = VA$ +"1" +VN$ +" " +VI$ +VL$: PRINT : PRINT : PRINT : PRINT Z$"INTERNAL ": PRINT Z$"SHIP TO ";: PRINT " SHIP ": PRINT Z$"TRANSIMIT": PRINT Z$"RECEIVING": PRINT VN$;
50184 PRINT VY$;: HTAB (7): VTAB (1): PRINT VI$VA$3VK$"COMMUNICATIONS";VN$;: PRINT VY$;: VTAB (23): HTAB (27): PRINT VW$;: VTAB (2)
50190 HTAB (2): PRINT VV$VP$;: PRINT VI$;: PRINT VY$;: VTAB (22): HTAB (26): PRINT VW$;: VTAB (3): HTAB (3): PRINT VV$;VP$: GOSUB 38000: RETURN
51000 PRINT VA$0VK$VN$: PRINT CHR$(4)"BLOAD CHAIN, A520": CALL 520"BYE"
Text found in Starship_Commander_1981_Voyager.do/CREW.txt:
MMMMARTINEZ,4
.K. FONG,3
IGHIGGINS,2
RALARA,2
TANSETANSEY,0
CE,PRICE,0
NHARBARNHART,0
OHIRA,0
0
0
CADD,0
O,0
IMORENO,0
STMELARA,3
3
GANDERSON,3
EGAHART,3
CHODESOIZA,0
OWCHOW,0
FERGUBROWN,0
STROFERGUSON,0
0ELSTROM,0
D,MACIA,0
3
LHOLLAND,0
LWOOD,3
,2
NEGIRARD,3
RPBKUGLER,2
OO'HOW,0
INSUNBURNS,0
ADELO'NEAL,0
KAMSUN,0
VELLA,ADELSON,0
5
NAKAMURA,0
0VELLA,0
SIANWONG,5
ENTI,CONE,3
,0
KAMATRISIAN,2
CRISCENTI,2
GREGIS,0
MURCHIN,0
JUE,O'DELL,0
E,4SMITH,0
TEGAMURAKAMI,0
UJUE,0
EED,0
LEE,4
EE,0
EORTEGA,3
0
SHIMAZU,3
3
SNEED,0
FF3RMCKEE,0
,0PUNELSON,0
ROEMUNSON,0
OSLCHOW,0
OSMIDRUPPRECHT,0
PUSTELNIK,0
ROEDER,3
,0
LEFF,3
3
LLIOSMIDOFF,3
STAMER,0
ABFOSTER,0
0
WMOORE,0
AB.FOX,0
3
APHISMITH,0
OCCGERTZ,0
ARCUREZENTES,0
TWHITE,4
N,0
B. FONG,3
E,PHILLIPS,2
EROCCA,0
0
OXMARCUS,0
HOLAMOTTE,0
LRKWAN,0
FNNGLABERIE,0
ALPFAFF,0
GOMENORTH,0
RAPETHORPE,3
CA,PATRICK,3
,0ZEE,3
,3
0
ANGO,0
NER,3
HALLISEY,0
GOMEZ,0
2
NLDRAPER,0
A2TRICCA,0
NWIHOUSE,0
0YOUHALL,0
OZIELHAFNER,3
YLOSKOVER,3
NLESTELMA,2
IERTOOR,0
LAP,3TRENT,0
,2
OWILCOX,0
AYEYOUNG,0
0
IEZIELONKA,0
MTAYLOR,0
LASTANLEY,0
EWFRAZIER,4
QUREYES,3
MPBLEONG,2
I,3
LANN,2
RMACKLOWE,0
ES,0
MUI,0
HIEM,0LEACH,0
0
GEE,0
,0
HEWITT,0
WSEQUIRA,0
WCAMPBELL,5
EOMI,3
KREICORMACK,3
MIHAYES,0
UER,NERHIEM,0
W,DUNLAP,0
LL,SAMMON,0
MARTIN,0
WOO,0
0
IWAFUCHI,0
NEUMANN,4
KREILING,3
LOOMIS,3
SAUER,0
HURLOW,0
DONNELL,0
LINCOLN,0
SHAZE,0
JONES,0
PIPER,0
Text found in Starship_Commander_1981_Voyager.do/DAMAGE.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
40 DEF FN RF(X) = ((3700 -X)/3700 ^2.86: GOSUB 19000
1000 Z8 = 0: FOR Z = 1 TO 3: IF KC(Z) >0 AND K(Z) THEN Z8 = 1
1003 NEXT Z: IF CM(0,0) < = 0 AND Z8 = 0 THEN EG = 1: PRINT : PRINT VA$4;"ALL CREWS ON ALL VESSELS ARE DEAD.": GOTO 3000
1025 IF EG = 1 THEN 2000
1027 PRINT VA$0VN$VK$
1030 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"INFO1": STOP
2000 PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"STORE DATA": STOP
3000 PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"BYE": STOP
19000 REM
19005 IF CM(0,0) = 0 THEN 19500
19010 GOSUB 36000: PRINT VI$VA$4VK$;" MEDICAL REPORT ";VA$0VN$: PRINT :T1 = 0:T2 = 0:X9 = 0:X = 0: FOR X1 = 1 TO 4:EN(X1) = EN(X1) -HS(X1):AL(X1) = AL(X1) -HS(X1):X2 = HS(X1) -EN(X1): IF HS(X1) -AL(X1) >X2 THEN X2 = HS(X1) -AL(X1)
19014 IF X2 <0 THEN X2 = 0
19017 X2 = X2 *(2 -CE(4,DT(4))): IF X2 <20 AND HS(X1) >50 THEN X2 = FN RN(35)
19050 X = X +X2: NEXT X1: IF X = 0 THEN 19090
19070 X = INT( FN RN(X/20) +X/20):Y4 = 0: IF X >23 THEN X = 23
19090 IF X <1 THEN PRINT "NO DEATHS OR INJURIES.": GOTO 19500
19095 W$(11) = "WEP":W$(12) = "ENG":W$(13) = "NAV":W$(14) = "DEF"
19100 W$(0) = "CR":W$(2) = "ENS":W$(3) = "LT.":W$(4) = "LT CMD":W$(5) = "CMD":Y = FN RN(120):Y3 = Y: PRINT CHR$(4);"OPEN CREW,L12"
19210 IF Y > = 120 THEN Y = 0
19220 Y = Y +1: IF Y3 = Y AND T1 = X THEN PRINT CHR$(4);"CLOSE CREW": GOTO 29500
19225 IF Y3 = Y THEN 19420
19240 Y2 = PEEK(7788 +Y *2): IF Y2 = <100 THEN 19210
19260 X2 = FN RN(120):Y2 = Y2 -X2: IF Y2 >100 AND X2 >20 AND Y2 < = 150 THEN Z$ = "INJURED- ":T2 = T2 +1
19266 IF Y2 >150 OR (X2 < = 20 AND Y2 >100) THEN POKE 7788 +Y *2,Y2:Y4 = Y4 +1: GOTO 19410
19270 IF Y2 < = 100 THEN Y2 = 0:Z$ = "KILLED - ":T1 = T1 +1
19280 POKE 7788 +Y *2,Y2:Y4 = Y4 +1:Y5 = PEEK(7788 +Y *2 +1): PRINT CHR$(4);"READ CREW,R";Y5: INPUT Z1$,W1: SPEED= 125: PRINT Z$;W$(W1);" ";Z1$;: GOSUB 38000: SPEED= 255: IF Y2 >100 THEN 19410
19340 X3 = INT(((Y -1)/30)) +1:X4 = INT(((Y -1)/10)) +1:X4 = X4 -(X3 -1) *3: IF W1 = 0 THEN W1 = 1
19380 W1 = W1 +2:CO(X3,X4) = CO(X3,X4) -W1:CM(X3,X4) = CM(X3,X4) -1
19410 IF Y4 .65 THEN D(6) = 1:RP(6) = RP(6) + FN RN(15):EN(6) = 0:AL(6) = 0: PRINT "POSITRON 1 IS DAMAGED.":T2 = RT(6) +T2:RT(6) = 0
19535 IF RND(1) <.4 THEN 19570
19540 T2 = RT(5) +T2:RT(5) = 0:D(5) = D(5) + FN RN(4): IF D(5) >6 THEN D(5) = 6
19545 RP(5) = RP(5) + FN RN(15): FOR X1 = 6 TO 6 -DM(5):LP(X1) = 0: NEXT X1: PRINT "TORPEDO TUBES ARE DAMAGED."
19570 IF (Z >100 AND Z < = 300 AND RND(1) <.3) OR Z >300 THEN D(1) = 1:RP(1) = FN RN(15) +RP(1): PRINT "SHIELD 1 IS DAMAGED.":EN(1) = 0:AL(1) = 0:AS(1) = 0:T2 = T2 +RT(1):RT(1) = 0
19600 X = 2: GOSUB 40000: IF Z <40 THEN 19700
19610 IF RND(1) >.65 THEN D(7) = 1:RP(7) = RP(7) + FN RN(15):EN(7) = 0:AL(7) = 0: PRINT "POSITRON 2 IS DAMAGED.":T2 = T2 +RT(7):RT(7) = 0
19615 IF RND(1) <.3 OR Z <100 THEN 19670
19620 IF D(11) = 2 THEN D(11) = 3: GOTO 19630
19625 IF D(11) < >3 THEN D(11) = 1
19630 RP(11) = RP(11) + FN RN(20): IF D(11) = 3 THEN EN(11) = 0:AL(11) = 0
19635 T2 = T2 +RT(11):RT(11) = 0: IF D(11) = 1 THEN EN(11) = EN(11)/2:AL(11) = AL(11)/2
19650 PRINT "PORT ENGINE IS DAMAGED."
19670 IF Z <300 OR RND(1) <.7 THEN 19700
19675 DM(2) = 1:RP(2) = RP(2) + FN RN(20):EN(2) = 0:AL(2) = 0: PRINT "SHIELD 2 IS DAMAGED":AS(2) = 0:T2 = T2 +RT(2):RT(2) = 0
19700 X = 3: GOSUB 40000: IF Z <40 THEN 19800
19720 T2 = T2 +RT(7):RT(7) = 0: IF RND(1) <.3 OR Z <100 THEN 19770
19728 IF D(11) = 1 THEN D(11) = 3: GOTO 19735
19730 IF D(11) < >3 THEN D(11) = 2
19735 RP(12) = RP(12) + FN RN(20): IF D(11) = 3 THEN EN(11) = 0:AL(11) = 0
19745 IF D(11) = 2 THEN EN(11) = EN(11)/2:AL(11) = AL(11)/2
19750 PRINT "STARBOARD ENGINE IS DAMAGED.":T2 = T2 +RT(12):RT(12) = 0
19770 IF Z <300 OR RND(1) <.7 THEN 19800
19775 D(3) = 1:RP(3) = RP(3) + FN RN(20):EN(3) = 0:AL(3) = 0:AS(3) = 0: PRINT "SHIELD 3 IS DAMAGED.":T2 = T2 +RT(3):RT(3) = 0
19800 X = 4: GOSUB 40000: IF Z <40 THEN 19900
19820 IF RND(1) >.65 THEN D(9) = 1:RP(9) = RP(9) + FN RN(15):EN(9) = 0:AL(9) = 0: PRINT "POSITRON 4 IS DAMAGED.":T2 = T2 +RT(9):RT(9) = 0
19830 IF RND(1) <.7 OR Z <100 THEN 19850
19840 D(10) = 1:RP(10) = RP(10) + FN RN(15):EN(10) = 0:AL(10) = 0: PRINT "ION ENGINES ARE DAMAGED.":T2 = RT(10) +T2:RT(10) = 0
19850 IF Z >300 AND RND(1) <.3 THEN D(4) = 1:EN(4) = 0:AL(4) = 0: PRINT "SHIELD 4 IS DAMAGED.":AS(4) = 0:RP(4) = RP(4) + FN RN(15):T2 = RT(4) +T2:RT(4) = 0
19860 IF Z >0 AND CA >0 AND RND(1) <.5 THEN T2 = T2 +1:CA = CA -1
19900 IF T2 >0 THEN PRINT T2;" DROIDS DESTROYED."
19910 PRINT "NO FURTHER DAMAGE.": SPEED= 255: RETURN
29500 PRINT "ALL CREWMEMBERS ARE KILLED.":CM(0,0) = 0: GOTO 19500
29600 STOP
35000 PRINT VN$;VY$: VTAB (19): HTAB (39): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;: RETURN
36000 GOSUB 35000: PRINT VP$;: RETURN
38000 Z2 = INT((Y -1)/30) +1:Z3 = INT(((Y -(Z2 -1) *30) -1)/10) +1
38010 PRINT TAB( 28);W$(10 +Z2);"-TEAM "Z3
38020 RETURN
40000 Z2 = HS(X) *(2 -CE(4,DT(4))) *(2 -E(X)):Z = Z2 -EN(X):Z1 = Z2 -AL(X): IF Z1 >Z THEN Z = Z1
40003 Y6 = 0: IF HS(X) >50 THEN Y6 = HS(X)/2500
40004 IF Y6 >.09 THEN Y6 = .09
40005 E(X) = E(X) -Y6: IF E(X) < = .05 THEN E(X) = RND(1)/20
40010 RETURN
Text found in Starship_Commander_1981_Voyager.do/DEFENSE.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
40 CX(2) = 1: DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOSUB 50000: GOSUB 17000
9999 GOTO 9999
10000 GOSUB 39000: GOSUB 38000: GOSUB 22000: GOSUB 43000: RETURN
11000 GOSUB 21000: GOSUB 43000: RETURN
12000 GOSUB 39000: GOSUB 21000: GOSUB 43000: RETURN
13000 GOSUB 39000: GOSUB 24000: GOSUB 43000: RETURN
14000 BS = 0: GOSUB 21000: RETURN
15000 BS = 2: GOSUB 21000: RETURN
16000 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z$(Z) = "":Z1$(Z) = "": NEXT Z: PRINT VN$VK$V0$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
16090 GOTO 16090
17000 REM
17010 Z(1) = 3:Z(2) = 4:Z(3) = 5:Z(4) = 8:Z(5) = 9:Z(6) = 10:Z(7) = 12: IF D(1) AND D(2) AND D(3) AND D(4) THEN Z(4) = -8:Z(5) = -9:Z(6) = -10
17030 Z = 7:Y = 30: GOSUB 41000:CO = X: GOSUB 39000: ON CO GOSUB 22000,11000,26000,14000,24000,15000,16000: GOTO 17010
18000 Y = 30: FOR Z = 1 TO 10:Z(Z) = Z +2: IF Z >6 THEN Z(Z) = Z(Z) +2
18020 NEXT Z:Z = 10: IF EN(11) = 0 OR MN = MS THEN Z(7) = -Z(7):Z(9) = -Z(9)
18200 GOSUB 41000:CO = X: ON CO GOSUB 15000,13000,12000,10000,14000,11000,19000,27000,23000,16000: GOTO 18000
21000 REM
21001 GOSUB 38000: HCOLOR= 5: FOR Z = 13 TO 26: HPLOT 27,Z TO 175,Z: NEXT Z: VTAB (3): HTAB (5): PRINT VA$4VK$VN$;"AUTO SHIELD SYSTEMS": VTAB (5): PRINT VI$VA$1VL$" CONTROL: ";VA$4VK$;: PRINT VN$;" ";: IF BS = 0 THEN PRINT "MANUAL"
21040 IF BS = 1 THEN PRINT "SEMI-AUTOMATIC"
21050 IF BS = 2 THEN PRINT "AUTOMATIC"
21060 VTAB (7): PRINT VI$VA$1VL$;" TOTAL SHIELD POWER:";VA$4VN$" "; FN RD(EN(1) +EN(2) +EN(3) +EN(4)): HCOLOR= 1: HPLOT 9,30 TO 193,30 TO 193,41 TO 9,41: HPLOT 9,46 TO 193,46 TO 193,57 TO 9,57
21070 VTAB (9): PRINT VA$1;"SHIELD 1 2 3 4": VTAB (11): PRINT " POWER": PRINT " % OF": PRINT " TOTAL": PRINT " SHLDS": VTAB (11): PRINT VA$4VN$;: FOR X1 = 1 TO 4:X2 = (X1 -1) *5 +8: HTAB (X2): PRINT FN RD(EN(X1));: NEXT X1: HCOLOR= 2: HPLOT 7,60 TO 195,60
21220 HPLOT 7,76 TO 195,76: HPLOT 7,88 TO 195,88: HPLOT 7,112 TO 195,112: HPLOT 52,60 TO 52,112: HPLOT 86,60 TO 86,112: HPLOT 120,60 TO 120,112: HPLOT 154,60 TO 154,112: HCOLOR= 3: FOR Z = 90 TO 100: HPLOT 58,Z TO 79,Z: NEXT Z
21290 HCOLOR= 1: FOR Z = 90 TO 100: HPLOT 93,Z TO 114,Z: NEXT Z: HCOLOR= 2: HPLOT 128,90 TO 148,90 TO 148,100 TO 128,100 TO 128,90: FOR Z = 90 TO 100: HPLOT 168,Z TO 189,Z: NEXT Z: GOSUB 21500: HTAB (1): VTAB (21): PRINT VA$1VL$VN$; TAB( 4);"SHIELD PERCENT CHART";: RETURN
21500 W(0) = 20: GOSUB 36000: FOR X1 = 1 TO 4:W(X1) = AS(X1) *1.6 +W(X1 -1): NEXT X1: VTAB (14): PRINT VA$4VN$;: FOR X1 = 1 TO 4:X2 = (X1 -1) *5 +8: HTAB (X2): PRINT " ";: HTAB (X2): PRINT FN RD(AS(X1))"%";: NEXT X1: HCOLOR= 3
21565 HPLOT 19,150 TO 181,150 TO 181,157 TO 19,157 TO 19,150: FOR X1 = 151 TO 156: HCOLOR= 3: HPLOT 20,X1 TO W(1),X1: HCOLOR= 1: HPLOT W(1),X1 TO W(2),X1: HCOLOR= 0: HPLOT W(2),X1 TO W(3),X1: HCOLOR= 2: HPLOT W(3),X1 TO 180,X1: NEXT X1: HCOLOR= 3: GOSUB 21700: RETURN
21700 FOR X1 = 1 TO 4: IF FN RD(AS(X1)) > = 1 THEN HPLOT 68 +(X1 -1) *36,116 TO (W(X1) +W(X1 -1))/2,147
21710 NEXT X1: RETURN
22000 REM
22010 FOR Z = 1 TO 4:Z(Z) = 14 +Z: NEXT Z:Z = 4:Y = 30: GOSUB 41000:SH = X: GOSUB 38000: PRINT VA$4VK$;: VTAB (3): HTAB (7): PRINT "SHIELD "SH" STATUS": PRINT VA$1;: VTAB (4): HTAB (2): PRINT VI$VL$;"CONDITION:";VN$VA$4VK$" ";:Z1$ = "GREEN":Z = 1: IF EN(SH) = 0 THEN Z1$ = "WHITE":Z = 3
22220 IF D(SH) THEN Z1$ = "RED":Z = 5
22230 PRINT TAB( 21)Z1$: HCOLOR= 2: HPLOT 12,23 TO 192,23 TO 192,32 TO 12,32 TO 12,23: HCOLOR= Z: FOR Z1 = 24 TO 31: HPLOT 86,Z1 TO 135,Z1: NEXT Z1: VTAB (6): HTAB (11): PRINT VL$VN$VA$1;"PWR 0 "VA$2;"2 4 6 8 0"
22250 PRINT VA$1VL$"ACT PWR " FN RD(EN(SH)): PRINT "ALLOC PWR "; FN RD(AL(SH)): PRINT "EFFICENCY "; FN RD(E(SH) *100)"%":Y = 49:X3 = EN(SH)/MP(SH): HCOLOR= 1: GOSUB 22800:Y = 57:X3 = AL(SH)/MP(SH): HCOLOR= 3: GOSUB 22800
22257 Y = 65:X3 = E(SH): HCOLOR= 2: GOSUB 22800: HCOLOR= 3: HPLOT 114,46 TO 114,72: HPLOT 7,48 TO 185,48: HPLOT 7,56 TO 185,56: HPLOT 7,64 TO 185,64: HPLOT 7,72 TO 185,72: HPLOT 72,48 TO 72,72: HPLOT 185,48 TO 185,72: VTAB (12): PRINT ;"REPAIR DRIODS: "RT(SH) TAB( 19);: IF RT(SH) THEN PRINT VK$;: FOR Z1 = 1 TO RT(SH): PRINT "W";: NEXT Z1
22270 PRINT : PRINT VL$;"DAMAGE STATUS:"; TAB( 19);: IF D(SH) THEN PRINT RP(SH)
22290 IF D(SH) = 0 THEN PRINT "NONE"
22292 HCOLOR= 1: HPLOT 7,96 TO 195,96: HPLOT 7,105 TO 195,105: HPLOT 7,87 TO 195,87: VTAB (15): HTAB (2): PRINT "VESSEL" TAB( 20)"VESSEL": HTAB (2): PRINT "FACING"; TAB( 12)"RANGE" TAB( 20)"SHIELD": HTAB (2): PRINT "SHIELD "SH; TAB( 20)"FACING":X6 = 1: FOR Z1 = 1 TO 3: IF K(Z1) = 0 OR XS(Z1) < >SH THEN 22350
22340 HTAB (2): PRINT K$(Z1);: HTAB (12): PRINT FN RD(DK(Z1));: HTAB (23): PRINT VA$4;YS(Z1);VA$1
22350 NEXT Z1: HPLOT 73,106 TO 73,168: HPLOT 129,106 TO 129,168: HPLOT 7,135 TO 195,135: GOSUB 43000: RETURN
22800 X2 = 114 +X3 *70: FOR Z1 = Y +1 TO Y +5: HPLOT 114,Z1 TO X2,Z1: NEXT Z1: RETURN
24000 REM
24001 AS(1) = 0:AS(2) = 0:AS(3) = 0:AS(4) = 0:ZX = 0:SX = 0: FOR Z = 4 TO 1 STEP -1: IF ZX < >0 AND D(Z) = 0 THEN SX = Z: GOTO 24018
24006 IF ZX = 0 AND D(Z) = 0 THEN ZX = Z
24010 NEXT Z:AS(ZX) = 100: GOSUB 21000: GOTO 24110
24018 BS = 1: GOSUB 21000:Z0 = 100: FOR ZY = 1 TO SX: IF D(ZY) THEN 24100
24050 PL = 0:PU = Z0: GOSUB 39000: PRINT "ENTER % FOR SHIELD "ZY;:RT = 1:ZT = 1:C = 1:RC = 0: GOSUB 40000:Z0 = Z0 -RC
24100 NEXT ZY:AS(ZX) = Z0
24110 GOSUB 21500: RETURN
24500 GOSUB 36000: HCOLOR= 0: GOSUB 21700:AS(ZY) = RC: GOSUB 21500: PRINT VY$;: RETURN
26000 POKE 232,0: POKE 233,145: GOSUB 26900: GOSUB 26600:X0 = 0: HCOLOR= 5: GOSUB 39000:Z5 = 2: IF SR <1000 THEN Z5 = 1: IF SR <400 THEN Z5 = 0
26025 GOSUB 39000:SX = 68/SR:SY = 60/SR: ROT= 0: SCALE= 1: HCOLOR= 7:X = EH: GOSUB 46000: ROT= R *8:X = 102 -X(Z5 +3,R): FOR Z = 1 TO 2: HCOLOR= 6: IF Z = 1 THEN HCOLOR= 0
26035 HCOLOR= 6: DRAW 4 +Z5 AT X,84 -Y(Z5 +3,R): IF INT(R/2) < >R/2 THEN DRAW 4 +Z5 AT X,83 -Y(Z5 +3,R)
26039 NEXT Z: IF X2 SR OR (CO = 1 AND SH < >Z) OR K(Z) = 0 THEN 26680
26620 X = KH(Z): GOSUB 46000: ROT= R *8:Y = 80 -(KY(Z) -EY) *SY -Y(Z5,R):X = 102 +(KX(Z) -EX) *SX -X(Z5,R): IF X >200 OR Y >160 OR X <1 OR Y <1 THEN 26680
26630 X = INT(X +.5):Y = INT(Y +.5): IF (X/2 = INT(X/2)) THEN X = X +1
26650 DRAW Z5 +1 AT X,Y: IF R < >0 OR R < >4 THEN DRAW Z5 +1 AT X,Y -1
26670 IF INT(R/2) < >R/2 THEN DRAW Z5 +1 AT X,Y +1
26680 NEXT Z:X0 = 6: HCOLOR= 2: FOR Z = 45 TO 315 STEP 90:X1 = FN RD(Z +EH):X = X1: GOSUB 26800: HPLOT X3,X4 TO X5,X6: HPLOT X3 +1,X4 TO X5 +1,X6
26765 NEXT Z:X0 = 0: PRINT VA$4VK$VN$VY$;:X0 = 15: FOR Z1 = 1 TO 4:Z = Z1: IF Z1 = 3 THEN Z = 4: GOTO 26769
26767 IF Z1 = 4 THEN Z = 3
26769 X1 = FN RD((Z1 -1) *90 +EH):X = X1: GOSUB 26800:X7 = X3/7:X8 = X4/8: HTAB (X7): VTAB (X8): PRINT Z;: NEXT Z1:X0 = 0: RETURN
26800 X3 = COS(X *DR) *(75 -X0) +102:X5 = COS(X *DR) *19 +102:X4 = 84 - SIN(X *DR) *(65 -X0):X6 = 84 - SIN(X *DR) *15: RETURN
26900 GOSUB 38000: GOSUB 39000:RC = 1: FOR Z = 1 TO 3: IF RC 127 THEN 40070
40045 IF ZT >10 THEN ZT = 10
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (31): VTAB (22): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *(2 ^ INT(ZT/2)) *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40070 PRINT VA$1;: VTAB (23): HTAB (30): PRINT VK$;VI$;"X";: HTAB (36): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (22): HTAB (31): PRINT VN$" ";: PRINT VA$4;: RETURN
40100 REM
40105 IF RC >PU THEN RC = PU
40107 IF RC 6 THEN 40190
40124 Z = 6 -Y3: FOR Y2 = 1 TO Z: PRINT " ";: NEXT Y2:Z9 = 30: IF C THEN Z9 = 10
40125 POKE 2048,(PU -RC)/(PU -PL) *76 +75: POKE 2049,Z9: CALL 2050: IF C = 1 THEN GOSUB 24500
40190 RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43000 GOSUB 39000: VTAB (23): HTAB (8): PRINT VA$;1;VL$"PRESS BUTTON";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (23): HTAB (6): PRINT VA$(1);VK$;"L";: HTAB (22): PRINT "M";:X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (23): HTAB (6): PRINT " ";: HTAB (22): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 38000: GOSUB 45000: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
46000 R = 2 - INT(( FN D(X) +45/2)/45): IF R <0 THEN R = 8 +R
46030 RETURN
50000 POKE 49234,0: POKE 2072,42: POKE 2073,85: CALL 2074:Z$ = VA$ +"1" +VK$ +VI$ +" E" +VA$ +"4": PRINT VY$;: VTAB (1): HTAB (30)
50005 PRINT VV$;: VTAB (24): HTAB (10): PRINT VW$;: VTAB (2): HTAB (1): PRINT VK$VA$3;" STATUS ";: PRINT Z$"STATUS ";: PRINT Z$"AUTO ";
50050 PRINT Z$"POSITION";: PRINT VN$;: VTAB (7): PRINT VK$VA$3;" CONTROL ";: PRINT Z$"MANUAL ";: PRINT Z$"SEMI ";: PRINT Z$"AUTO ";: VTAB (12): PRINT Z$"RETURN ";: VTAB (14): PRINT VN$VK$VA$3;" SHIELD ";
50140 PRINT Z$" 1 ";: PRINT Z$" 2 ";: PRINT Z$" 3 ";: PRINT Z$" 4 ";: VTAB (21): PRINT VA$3;
50141 PRINT " COUNTER ";: PRINT VI$" ";: PRINT VN$" ";: PRINT VI$" ";: PRINT VA$1VK$"X";VL$;"RDY "VK$"X"VL$"ENT";
50190 PRINT VY$VN$;: VTAB (2): HTAB (2): PRINT VV$;: VTAB (21): HTAB (27): PRINT VW$VP$;: VTAB (23)
50195 HTAB (1): PRINT VN$VV$;: VTAB (23): HTAB (27): PRINT VW$VP$;: PRINT VY$;: VTAB (1): HTAB (12): PRINT VI$VA$3VK$;"DEFENSE";: RETURN
Text found in Starship_Commander_1981_Voyager.do/DIM.bas:
5 HIMEM: 35070:KN = 3:LS = 12:FS = 5: POKE 232,255: POKE 233,126: DEF FN RN(X) = INT( RND(1) *X) +1:F9 = 1: DIM GX(63),GY(63),GZ(63),C(3,3),K2(3),D2(3),SD(3),HS(4),EV(3),WH(3),WL(3),TA(3),MT(3): DIM CE(4,3),CM(4,3),CO(4,3),DT(4),CT(4,3),LS(4),LP(9),KX(3),KY(3),K(3)
70 DIM K$(4),KW(3),KH(3),DK(3): DIM PC(4,3),OX(3),OY(3): GOSUB 50000: FOR I = 1 TO 6: READ OF(I): NEXT I: DATA 1 ,.8 ,.6 ,.5 ,.4 ,.3:Z = RND( PEEK(78) + PEEK(79)/100):DR = .0174533: FOR I = 1 TO 6:LP(I) = 1:F(I) = 1: NEXT I
400 FOR I = 1 TO 15: READ MP(I): NEXT I: DATA 1200,1000,1000, 800,0 ,200,160,160,60,100,1000,175,300,80 ,9999:CA = 15:CT = 50
410 FOR Z = 1 TO 10:RT(Z) = 4: NEXT Z:RT(5) = 0:RT(11) = 5:RT(12) = 5:MP = 9999:MS = 8:MN = 0:MS(0) = 8:MN(0) = 8: FOR I = 1 TO 15: IF EN(I) >MP(I) THEN EN(I) = MP(I)
740 IF AL(I) >MP(I) THEN AL(I) = MP(I)
750 NEXT I: GOSUB 55000: FOR Z = 1 TO 3:MS(Z) = 14 -KT(Z):DK(Z) = 3500: NEXT Z: FOR Z = 1 TO 4:LS(Z) = .25: FOR Z1 = 1 TO 3:CT(Z,Z1) = Z1:CM(Z,Z1) = 10: NEXT Z1:DT(Z) = 1: NEXT Z
760 FOR Z = 1 TO 4: FOR Z1 = 1 TO 3: READ CO(Z,Z1): NEXT Z1: NEXT Z: FOR Z = 1 TO 3:KW(Z) = 0: NEXT Z: FOR Z = 1 TO 3:KH(Z) = RND(1) *360: NEXT Z: FOR Z = 1 TO 4: FOR I = 1 TO 3:CE(Z,I) = .94: NEXT I: NEXT Z
9000 EW = 4:FS = 4
9999 GOTO 61000
50000 DIM VH(3),VR(3),CX(7)
50001 DIM AL(15),AS(4),RP(15),RT(15),MP(15),DC(4),KT(3),KC(3),X(5,7),Y(5,7),MX(2),MY(2),Z(31),W$(31): DIM FE(15),E(15),EN(15),D(15): DIM OF(6),MH(3,9),F(9),PW(3,9),LW(9): DIM AX(3),AY(3),RS(3),YA(3),YS(3),XS(3)
50005 DIM Z1(32),Z$(32),MS(3),KP(3,7),MK(3,7):EN(12) = 150:EN(15) = 3500:EN(11) = 1000:EN(13) = 100:EN(10) = 80:SH = 3:KT(1) = 1:KT(2) = 2:KT(3) = 3:EN(14) = 80
50007 F1 = 0:CM(0,0) = 120
50024 EX = 10000:EY = 10000:AX(0) = EX:AY(0) = EY:KN = 3:KX(1) = 9500:KY(1) = 10400 + FN RN(1900):K(1) = 1
50110 KX(2) = 11500:KY(2) = 11500 + FN RN(1900):K(2) = 1:KX(3) = 11500 + FN RN(1500):KY(3) = 9500 - FN RN(2000):K(3) = 1:EW = 5:SH = 3:EV = .1:AD = 243.3322:AS = 4.35331
50260 CR = 300:EC = 492: FOR I = 1 TO 15:FE(I) = 1: NEXT I: FOR I = 1 TO 4:LP(I) = 1: NEXT I
50310 FOR I = 6 TO 9:EN(I) = 200: NEXT I:EN(1) = 900:EN(2) = 700:EN(3) = 700:EN(4) = 600:AL(1) = 900:AL(2) = 700:AL(3) = 700:AL(4) = 600:AS(1) = 35:AS(2) = 30:AS(3) = 25:AS(4) = 10: FOR Z = 1 TO 15:E(Z) = .88 + RND(Z)/10: NEXT Z
50400 BS = 2: FOR I = 0 TO 4:DC(I) = 1: NEXT I: FOR I = 5 TO 15:AL(I) = EN(I): NEXT I
50730 RETURN
55000 FOR Z = 0 TO 5: FOR Z1 = 0 TO 7: READ X(Z,Z1),Y(Z,Z1): NEXT Z1: NEXT Z: FOR Z = 0 TO 2: READ MX(Z),MY(Z): NEXT Z: FOR Z = 1 TO 120:X1 = FN RN(20) +180: POKE 7788 +Z *2,X1: POKE 7789 +Z *2,Z: NEXT Z: RETURN
56000 DATA 10,4,-8 ,12,-10,9,-16,-6,-4,-6,4,-12,4,-4,14,4,6,8,-4,12,-8,6,-12,-2,-6,-6,0,-10,8,-6,10,0,4,6,-2,10,-4,4,-8,-2,-4,-4,0,-10,8,-4,10,0,8,8,-3 ,17,-8,6,-16,-4,-6,-8,0,-16,8,-6,20,0
56010 DATA 6,8,-4,16,-8,10,-12,-4,-6,-8,8,-16,8,-6,10,0,6,6,0,12,-4,6,-12,0,-6,-4,0,-12,8 ,-6,12,-2,35,28,53,28,53,36: DATA 37,36,35,38,37,36,36,36,35,37,38,37: RETURN
61000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"ENTER"
Text found in Starship_Commander_1981_Voyager.do/ENG.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
30 CX(3) = 1: FOR Z = 0 TO 31:Z1(Z) = 0: NEXT Z:Z8 = 0: DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: GOTO 23000
9999 GOTO 9999
10000 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z$(Z) = "":Z1$(Z) = "": NEXT Z: PRINT VA$0;VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU": STOP : GOSUB 22000: GOSUB 22700: RETURN
15000 REM
15030 GOSUB 27000:Z6 = 0: IF CO = 2 THEN Z6 = 1
15100 ON CO GOSUB 21000,21000,21200,21300: RETURN
20000 GOSUB 39000: PRINT VA$1VL$VN$;:Z6 = Z6 *5: IF Z6 THEN PRINT "PSTRN ";
20006 IF Z6 = 0 THEN PRINT "SHIELD";
20010 PRINT " ALC ACT "VA$2" 2 4 6 8 0";: FOR Z = 1 TO 4: PRINT VA$4VK$VN$;: PRINT : PRINT " "Z;VA$1VL$; TAB( 8); FN RD(AL(Z +Z6)); TAB( 13); FN RD(EN(Z +Z6)): NEXT Z: PRINT :Z1$ = "BATT.":X = AL(15):Y = EN(15): GOSUB 29500: PRINT : PRINT "TOTAL":Z4 = Z1(8):Z1$ = "POWER":X = EN:Y = EN: GOSUB 29500: HCOLOR= 6: FOR Z = 19 TO 99 STEP 16: HPLOT 7,Z TO 191,Z: NEXT Z: GOSUB 29000
20215 FOR Z = 1 TO 4:Z5 = AL(Z +Z6)/MP(Z +Z6):Z4 = 0:Z3 = 7:Z2 = Z *16 +5: GOSUB 25000:Z1(Z *2 -1) = Z5:Z5 = EN(Z +Z6)/MP(Z +Z6):Z4 = 0:Z3 = 5:Z2 = Z2 +7: GOSUB 25000:Z1(Z *2) = Z5: NEXT Z:Z2 = 85:Z5 = AL(15)/MP(15):Z4 = 0:Z3 = 7: GOSUB 25000:Z(9) = Z5:Z2 = 92:Z5 = EN(15)/MP(15):Z4 = 0:Z3 = 5: GOSUB 25000:Z1(10) = Z5
20510 Z2 = 109:Z5 = EN/MP:Z3 = 7: GOSUB 25000:Z1(11) = Z5:Z2 = 116:Z5 = EN/MP:Z3 = 5: GOSUB 25000:Z1(12) = Z5: RETURN
20600 GOSUB 39000: PRINT VA$1VL$VN$;: PRINT "ENGINE ALC ACT "VA$2" 2 4 6 8 0": PRINT VA$1;: PRINT : PRINT V1$VL$"LIGHT":Z1$ = "ENGINE":X = AL(11):Y = EN(11): GOSUB 29500: PRINT : PRINT : PRINT "ION":Z1$ = "ENGINE":X = AL(10):Y = EN(10): GOSUB 29500: PRINT :Z1$ = "BATT.":X = AL(15):Y = EN(15): GOSUB 29500
20672 PRINT : PRINT "TOTAL":Z1$ = "POWER":X = EN:Y = EN: GOSUB 29500: HCOLOR= 6: FOR Z = 19 TO 83 STEP 32: HPLOT 7,Z TO 191,Z: NEXT Z: HPLOT 7,99 TO 191,99: GOSUB 29000:Z5 = AL(11)/MP(11):Z4 = 0:Z3 = 7:Z2 = 37: GOSUB 25000:Z1(1) = Z5:Z5 = EN(11)/MP(11):Z2 = 44:Z3 = 5: GOSUB 25000:Z1(2) = Z5
20750 Z5 = AL(10)/MP(10):Z4 = 0:Z3 = 7:Z2 = 69: GOSUB 25000:Z1(3) = Z5:Z3 = 5:Z5 = EN(10)/MP(10):Z4 = 0:Z2 = 76: GOSUB 25000:Z1(4) = Z5:Z2 = 85:Z5 = AL(15)/MP(15):Z4 = 0:Z3 = 7: GOSUB 25000:Z1(5) = Z5:Z2 = 92:Z5 = EN(15)/MP(15):Z3 = 5: GOSUB 25000:Z1(6) = Z5
20785 Z2 = 109:Z5 = EN/MP:Z3 = 7: GOSUB 25000:Z1(7) = Z5:Z2 = 116:Z5 = EN/MP:Z3 = 5: GOSUB 25000:Z1(8) = Z5: RETURN
20800 GOSUB 39000: PRINT VA$1VL$VN$;: PRINT "SYSTEM ALC ACT"VA$2" 2 4 6 8 0": PRINT VA$1;: PRINT "LIFE":Z1$ = "SUPPRT":X = AL(12):Y = EN(12): GOSUB 29500: PRINT : PRINT "GENRL":Z1$ = "OPERAT":X = AL(13):Y = EN(13): GOSUB 29500: PRINT :Z1$ = "COMMUN":X = EN(14):Y = AL(14): GOSUB 29500: PRINT :Z1$ = "BATT."
20840 X = AL(15):Y = EN(15): GOSUB 29500: PRINT : PRINT "TOTAL":Z1$ = "POWER":X = EN:Y = EN: GOSUB 29500: GOSUB 29000: HPLOT 7,19 TO 191,19: HPLOT 7,43 TO 191,43: HPLOT 7,67 TO 191,67: HPLOT 7,83 TO 191,83: HPLOT 7,99 TO 191,99:Z4 = 0:Z5 = AL(12)/MP(12):Z2 = 29:Z3 = 7: GOSUB 25000:Z1(1) = Z5
20900 Z5 = EN(12)/MP(12):Z2 = 36:Z3 = 5: GOSUB 25000:Z1(2) = Z5:Z5 = AL(13)/MP(13):Z2 = 53:Z3 = 7: GOSUB 25000:Z1(3) = Z5:Z5 = EN(13)/MP(13):Z2 = 60:Z3 = 5: GOSUB 25000:Z1(4) = Z5:Z5 = AL(14)/MP(14):Z2 = 69:Z3 = 7: GOSUB 25000:Z1(5) = Z5
20940 Z5 = EN(14)/MP(14):Z2 = 76:Z3 = 5: GOSUB 25000:Z1(6) = Z5:Z5 = AL(15)/MP(15):Z2 = 85:Z3 = 7: GOSUB 25000:Z1(7) = Z5:Z5 = EN(15)/MP(15):Z2 = 92:Z3 = 5: GOSUB 25000:Z1(8) = Z5:Z5 = EN/MP:Z2 = 109:Z3 = 7: GOSUB 25000:Z1(9) = Z5:Z5 = EN/MP:Z2 = 116:Z3 = 5: GOSUB 25000:Z1(10) = Z5: RETURN
21000 GOSUB 20000:Z1$ = "SHIELD ": IF Z6 THEN Z1$ = "POSITRON "
21002 IF D = 0 THEN GOSUB 43000: GOTO 21090
21003 FOR Z = 1 TO 4:Z(Z) = 1: IF D(Z +Z6) THEN Z(Z) = -1
21004 NEXT Z:Z(5) = 1: FOR Z = 1 TO 4:Z$(Z) = Z1$ + STR$(Z): NEXT Z:Z$(5) = "RETURN":ZY = 5:Z = 5: GOSUB 47000: IF X = 5 THEN 21090
21016 GOTO 21020
21018 Z = 5: GOSUB 41000: IF X = 5 THEN 21090
21020 Z7 = X:Z8 = X *2 -1 +Z6:ZA = X +Z6:C = 1:X4 = X:PU = MP(ZA):Z1(Z8) = AL(ZA)/MP(ZA): IF PU >AL(15) +AL(ZA) THEN PU = AL(15) +AL(ZA)
21022 RT = 20:PL = 0:PU = INT(PU/20) *20: IF PU >0 THEN GOSUB 40000:AL(15) = X9:AL(ZA) = RC
21040 GOTO 21018
21090 C = 0: RETURN
21100 Z2 = Z7 *16 +5:Z4 = Z1(Z8):Z3 = 7:Z5 = RC/MP(ZA):Z1(Z8) = Z5: GOSUB 25000: VTAB (Z7 *2 +2): HTAB (9): PRINT RC;:X6 = LEN( STR$(RC)): IF X6 <4 THEN FOR X7 = 1 TO 4 -X6: PRINT " ";: NEXT X7
21150 AL(15) = FN RD(AL(15) +AL(ZA) -RC):AL(ZA) = RC:Z4 = Z1(ZY *2 -1):Z2 = 85:Z5 = AL(15)/MP(15):Z1(ZY *2 -1) = Z5: GOSUB 25000: VTAB (12): HTAB (9): PRINT AL(15);:X6 = LEN( STR$(AL(15))): IF X6 <4 THEN FOR X7 = 1 TO 4 -X6: PRINT " ";: NEXT X7
21189 X9 = AL(15): RETURN
21200 GOSUB 20600:Z$(1) = "LIGHT ENGINES":Z$(3) = "RETURN":Z$(2) = "ION ENGINES": IF D = 0 THEN GOSUB 43000: GOTO 21290
21203 Z(1) = 1:Z(2) = 1: IF D(11) = 3 THEN Z(1) = -1
21204 Z(3) = 1: IF D(10) THEN Z(2) = -1
21205 Z = 3: GOSUB 47000:ZY = 3: IF X = 3 THEN 21290
21213 PL = 0: GOTO 21217
21215 C = 1:Z = 3: GOSUB 41000: IF X = 3 THEN 21290
21217 Z8 = X *2 -1:X4 = X:ZA = 12 -X:Z7 = X4 *2:PU = MP(ZA): IF PU >AL(15) +AL(ZA) THEN PU = AL(15) +AL(ZA)
21225 C = 1:Z3 = 5:RT = 10:PU = INT(PU): IF PU >0 THEN GOSUB 40000:AL(15) = X9:AL(ZA) = RC
21250 GOTO 21215
21290 C = 0: RETURN
21300 GOSUB 20800:Z$(1) = "LIFE SUPPPORT":Z$(2) = "GENERAL OPERATIONS":Z$(3) = "COMMUNICATIONS":Z$(4) = "RETURN": IF D = 0 THEN GOSUB 43000: GOTO 21390
21302 FOR Z = 1 TO 3:Z(Z) = 1: IF D(Z +11) THEN Z(Z) = -1
21303 NEXT Z:Z(4) = 1:PL = 0:Z = 4:ZY = 4: GOSUB 47000: IF X = 4 THEN 21390
21305 GOTO 21315
21315 C = 1:X4 = X:ZA = 11 +X:Z8 = X *2 -1:Z7 = X +.5: IF X >1 THEN Z7 = Z7 +.5
21317 PU = MP(ZA): IF PU >AL(15) +AL(ZA) THEN PU = AL(15) +AL(ZA)
21320 RT = 1:PL = 0: IF ZA = 14 THEN RT = 40
21325 PU = INT(PU/5) *5: IF (PU >0 AND X4 = 3) OR PU >10 THEN GOSUB 40000:AL(15) = X9:AL(ZA) = RC
21330 GOTO 21302
21390 C = 0: RETURN
23000 GOSUB 38000:Y = 30:Z(1) = 3:Z(2) = 4:Z(3) = 8:Z(4) = 9:Z(5) = 13:Z = 5: GOSUB 41000:D = 1:C2 = X: IF C2 <3 THEN D = 0
23005 EN = 0: FOR Z1 = 1 TO 15:EN = EN +AL(Z1): NEXT Z1: IF EN(13) <5 OR AL(13) <5 THEN Z(4) = -9
23040 ON C2 GOSUB 15000,27300,15000,27300,10000: GOTO 23000
24000 REM
24005 GOSUB 37000: VTAB (19): PRINT VA$1;: FOR Z1 = 1 TO 4: VTAB (Z1 +18): HTAB (1): PRINT VL$"POSTRN "Z1;:Z3 = Z1 +5: GOSUB 27100:Z1(Z1) = Z3: NEXT Z1:C1 = 5: IF D THEN GOSUB 24600
24020 IF D = 0 THEN GOSUB 43000
24030 RETURN
24100 GOSUB 38000: GOSUB 26700: GOSUB 37000: VTAB (19): PRINT VA$1;: FOR Z1 = 1 TO 4: VTAB (Z1 +18): HTAB (1): PRINT VL$"SHIELD ";Z1;:Z1(Z1) = Z1:Z3 = Z1: GOSUB 27100: NEXT Z1:C1 = 5: IF D THEN GOSUB 24600
24115 IF D = 0 THEN GOSUB 43000
24120 RETURN
24200 GOSUB 38000: GOSUB 26700: GOSUB 37000: VTAB (19): PRINT VA$1;: VTAB (19): HTAB (1): PRINT VL$"PRT ENG";:Z3 = 11: GOSUB 27100:Z1(1) = 11: PRINT "STB ENG";:Z3 = 12: GOSUB 27100:Z1(2) = 12: PRINT "ION ENG";:Z3 = 10: GOSUB 27100:C1 = 4:Z1(3) = 10: IF D THEN GOSUB 24600
24235 IF D = 0 THEN GOSUB 43000
24240 RETURN
24300 GOSUB 37000: VTAB (19): PRINT VA$1;: VTAB (19): HTAB (1): PRINT "TORPEDO";:Z3 = 5: GOSUB 27100:C1 = 2:Z1(1) = 5: IF D THEN GOSUB 24600
24315 IF D = 0 THEN GOSUB 43000
24320 RETURN
24400 C = 2:PL = 0:PU = 7: IF CA +RT(Z1(CO)) C1 THEN GOSUB 24400: GOTO 24620
24690 RETURN
24700 Z(1) = 1:Z(2) = 1:Z(3) = 1:Z$(1) = "POSITRON":Z$(2) = "TORPEDO":Z$(3) = "RETURN":Z = 3: GOSUB 47000: IF X = 3 THEN 24790
24710 GOSUB 38000: GOSUB 26700: ON X GOSUB 24000,24300: GOTO 24700
24790 RETURN
25000 Z9 = Z4 *70 +121:Z0 = Z5 *70 +121: FOR X8 = Z2 TO Z2 +5: HCOLOR= Z3: IF Z9 >Z0 THEN HCOLOR= 4
25040 IF Z9 < >Z0 THEN HPLOT Z9,X8 TO Z0,X8: NEXT X8
25045 RETURN
26000 GOSUB 39000: HCOLOR= 6: HPLOT 50,34 TO 82,22 TO 90,26 TO 90,30 TO 130,30 TO 130,24 TO 150,24 TO 150,50 TO 130,50 TO 130,44 TO 90,42 TO 90,48 TO 82,52 TO 50,40 TO 70,40 TO 70,34 TO 50,34: HPLOT 130,28 TO 90,28 TO 94,22 TO 136,22 TO 136,24
26060 HPLOT 130,46 TO 90,46 TO 94,52 TO 136,52 TO 136,50: HPLOT 110,28 TO 110,30: HPLOT 118,28 TO 118,30: HPLOT 110,46 TO 110,44: HPLOT 118,46 TO 118,30:Z4 = 3: GOSUB 26900: FOR Z1 = 10 TO 20: HPLOT 50,Z1 TO 156,Z1: NEXT Z1:Z4 = 1: GOSUB 26900: FOR Z1 = 20 TO 30: HPLOT Z1,10 TO Z1,64: NEXT Z1
26100 Z4 = 4: GOSUB 26900: FOR Z1 = 160 TO 170: HPLOT Z1,10 TO Z1,64: NEXT Z1:Z4 = 2: GOSUB 26900: FOR Z1 = 54 TO 64: HPLOT 50,Z1 TO 156,Z1: NEXT Z1: HCOLOR= 7: IF D(11) = 2 OR D(11) = 3 THEN HCOLOR= 5
26130 FOR Z1 = 23 TO 27: HPLOT 96,Z1 TO 126,Z1: NEXT Z1: HCOLOR= 7: IF D(11) = 1 OR D(11) = 3 THEN HCOLOR= 5
26150 FOR Z1 = 47 TO 51: HPLOT 96,Z1 TO 126,Z1: NEXT Z1:Z4 = 10: GOSUB 26900: FOR Z1 = 30 TO 42: HPLOT 138,Z1 TO 150,Z1: NEXT Z1: ROT= 0: SCALE= 1: FOR Z1 = 1 TO 6:Z2 = (Z1 -1) *9 +12:Z3 = 0:Z4 = 6: IF D(5) > = Z1 THEN Z4 = 5:Z3 = 1
26160 POKE 232,102: POKE 233,08: HCOLOR= 7: DRAW 6 AT 35,Z2: IF Z3 = 0 THEN DRAW 6 AT 34,Z2
26185 NEXT Z1: IF D(6) = 0 THEN DRAW 6 AT 72,34
26195 DRAW 6 AT 73,34: IF D(7) = 0 THEN DRAW 6 AT 80,42
26205 DRAW 6 AT 81,42: IF D(8) = 0 THEN DRAW 6 AT 80,24
26215 DRAW 6 AT 81,24: IF D(9) = 0 THEN DRAW 6 AT 118,34
26225 DRAW 6 AT 119,34: HCOLOR= 5: HPLOT 7,74 TO 195,74: HPLOT 7,92 TO 195,92: HPLOT 7,108 TO 195,108: GOSUB 26600: POKE 232,0: POKE 233,145: RETURN
26600 VTAB (11): HTAB (1): PRINT VA$0VK$"AVAILABLE REPAIR DROIDS:"CA" ";: VTAB (13): PRINT VA$1VK$;: HTAB (2):Z1$ = "W": FOR Z1 = 1 TO 25: IF CA RT(Z3) THEN Z1$ = " "
27120 PRINT Z1$;: NEXT Z2: PRINT VL$;: RETURN
27300 IF D = 1 AND (EN(13) <5 OR AL(13) <5) THEN RETURN
27303 IF D THEN EN(13) = EN(13) -5:AL(13) = AL(13) -5
27305 GOSUB 26000:Z = 3:Z(1) = 16:Y = 30:Z(2) = 17:Z(3) = 18: GOSUB 41000:CO = X: PRINT VN$;: ON CO GOSUB 24100,24700,24200: RETURN
29000 HCOLOR= 6: HPLOT 136,17 TO 136,127: HPLOT 150,17 TO 150,127: HPLOT 164,17 TO 164,127: HPLOT 178,17 TO 178,127: HPLOT 192,17 TO 192,127: HPLOT 50,8 TO 50,127: HPLOT 86,8 TO 86,127: HPLOT 120,8 TO 120,127: RETURN
29500 PRINT Z1$ TAB( 8) FN RD(X) TAB( 13) FN RD(Y): RETURN
29999 GOTO 29999
36000 PRINT VY$;: VTAB (2): HTAB (2): PRINT VV$;: VTAB (16): HTAB (27): PRINT VW$;: RETURN
37000 PRINT VY$;: HTAB (4): VTAB (18): PRINT VV$;: VTAB (23): HTAB (25): PRINT VW$;: RETURN
38000 GOSUB 37000: PRINT VN$VP$;: RETURN
39000 GOSUB 36000: PRINT VN$VP$;: RETURN
40000 REM
40017 PRINT VY$VA$1VL$VN$;:R = PU -PL: IF C = 0 THEN RC = PL +R/2
40018 IF C = 1 THEN RC = AL(ZA)
40019 IF C = 2 THEN RC = 0: GOSUB 24500
40020 GOSUB 40100: IF RT = 0 THEN RT = 1
40025 VTAB (23): HTAB (30): PRINT VI$;VK$;"Y";: HTAB (36): PRINT "X";VN$:X = 135: GOSUB 40100:ZT = 0:R1 = 0
40040 X = PDL(0): IF PEEK( -16287) >127 THEN 40080
40045 IF ZT >10 THEN ZT = 10
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (31): VTAB (22): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *(2 ^ INT(ZT/2)) *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40080 VTAB (23): HTAB (30): PRINT VK$;VI$;"X";: HTAB (36): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (22): HTAB (31): PRINT VN$" ";: PRINT VA$4;: FOR Y0 = 1 TO 100: NEXT Y0: RETURN
40100 REM
40105 IF RC >PU THEN RC = PU
40107 IF RC 6 THEN 40130
40124 Z = 6 -Y3: FOR Y2 = 1 TO Z: PRINT " ";: NEXT Y2: POKE 2048,(PU -RC)/(PU -PL) *76 +75: POKE 2049,30: CALL 2050: IF C = 2 THEN GOSUB 24500
40128 IF C = 1 THEN GOSUB 21100
40130 RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: FOR Y0 = 1 TO 100: NEXT Y0: RETURN
42015 GOSUB 41000:CO = X1: GOSUB 39000: GOTO 42015
43000 GOSUB 37000: VTAB (23): HTAB (1): PRINT VA$1VL$" ";: HTAB (4): PRINT "PRESS BUTTON";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (23): HTAB (2): PRINT VA$(1);VK$;"L";: HTAB (18): PRINT "M";:X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (23): HTAB (2): PRINT " ";: HTAB (18): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 38000: GOSUB 45000: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
47000 GOSUB 48000: GOSUB 38000: FOR Z1 = 1 TO Z: HTAB (1): VTAB (18 +Z1):Z(Z1) = (18 +Z1) *Z(Z1): PRINT VA$4VK$VN$" "Z$(Z1);: NEXT Z1:Y = 2: GOSUB 41000: RETURN
48000 PRINT VY$VA$1VK$VI$;: FOR Z1 = 1 TO 5: VTAB (18 +Z1): HTAB (3): PRINT "E";: NEXT Z1: RETURN
Text found in Starship_Commander_1981_Voyager.do/ENGINEER.bas:
10 HIMEM: 35070: GOSUB 50000: PRINT VA$0VN$VK$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"ENG": END
50000 ADRS = 35070: CALL ADRS:VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140): VTAB (3)
50010 HTAB (1): PRINT VI$;: POKE 2072,170: POKE 2073,213: CALL 2074:Z$ = VA$ +"1" +VK$ +" E" +VA$ +"4": PRINT VY$: VTAB (1): HTAB (5): PRINT VI$;VK$;VA$3;" ENGINEERING STATION ";
50260 HTAB (2): VTAB (2): PRINT VV$;: VTAB (16): HTAB (27): PRINT VW$;VN$;VP$;: PRINT VY$;: HTAB (2): VTAB (18): PRINT VV$;: VTAB (23): HTAB (27): PRINT VW$;VN$;VP$: PRINT VY$;: HTAB (30): VTAB (2): PRINT VV$VA$3VK$;" STATUS ": VTAB (24): HTAB (10): PRINT VW$;: VTAB (3): HTAB (1): PRINT VI$;: PRINT Z$;"POWER ";: PRINT Z$;"DAMAGE ";: PRINT
50340 PRINT : PRINT VA$3;VN$;VK$;" ACTION ";VI$;: PRINT Z$;"REDISTRB";: PRINT Z$;"REPAIR ";: PRINT : PRINT : PRINT : PRINT Z$;"RETURN ": PRINT VA$3VN$" SYSTEM ";: PRINT VI$;Z$;"SHIELDS ";: PRINT Z$"WEAPONS ";
50430 PRINT Z$"ENGINES ";: PRINT Z$"SUPPORT ";: PRINT : PRINT VA$3VI$;" COUNTER ";: PRINT VI$;" ";: PRINT VN$" ";: PRINT VI$" ";
50440 PRINT VA$1VK$VI$"X"VL$"RDY ";VK$;"X"VL$"ENT";: PRINT VY$;: HTAB (2): VTAB (18): PRINT VV$;: PRINT VI$;" ": PRINT Z$
50510 PRINT Z$: PRINT Z$: PRINT Z$: PRINT Z$;: HCOLOR= 6: HPLOT 199,5 TO 277,5 TO 277,105 TO 199,105 TO 199,5: VTAB (2): HTAB (1): PRINT VY$VN$VK$VA$0: RETURN
Text found in Starship_Commander_1981_Voyager.do/ENTER.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
30 K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": CALL 35070: POKE 2072,42: POKE 2073,85: CALL 2074: PRINT VY$: VTAB (2): HTAB (10)
31 PRINT VA$4VK$VN$;" STARSHIP COMMANDER ": GOSUB 37000: PRINT VP$;: PRINT VY$: VTAB (22): HTAB (30): PRINT VA$1VK$VI$"X"VL$"RDY ";VK$;"X";VL$;"ENT";
130 VTAB (21): HTAB (31): PRINT VN$" ";VI$;: VTAB (21): HTAB (8): PRINT "PADDLE CONTROL COUNTER ";: HCOLOR= 0: HPLOT 7,159 TO 272,159: HCOLOR= 0: HPLOT 7,167 TO 272,167
400 GOSUB 20000: IF X = 2 THEN POKE 2050,234: POKE 2051,234: POKE 2052,234
500 GOSUB 39000: VTAB (10): HTAB (10): PRINT "OLD GAME OR NEW GAME?": GOSUB 21000: IF X = 1 THEN 2000
700 GOSUB 26000: GOSUB 22000: FOR SH = 1 TO 3: IF K(SH) = 0 THEN 830
820 GOSUB 23000: IF X0 THEN 830
825 GOSUB 24000: GOSUB 25000
830 NEXT SH
840 FOR Z = 1 TO 3: IF K(Z) = 0 THEN KT(Z) = 0: GOTO 890
845 KC(Z) = 150 +15 *KT(Z):MK(Z,0) = 6000 +KT(Z) *1000: FOR X = 2 TO 3:MK(Z,X) = MK(Z,0) *.12: NEXT X:MK(Z,4) = MK(Z,0) *.1:MK(Z,1) = MK(Z,0) *.14:MK(Z,5) = MK(Z,0) *.4:MK(Z,6) = MK(Z,0):MK(Z,7) = MK(Z,0)
850 FOR X = 1 TO 7:KP(Z,X) = 1/7 *MK(Z,0) *.9 + RND(1)/10: NEXT X:KP(Z,0) = MK(Z,0) *.8 + RND(1)/10:MS(Z) = 14 -KT(Z)
890 NEXT Z
900 PRINT VA$0VN$VK$
910 PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"INFO1": STOP
2000 PRINT VA$0VK$VN$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"GET DATA": STOP : VTAB (15): HTAB (18): PRINT VA$4VK$VI$;"YES": VTAB (17): HTAB (18): PRINT VA$4VK$VI$;"NO"
20000 GOSUB 39000: VTAB (8): HTAB (7): PRINT "DO YOU WISH TO HAVE SOUND?": VTAB (15): HTAB (18): PRINT "YES": VTAB (17): HTAB (18): PRINT "N0"
20030 Y = 17:Z(1) = 15:Z(2) = 17:Z = 2: GOSUB 41000: RETURN
21000 VTAB (15): HTAB (18): PRINT VA$4VK$VI$;"OLD": VTAB (17): HTAB (18): PRINT VA$4VK$VI$;"NEW": GOTO 20030
22000 REM
22010 GOSUB 39000: VTAB (8): PRINT TAB( 10);"ENTER THE THE NUMBER": PRINT TAB( 11);"YOU WISH TO FIGHT:": VTAB (12): HTAB (19): PRINT "0NE": VTAB (14): HTAB (19): PRINT "TWO": VTAB (16): HTAB (19): PRINT "THREE":Z(1) = 12:Z(2) = 14:Z(3) = 16:Y = 18:Z = 3: GOSUB 41000: FOR Z = 1 TO 3:K(Z) = 0: IF Z < = X THEN K(Z) = 1
22080 NEXT Z:F1 = X: RETURN
23000 REM
23010 GOSUB 39000: VTAB (6): PRINT TAB( 3);"SHIP NUMBER ";SH;" WILL BE CALLED THE ";VN$VA$VL$: PRINT VA$1VL$: VTAB (7): HTAB (3): PRINT K$(SH)VA$4VK$VI$;". ENTER THE SHIP'S": PRINT TAB( 3);"CLASSIFICATION:": VTAB (12): HTAB (15): PRINT "DESTROYER": VTAB (14): HTAB (15): PRINT "CRUISER": VTAB (16): HTAB (15): PRINT "DREADNAUGHT"
23080 Z(1) = 12:Z(2) = 14:Z(3) = 16:Z = 3:Y = 14: GOSUB 41000:KT(SH) = X: RETURN
24000 REM
24010 GOSUB 39000:C = 0: VTAB (6): HTAB (8): PRINT "HOW FAR AWAY DO YOU WISH": PRINT TAB( 8);"TO BE FROM THE "K$(SH);"?"
24050 VTAB (10): PRINT TAB( 3);VA$1VL$"(USE THE PADDLE CONTROL TO ENTER": PRINT TAB( 3);"ALL YOUR NUMBERS. BY TURNING THE": PRINT TAB( 3);"PADDLE TO THE LEFT, YOU DECREASE": PRINT TAB( 3);"THE NUMBER. TURNING IT TO THE"
24090 PRINT TAB( 3);"RIGHT INCREASES IT. KEEPING IT": PRINT TAB( 3);"IN THE MIDDLE STOPS IT. WHEN": PRINT TAB( 3);"YOU WANT TO ENTER THE NUMBER,": PRINT TAB( 3);"PRESS THE BUTTON.)":PL = 100:PU = 8000:RT = 50: GOSUB 40000:DK(SH) = RC: RETURN
25000 REM
25010 GOSUB 39000:Z$ = "X": IF SH = 2 THEN Z$ = "E"
25015 IF SH = 3 THEN Z$ = "T"
25017 Y8 = 18:X8 = 30: VTAB (5): HTAB (4): PRINT "ENTER THE BEARING OF "K$(SH)" (";VA$1Z$VA$4")": VTAB (6): PRINT TAB( 4)"IN DEGREES:": VTAB (20): HTAB (2): PRINT VA$1VL$; CHR$(143) CHR$(143)"DISTANCE: ";DK(SH); TAB( 24);VK$"Z"VL$" = USS RANGER" CHR$(143) CHR$(144);
25036 VTAB (13): HTAB (1): PRINT "180 DEGREES" TAB( 30)"0 DEGREES": VTAB (13): HTAB (19): PRINT VK$"Z";:C = 1:PU = 359:PL = 0:RT = 1: GOSUB 40000:RC = RC *.0174533:KX(SH) = COS(RC) *DK(SH) +10000:KY(SH) = SIN(RC) *DK(SH) +10000: RETURN
25500 REM
25510 VTAB (Y8): HTAB (X8): PRINT VI$VK$" ":X7 = RC *.0174533:X8 = COS(X7) *6.85 +20:Y8 = 13 - SIN(X7) *6: VTAB (Y8): HTAB (X8): PRINT Z$;: PRINT VN$;: RETURN
26000 GOSUB 39000: VTAB (8): PRINT TAB( 3);"DO YOU WISH TO MANUALLY SET UP THE": PRINT TAB( 3);"SHIPS OR HAVE THE COMPUTER DO IT?": VTAB (12): PRINT TAB( 16);"MANUALLY": VTAB (14): PRINT TAB( 16);"COMPUTER":Z(1) = 12:Z(2) = 14:Z = 2:Y = 15: GOSUB 41000:X0 = X -1
26070 RETURN
37000 PRINT VY$: VTAB (22): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;VA$4VI$: RETURN
38000 PRINT VY$: VTAB (19): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;: RETURN
39000 GOSUB 38000: PRINT VA$4VI$VK$;VP$;: RETURN
40000 IF PU >4000 THEN PU = 4000
40005 Z1$ = "": PRINT VY$;VA$1;VL$;VN$;:R = PU -PL: IF C = 0 THEN RC = PL +R/2
40020 GOSUB 40100 IF RT = 0 THEN RT = 1
40025 VTAB (22): HTAB (30): PRINT VI$;VK$;"Y";: HTAB (36): PRINT "X";VN$:X = 135: GOSUB 40100:ZT = 0:R1 = 0
40040 X = PDL(0): IF PEEK( -16287) >127 THEN 40080
40045 IF ZT >10 THEN ZT = 10
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (31): VTAB (21): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *(2 ^ INT(ZT/2)) *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40080 VTAB (22): HTAB (30): PRINT VK$;VI$;"X";: HTAB (36): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (21): HTAB (31): PRINT VN$" ";: PRINT VA$4;: RETURN
40100 REM
40105 IF RC >PU THEN RC = PU
40107 IF RC 6 THEN 40190
40124 Z = 6 -Y3: FOR Y2 = 1 TO Z: PRINT " ";: NEXT Y2: POKE 2048,(PU -RC)/(PU -PL) *75 +75: POKE 2049,100 -C *75: CALL 2050: IF C = 1 THEN GOSUB 25500
40190 RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (20): HTAB (6): PRINT VA$1VK$"L";: HTAB (34): PRINT "M":X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (20): HTAB (6): PRINT " ";: HTAB (34): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 45000: PRINT VA$4VK$VI$;: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
Text found in Starship_Commander_1981_Voyager.do/GET DATA.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140): HGR : CALL 35070
100 POKE 2072,85: POKE 2073,42: CALL 2074: PRINT VY$: VTAB (2): HTAB (10): PRINT VA$4VK$VN$;" STARSHIP COMMANDER ": GOSUB 39000: GOSUB 10000: PRINT VA$0VK$VN$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"INFO1"
1070 STOP
10000 REM
10001 GOSUB 12000: GOSUB 39000: CALL 48251: VTAB (12): HTAB (13): PRINT "LOADING DATA": ONERR GOTO 15000
10010 VTAB (1): PRINT VA$0VN$VK$:Z$ = CHR$(4): PRINT Z$;"OPEN STARSHIP DATA": PRINT Z$;"READ STARSHIP DATA": FOR Z = 7790 TO 8030: INPUT Z1: POKE Z,Z1: NEXT Z: FOR Z = 1 TO 15: INPUT EN(Z): INPUT D(Z): INPUT E(Z): INPUT RP(Z): INPUT RT(Z): INPUT AL(Z): NEXT Z
10090 FOR Z = 1 TO 3: INPUT KX(Z): INPUT KY(Z): INPUT KW(Z): INPUT KH(Z): INPUT DK(Z): INPUT XS(Z): INPUT YS(Z): INPUT XA(Z): INPUT YR(Z): INPUT EV(Z): INPUT AX(Z): INPUT AY(Z): INPUT K2(Z): INPUT SD(Z): INPUT MS(Z): INPUT KT(Z): INPUT KC(Z): INPUT K(Z): FOR Z2 = 0 TO 7: INPUT KP(Z,Z2): INPUT MK(Z,Z2): NEXT Z2: NEXT Z: INPUT AX(0): INPUT AY(0)
10170 FOR Z = 1 TO 4: FOR Z1 = 1 TO 3: INPUT CM(Z,Z1): INPUT CO(Z,Z1): INPUT CT(Z,Z1): INPUT PC(Z,Z1): NEXT Z1: INPUT AS(Z): INPUT DT(Z): INPUT LS(Z): NEXT Z: FOR Z = 0 TO 9: INPUT F(Z): NEXT Z
10180 FOR Z = 1 TO 3: INPUT VH(Z): INPUT VR(Z): NEXT Z: INPUT CA: INPUT EX: INPUT EY
10190 INPUT F1: INPUT CM(0,0)
10240 FOR Z = 1 TO 6: INPUT LP(Z): NEXT Z: INPUT MP: INPUT CB: INPUT B1: INPUT F9: INPUT F1: INPUT FF: INPUT F2: INPUT DA: INPUT BS: INPUT EV: INPUT AE: INPUT AB: INPUT BP: INPUT FH: INPUT LM: INPUT LP: INPUT EW: INPUT EH: INPUT EP: INPUT AL: INPUT AP: INPUT ED: INPUT AS: INPUT FS: INPUT FA: INPUT MS: INPUT MN: PRINT Z$"CLOSE STARSHIP DATA"
10310 POKE 216,0: CALL 35070: GOSUB 39000: CALL 48265: VTAB (10): PRINT "PLACE GAME DISKETTE BACK IN DISK": PRINT : PRINT "DRIVE.": POKE 216,0: GOSUB 43000: ONERR GOTO 16000
10360 RETURN
12000 GOSUB 39000: VTAB (7): PRINT "REPLACE GAME DISKETTE WITH YOUR DATA": PRINT : PRINT "DISKETTE. THE DATA DISKETTE SHOULD BE": PRINT : PRINT "A FORMATTED 16 SECTOR DISKETTE.": GOSUB 43000: RETURN
15000 REM
15010 POKE 216,0: ONERR GOTO 15019: PRINT CHR$(4)"CLOSE STARSHIP DATA"
15019 POKE 216,0: CALL 35070: VTAB (15): PRINT VA$4VK$VI$; TAB( 15): PRINT "DISK ERROR": POKE 2048,90: POKE 2049,255: CALL 2050: VTAB (17): HTAB (2): PRINT "PLACE GAME DISKETTE BACK IN DISK DRIVE": ONERR GOTO 15019
15025 GOSUB 43000: PRINT VA$0VK$VN$: PRINT CHR$(4);"RUN DIM": STOP
16000 REM
16015 POKE 216,0: CALL 35070: VTAB (15): PRINT VA$VK$VI$; TAB( 15): PRINT "DISK ERROR": POKE 2048,90: POKE 2049,255: CALL 2050: GOSUB 43000: GOTO 10310
20030 Y = 17:Z(1) = 15:Z(2) = 17:Z = 2: GOSUB 41000: RETURN
38000 PRINT VY$: VTAB (22): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;: RETURN
39000 GOSUB 38000: PRINT VA$4VI$VK$;VP$;: RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43000 VTAB (20): HTAB (9): PRINT VL$VA$1"PRESS BUTTON WHEN READY";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (20): HTAB (6): PRINT VA$1VK$"L";: HTAB (34): PRINT "M":X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (20): HTAB (6): PRINT " ";: HTAB (34): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 45000: PRINT VA$4VK$VI$;: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
Text found in Starship_Commander_1981_Voyager.do/HELLO.bas:
1 REM STARSHIP COMMANDER VER 1.20 12/23/81 15:15
10 POKE 104,64: POKE 16384,0
20 PRINT CHR$(4)"RUN START"
Text found in Starship_Commander_1981_Voyager.do/INFO1.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 2072,213: POKE 2073,170: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X *1000)/1000: DEF FN O(X) = INT(X/45 +.5): DEF FN RN(X) = INT( RND(1) *X +1)
15 IF FS >MS THEN FS = MS
17 IF FS 6500 AND K(Z) = 1 THEN VR(Z) = 1:K(Z) = 0: VTAB (19 +Z1): HTAB (7): PRINT VL$VA$1VN$;"*THE "K$(Z)" IS OUT OF RANGE*": POKE 2048,70: CALL 2050
10020 IF VR(Z) THEN Z1 = Z1 +1
10030 NEXT Z: IF K(1) OR K(2) OR K(3) THEN 61000
10050 PRINT VA$0VK$VN$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"BYE"
10060 STOP
15000 REM
15010 XH = XH *.0174533:X = COS(XH) *S ^3 +X:Y = SIN(XH) *S ^3 +Y: RETURN
15100 REM
15110 D1 = XE -XK:D2 = YE -YK:XA = ATN(D1/(D2 +1E -29)) *57.29578:XI = ATN(D2/(D1 +1E -29)) *57.29578: IF XE < = XK AND YE = >YK THEN ES = 360 +XI
15160 IF XE < = XK AND YE < = YK THEN ES = 90 -XA
15170 IF XE = >XK AND YE < = YK THEN ES = 180 +XI
15180 IF XE = >XK AND YE = >YK THEN ES = 270 -XA
15185 EE = ES -180:SD = SQR((XE -XK) ^2 +(YE -YK) ^2):SW = SD ^(1/3):EE = FN D(EE):ES = FN D(ES): RETURN
16000 REM
16010 X = EN(13): FOR Z = 1 TO 12
16020 IF RP(Z) >99 THEN RP(Z) = 99
16025 X1 = RP(Z): IF X1 = 0 THEN 16080
16030 X2 = RT(Z): IF RT(Z) >X1 THEN X2 = X1
16040 X3 = INT(X/3): IF X2 >X3 THEN X2 = X3
16045 IF X 0 THEN D(11) = 1:RP(11) = 0
16088 IF RP(11) >0 AND RP(12) < = 0 THEN D(11) = 2:RP(12) = 0
16090 AL(13) = AL(13) -EN(13) +X:EN(13) = X: RETURN
17420 P = ( ABS(SP ^3)/100 +1) ^(2.5 - SGN(SP) *.4)
17480 IF ZE >0 THEN P = P *ZE +P
17490 RETURN
17520 REM
17560 IF ZE THEN P = P -ZE *P/100:IP = IP -ZE/100 *IP
17580 IF P = 0 THEN WX = 0:WN = 0: GOTO 17640
17600 WX = (P ^(1/2.1) -1) *100:WX = ABS(WX) ^(1/3) * SGN(WX):WN = -(P ^(1/2.9) -1) *100:WN = ABS(WN) ^(1/3) *(WN)
17640 XI = IP/5:NI = IP/7: RETURN
20000 REM
20005 GOSUB 21100:SC = ABS(EW ^3): FOR Z = 1 TO 3: IF K(Z) AND DK(Z) >SC THEN SC = DK(Z)
20040 NEXT Z: IF SC = 0 THEN SC = 1
20045 SC = SC *1.1
20050 SC = SC/10:Z$(1) = "X":Z$(2) = "E":Z$(3) = "T": PRINT CHR$(143) CHR$(143);: VTAB (23): HTAB (20): PRINT VA$1VL$VI$; FN RD(SC *10)" MEGAMETERS";VI$VK$;: PRINT CHR$(143) CHR$(144);: FOR Z = 0 TO 10 STEP 2: IF Z >0 THEN X = (E3 -OX(0)) *(Z -2)/10 +OX(0):Y = (E4 -OY(0)) *(Z -2)/10 +OY(0):Z$ = " ": GOSUB 21000
20070 X = (E3 -OX(0)) *Z/10 +OX(0):Y = (E4 -OY(0)) *Z/10 +OY(0):Z$ = "Z": IF Z2 = 1 THEN Z$ = " "
20080 GOSUB 21000: FOR Z1 = 1 TO 3: IF K(Z1) = 0 THEN 20190
20125 IF Z >0 THEN X = (KX(Z1) -OX(Z1)) *(Z -2)/10 +OX(Z1):Y = (KY(Z1) -OY(Z1)) *(Z -2)/10 +OY(Z1):Z$ = " ": GOSUB 21000
20130 X = (KX(Z1) -OX(Z1)) *Z/10 +OX(Z1):Y = (KY(Z1) -OY(Z1)) *Z/10 +OY(Z1):Z$ = Z$(Z1): GOSUB 21000
20190 NEXT Z1: POKE 2048,255: POKE 2049,76: CALL 2050
20196 NEXT Z: RETURN
21000 REM
21010 X = FN RD(X -E3)/SC +20:Y = FN RD(E4 -Y)/SC *.875 +12: IF X > = 0 AND X < = 40 AND Y > = 2 AND Y < = 22 THEN VTAB (Y): HTAB (X): PRINT Z$;
21090 RETURN
21100 POKE 2072,127: POKE 2073,127: CALL 2074: HCOLOR= 1: FOR Z = 0 TO 7: HPLOT 0,Z TO 279,Z: NEXT Z: VTAB (1): HTAB (12): PRINT VN$VA$4VK$"MOTION DETECTOR";: VTAB (23): HTAB (1): PRINT VA$1VL$VI$;"SCALE: ": PRINT "KEY: ";VK$"Z"VL$"=RANGER "VK$;: IF K$(1) THEN PRINT "X"VL$"=DETAS ";VK$;
21160 IF K$(2) THEN PRINT "E"VL$"=MILAS ";VK$;
21170 IF K$(3) THEN PRINT "T"VL$"=KAMAS";VK$;
21180 PRINT VK$;: HCOLOR= 2: HPLOT 56,180 TO 126,180: HCOLOR= 1: HPLOT 0,177 TO 279,177: RETURN
25000 REM
25005 Y6 = FN RN(50)
25040 POKE 2048,255 -5 *Y6: POKE 2049,20: CALL 2050: RETURN
41000 REM
41010 FOR SH = 1 TO 3: IF K(SH) = 0 THEN 41115
41011 IF KC(SH) < = 0 THEN MS(SH) = 0: GOTO 41030
41012 IF MS(SH) <14 -KT(SH) THEN 41030
41015 MS(SH) = 14 -KT(SH)
41020 IF RND(1) <.14 AND VH(SH) -KP(SH,YS(SH)) >300 THEN MS(SH) = FN RN(MS(SH) -1) + RND(1)
41030 P = KP(SH,6):Z3 = EV(SH): GOSUB 17520: IF WX >KW(SH) +6 THEN WX = KW(SH) +6
41060 IF WN MS(SH) THEN WX = MS(SH)
41080 IF WN < -MS(SH)/2 THEN WN = -MS(SH)/2
41090 WH(SH) = WX:WL(SH) = WN:Y0 = 100 +(3 -KT(SH)) *25
41110 TA(SH) = (2198/( ABS(KW(SH)) ^3 +1)) ^.4 *(18 +(3 -KT(SH)) *3): IF TA(SH) >Y0 THEN TA(SH) = Y0
41115 NEXT SH: FOR SH = 1 TO 3: IF K(SH) = 0 THEN 41280
41210 XE = EX:YE = EY:XK = KX(SH):YK = KY(SH): GOSUB 15100:Z(SH) = EE:X2(SH) = SW:XE = AX(0):YE = AY(0): GOSUB 15100:Z1(SH) = EE:W(SH) = SW
41280 NEXT SH: FOR SH = 1 TO 3: IF CB AND B1 THEN B1 = FN RN(4) -1:Z1 = MS(SH):Z2 = FN D(Z1(SH) +180): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41281 X = 0: FOR Z = 1 TO F1:X = X +K(Z):X2 = Z: NEXT Z: IF X = 1 AND EN >KP(X2,0) *2 AND KP(X2,0) <3000 AND MS(X2) >MS THEN Z1 = MS(X2):Z2 = FN D(Z1(X2) +180): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41283 T0 = EW: IF T0 <6.5 THEN T0 = T0 +7 + RND(1)
41285 W(5) = -1: IF RND(1) <.5 THEN W(5) = 1
41287 IF KP(SH,YS(SH)) <200 AND KP(SH,0) >1500 AND RND(1) <.7 THEN Z1 = RND(1) *2.5:Z2 = Z1(SH) +W(5) *90 + FN RN(20) +W(5): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41290 IF DK(SH) <1200 THEN 41310
41291 IF YS(SH) = 4 THEN Z1 = RND(1):Z2 = Z1(SH): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41293 IF DK(SH) <2000 THEN 41310
41294 IF YS(SH) = 4 THEN Z1 = RND(1):Z2 = Z1(SH): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41295 Z1 = T0 + RND(1) *2.5:Z2 = Z1(SH): IF Z1 <7 THEN Z1 = 8 + RND(1) *3
41298 IF Z1 >6 AND (YS(SH) = 2 OR YS(SH) = 3) THEN Z1 = Z1/2
41305 GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41310 IF DK(SH) <2000 THEN 41360
41315 IF XS(SH) < >4 OR EW <6 THEN 41340
41320 Z1 = T0 + RND(1) *2.5:Z2 = Z1(SH): GOSUB 49900: IF T1 <30 THEN KW = T4:KH = T2: GOTO 50000
41340 Z1 = FN RN(6) + RND(1) *3 -.5:Z2 = Z1(SH) +30 - FN RN(60): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41360 IF DK(SH) <1500 THEN 41405
41400 IF RND(1) <.2 AND KW(SH) <7 THEN Z1 = FN RN(3) +6 + RND(1):Z2 = FN D( FN RN(70) +Z1(SH)): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41403 IF RND(1) <.15 AND KW(SH) <7 THEN Z1 = FN RN(8) + RND(1):Z2 = FN D( FN RN(185) +Z1(SH)): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41405 IF DK(SH) <1200 THEN 41500
41410 IF XS(SH) < >4 OR EW <6 OR RND(1) <.3 THEN 41430
41415 Z1 = T0 + RND(1) + RND(1):Z2 = Z1(SH): GOSUB 49900: IF T1 <40 THEN KW = T4:KH = T2: GOTO 50000
41430 Z1 = FN RN(3) +3 + RND(0) -1:Z2 = Z1(SH) +35 - FN RN(70): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41500 IF KP(SH,0) >1000 THEN 41600
41510 KW = W(SH) ^3:Z2 = Z1(SH): IF RND(1) <.5 THEN KW = X2(SH) ^3:Z2 = Z(SH)
41530 T = 600 + FN RN(500):Z9 = KW -T:Z1 = ABS(Z9) ^(1/3) * SGN(Z9): GOSUB 49900:KW = T4:KH = T2: GOTO 50000
41600 Z1 = Z1(SH): IF RND(1) <.5 THEN Z1 = Z(SH)
41610 Z2 = Z1 +30 - FN RN(60):Z1 = 8 - FN RN(10) + RND(1)
41613 IF RND(1) <.25 THEN Z1 = DK(SH) ^(1/3) - RND(1)
41615 GOSUB 49900
41620 KW = T4:KH = T2: GOTO 50000
49900 GOSUB 25000
49910 X4 = WL(SH):X3 = WH(SH):X2 = KH(SH) -TA(SH):X1 = KH(SH) +TA(SH): GOSUB 55000: RETURN
50000 X = KX(SH):Y = KY(SH):S = KW:XH = KH: GOSUB 15000:KX(SH) = X:KY(SH) = Y:KH(SH) = KH:KW(SH) = KW:X = (( ABS(KW) ^3)/100 +1) ^(3 - SGN(KW) *.9):KP(SH,6) = KP(SH,6) -X: IF KP(SH,6) <0 THEN KP(SH,6) = 0
50020 IF RND(1) >.4 THEN MS(SH) = 14 -KT(SH)
50050 GOSUB 25000: NEXT SH: RETURN
55000 REM
55020 T1 = 0:T2 = 0:T3 = 0:T4 = 0:X2 = FN D(X2):X1 = FN D(X1):Z2 = FN D(Z2): IF ABS(X1 -X2) < = 1 THEN T2 = X1:T1 = ABS(T2 -Z2): GOTO 55150
55025 IF (X1 > = X2 AND Z2 > = X2 AND Z2 < = X1) OR (X1 < = X2 AND (Z2 > = X2 OR Z2 < = X1)) THEN T2 = Z2: GOTO 55150
55050 T2 = X2: IF X1 X3 THEN T4 = X3:T3 = ABS(Z1 -X3): GOTO 55190
55170 T4 = Z1
55190 T2 = FN D(T2): RETURN
56000 REM
56005 IF K(AL) = 0 AND EP >0 THEN EP = 0
56010 IF EP = 0 THEN X = EX:Y = EY:S = FS:XH = FA: GOSUB 15000:E3 = X:E4 = Y:E1 = FS:E2 = FA: GOTO 56135
56020 XE = EX:YE = EY:XK = KX(AL):YK = KY(AL): IF AP THEN XK = AX(AL):YK = AY(AL)
56040 GOSUB 15100:E2 = ES:E1 = AS: IF EP = 2 THEN E1 = ABS(SD -ED) ^(1/3) * SGN(SD -ED)
56050 IF E1 >9 AND EP = 2 THEN E1 = 9
56055 IF E1 < -6 AND EP = 2 THEN E1 = -6
56070 X2 = AB:X1 = AE:X3 = MS:X4 = MN:Z1 = E1:Z2 = E2: GOSUB 55000:E1 = T4:E2 = T2:XH = E2:S = E1:X = EX:Y = EY: GOSUB 15000:E3 = X:E4 = Y:FS = E1:FA = E2
56135 SP = E1:ZE = EV
56160 GOSUB 17420:EN(11) = EN(11) -P:AL(11) = AL(11) -P: IF EN(11) <0 THEN EN(11) = 0
56170 IF AL(11) <0 THEN AL(11) = 0
56190 RETURN
56200 REM
56210 FOR SH = 1 TO 3: IF K(SH) = 0 THEN 56280
56220 KP(SH,0) = 0: FOR Z = 1 TO 7:KP(SH,0) = KP(SH,0) +KP(SH,Z): NEXT Z
56280 NEXT SH: RETURN
56300 REM
56302 FOR Z = 1 TO 4: FOR Z1 = 1 TO 3: IF CT(Z,Z1) = 1 THEN DT(Z) = Z1: GOTO 56304
56303 NEXT Z1
56304 NEXT Z
56305 GOSUB 56200: FOR SH = 1 TO 3: IF KP(SH,0) <5000 THEN 56350
56315 FOR Z = 1 TO 4:Z(Z) = .15 *KP(SH,0): NEXT Z:Z(5) = .05 *KP(SH,0):Z(6) = .20 *KP(SH,0): GOTO 58000
56350 IF KP(SH,0) <3000 THEN 56400
56360 FOR Z = 1 TO 4:Z(Z) = .15 *KP(SH,0): NEXT Z:Z(YS(SH)) = Z(YS(SH)) +.05 *KP(SH,0):Z(5) = .10 *KP(SH,0):Z(6) = .2 *KP(SH,0): GOTO 58000
56400 IF KP(SH,0) <2000 THEN 56600
56410 FOR Z = 1 TO 4:Z(Z) = .1 *KP(SH,0):Z1(Z) = Z: NEXT Z:Z1(0) = 3:Z1(5) = 2: IF DK(SH) >MS ^3 AND XS(SH) < >4 THEN X = YS(SH):X1 = .05 *KP(SH,0):Z(Z1(X -1)) = Z(Z1(X -1)) +X1:Z(Z1(X +1)) = Z(Z1(X +1)) +X1:Z(Z1(X)) = Z(Z1(X)) +X1:FK = -1: GOTO 56500
56440 IF RND(1) <.6 THEN X = YS(SH):X1 = .08 *KP(SH,0): FOR Z = X -1 TO X +1:Z(Z1(Z)) = Z(Z1(Z)) +X1: NEXT Z: GOTO 56500
56450 X2 = .02 + RND(1)/10:X1 = (.25 -X2)/3:X2 = (X2 -X1 *3) *KP(SH,0):X1 = X1 *KP(SH,0): FOR Z = 1 TO 4:Z(Z) = Z(Z) +X1: NEXT Z:Z(YS(SH)) = Z(YS(SH)) +X2
56500 Z(5) = .08 *KP(SH,0):Z(6) = .22 *KP(SH,0): GOTO 58000
56600 IF KP <1000 THEN 56800
56610 IF RND(1) <.5 THEN 56700
56620 X1 = .15 *KP(SH,0): FOR Z = 1 TO 4:Z(Z) = X1: NEXT Z:Z(YS(SH)) = Z(YS(SH)) +.1 *KP(SH,0):Z( FN RN(4)) = Z( FN RN(4)) +.05 *KP(SH,0):Z(5) = .08 *KP(SH,0):Z(6) = .15 *KP(SH,0): GOTO 58000
56700 X1 = .12 *KP(SH,0): FOR Z = 1 TO 4:Z(Z) = X1: NEXT Z:X1 = .03 *KP(SH,0): FOR Z = 1 TO 4:Z(Z) = X1: NEXT Z: FOR Z = 1 TO 5:X = FN RN(4):Z(X) = Z(X) +X1: NEXT Z:Z(5) = .08 *KP(SH,0):Z(6) = .20 *KP(SH,0): GOTO 58000
56800 X1 = .1 *KP(SH,0): FOR Z = 1 TO 4:Z(Z) = X1: NEXT Z:Z(YS(SH)) = X1 *3:Z(5) = .1 *KP(SH,0):Z(6) = .2 *KP(SH,0): GOTO 58000
58000 Z5 = KP(SH,YS(SH))
58010 Z1 = KP(SH,0): FOR Z = 1 TO 6:Z2 = KP(SH,Z) +180 + FN RN(50): IF Z(Z) >Z2 THEN Z(Z) = Z2
58045 IF Z(Z) >MK(SH,Z) THEN Z(Z) = MK(SH,Z)
58050 KP(SH,Z) = Z(Z):Z1 = Z1 -Z(Z): NEXT Z:KP(SH,7) = Z1: IF MK(SH,0) 300 THEN KP(SH,YS(SH)) = 0
58095 NEXT SH: RETURN
59000 IF EV *100 >EN(10) THEN EV = EN(10)/100
59005 IF EV *100 >AL(10) THEN EV = AL(10)/100
59010 IF D(10) THEN EV = 0
59015 Z = .15 *E(10) * SQR(CT(3,DT(3))): IF EV >Z THEN EV = Z
59017 EV = INT(EV *100)/100
59020 EN(10) = EN(10) -EV *100:AL(10) = AL(10) -EV *100
59090 RETURN
61000 REM
61002 VTAB (2): PRINT VN$VA$0VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"INFO2"
Text found in Starship_Commander_1981_Voyager.do/INFO2.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 2072,213: POKE 2073,170: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X *1000)/1000: DEF FN O(X) = INT(X/45 +.5): DEF FN RN(X) = INT( RND(1) *X +1)
15 FOR X = 1 TO 7:CX(X) = 0: NEXT X
150 DEF FN RF(X) = ((3700 -X)/3700) ^.286: DEF FN CE(X) = PEEK(X) -100:DA = DA +1: FOR Z = 1 TO 6: IF LP(Z) >0 THEN LP(Z) = LP(Z) +1: IF LP(Z) >4 THEN LP(Z) = 0
310 SP(Z) = 0: NEXT Z:LP = 0:FH = 0:Z(6) = 0: FOR Z = 1 TO 6:Z(Z) = 0: IF LP(Z) >0 THEN LP = LP +1:Z(LP) = LP(Z)
325 NEXT Z: FOR Z = 1 TO 6:LP(Z) = Z(Z): NEXT Z: IF CB < >6 AND B = 0 THEN CB = FN RN(5): IF EN <4500 AND RND(1) <.4 THEN CB = 6
350 FOR Z = 0 TO 9:LW(Z) = 0:F(Z) = 0: NEXT Z: GOSUB 30500:ZE = EV: GOSUB 30000: GOSUB 19000:X3 = 0: GOSUB 25000:EX = E3:EY = E4:EW = E1:EH = E2: GOSUB 32000:SP = EW:P = EN(11):ZE = EV
370 XS = EW:XC = EH: GOSUB 25000: GOSUB 17000: GOSUB 25000: GOSUB 17700: FOR SH = 1 TO 3: GOSUB 25000: IF K(SH) = 1 THEN GOSUB 15200:AX(SH) = NX:AY(SH) = NY
950 NEXT SH:X = EX:Y = EY:XH = EH: GOSUB 15000:AX(0) = X:AY(0) = Y: GOSUB 25000: GOSUB 21000: GOSUB 25000: GOSUB 16000: GOSUB 25000: GOSUB 14000: GOSUB 23200: REM
1010 GOSUB 23000: REM
1012 F9 = 1:Z1 = 0:Z2 = 0: FOR Z = 1 TO 3: IF K(Z) THEN Z1 = Z1 +1:Z2 = Z
1014 NEXT Z: IF EN(XS(Z2)) >150 AND Z1 = 1 AND KP(Z2,0) = 0 THEN CB = FN RN(6)
14010 FF = 1
14020 IF EN >3000 AND K(1) +K(2) +K(3) <2 THEN FF = 2
14090 RETURN
15000 REM
15010 XH = XH *.0174533:X = COS(XH) *S ^3 +X:Y = SIN(XH) *S ^3 +Y: RETURN
15100 REM
15110 D1 = XE -XK:D2 = YE -YK:XA = ATN(D1/(D2 +1E -29)) *57.29578:XI = ATN(D2/(D1 +1E -29)) *57.29578: IF XE < = XK AND YE = >YK THEN ES = 360 +XI
15160 IF XE < = XK AND YE < = YK THEN ES = 90 -XA
15170 IF XE = >XK AND YE < = YK THEN ES = 180 +XI
15180 IF XE = >XK AND YE = >YK THEN ES = 270 -XA
15185 EE = ES -180:SD = SQR((XE -XK) ^2 +(YE -YK) ^2):SW = SD ^(1/3):EE = FN D(EE):ES = FN D(ES): RETURN
15200 REM
15210 X = KX(SH):Y = KY(SH):XH = KH(SH): GOSUB 15000:NX = X:NY = Y: RETURN
15500 REM
15510 X = FN D(X): IF X > = 315 OR X <45 THEN SL = 1
15530 IF X > = 45 AND X <135 THEN SL = 2
15540 IF X > = 135 AND X <225 THEN SL = 4
15550 IF X > = 225 AND X <315 THEN SL = 3
15590 RETURN
16000 REM
16010 EN = 0: FOR I = 1 TO 15:EN = EN +AL(I): NEXT I:X = EN(15)/MP(15) *CE(2,DT(2)) *FE(15): IF EN >9000 OR X <0 THEN X = 0
16015 IF EN <1000 THEN X = .34
16020 IF EW <0 OR EW >6 THEN X = 0
16025 Z5 = X *60:AL(15) = AL(15) +Z5:EN(15) = EN(15) +Z5
16040 IF AL(15) <0 THEN AL(15) = 0
16050 IF EN(15) <0 THEN EN(15) = 0
16055 IF AL(15) >MP(15) THEN AL(15) = MP(15)
16057 IF EN(15) >MP(15) THEN EN(15) = MP(15)
16060 RETURN
17000 REM
17020 XA = (1729/( ABS(XS) ^3 +1)) ^.26 *22 *CE(3,DT(3)) ^.5: IF XA >100 +CE(3,DT(3)) *50 THEN XA = CE(3,DT(3)) *50 +100
17040 XA = XA +EN(10)/4 *E(10): IF ABS(XS) >.75 THEN XA = ((FE(11) +FE(12))/2) *XA/2 +XA/2
17050 IF (E(10) = 0 OR AL(10) = 0) AND (E(11) = 0 OR AL(11) = 0) THEN XA = 1
17080 XE = XC +XA:XB = XC -XA:XE = FN D(XE):XB = FN D(XB):XE = FN D( FN RD(XE)):XB = FN D( FN RD(XB)):AE = XE:AB = XB: RETURN
17180 REM
17320 MA = 6 *((FE(11) +FE(12))/2) ^.34 *CE(2,DT(2)):MS = SP +MA:MN = SP -MA: IF MA = 0 THEN MS = SP/2:MN = SP/2
17360 IF MS >LS THEN MS = LS
17380 IF MN < -LS/2 THEN MN = -LS/2
17400 RETURN
17420 P = ( ABS(SP ^3)/100 +1) ^(2.5 - SGN(SP) *.4)
17460 IF ZE >0 THEN P = P *ZE +P
17490 RETURN
17520 REM
17560 IF ZE THEN P = P -ZE *P/100:IP = IP -ZE *IP/100
17580 IF P < = 0 THEN WX = 0:WN = 0: GOTO 17690
17600 WX = (P ^(1/2.1) -1) *100:WX = ABS(WX) ^(1/3) * SGN(WX):WN = -(P ^(1/2.9) -1) *100:WN = ABS(WN) ^(1/3) * SGN(WN)
17690 RETURN
17700 REM
17740 GOSUB 17180: GOSUB 17520
17745 IF WN MS THEN WX = MS
17800 IF WN = 0 AND WX = 0 THEN MS = SP:MN = SP
17820 MS = WX:MN = WN
17940 IF MS MP(Z) THEN AL(15) = AL(15) +AL(Z) -MP(Z):AL(Z) = MP(Z)
19010 IF EN(Z) = AL(Z) THEN 19100
19020 IF AL(Z) AL(Z) THEN EN(Z) = AL(Z)
19100 NEXT Z:EN(15) = AL(15): RETURN
21000 REM
21010 E1 = AL(1) +AL(2) +AL(3) +AL(4): FOR Z = 1 TO 4: IF D(Z) THEN AS(Z) = 0:AL(Z) = 0
21030 NEXT Z: IF BS < >0 THEN 21110
21040 IF E1 = 0 THEN 21290
21050 FOR Z = 1 TO 4:AS(Z) = AL(Z)/E1 *100: NEXT Z: GOTO 21290
21110 FOR Z = 1 TO 4:Z(Z) = 0: NEXT Z:Z1 = 0: FOR Z = 1 TO 3: IF D(XS(Z)) = 0 AND K(Z) THEN Z(XS(Z)) = Z(XS(Z)) +1:Z1 = Z1 +1
21140 NEXT Z: IF BS < >2 THEN 21200
21160 Z3 = 0: FOR Z = 1 TO 4: IF D(Z) = 0 THEN Z3 = Z3 +1
21165 NEXT Z: FOR Z = 1 TO 4: IF D(Z) THEN 21190
21180 AS(Z) = 18 *Z(Z) +(100 -(18 *Z1))/Z3
21190 NEXT Z
21200 FOR Z = 1 TO 4:AL(Z) = AS(Z)/100 *E1: IF AL(Z) >MP(Z) THEN EN(15) = EN(15) +AL(Z) -MP(Z):AL(Z) = MP(Z)
21240 NEXT Z
21290 REM
22020 FOR Z = 1 TO 14:FE(Z) = E(Z) ^(1/4): NEXT Z: RETURN
23000 REM
23005 FOR W2 = 1 TO 4: GOSUB 23100: FOR W3 = 1 TO 3:Z = 1: IF CM(W2,W3) <6 THEN Z = CM(W2,W3)/6
23010 GOSUB 25000
23020 IF CM(W2,W3) >8 THEN Z = 1 -(CM(W2,W3) -8)/25
23030 Z1 = CO(W2,W3)/27: IF Z1 >1 THEN Z1 = 1
23040 Z2 = 0:Z5 = 0: FOR Z3 = 1 TO 3:Z2 = Z2 +PC(W2,Z3): NEXT Z3:Z4 = 0: IF Z2 >0 THEN Z4 = EN(12) *LS(W2)/Z2
23050 IF Z4 >1 THEN Z4 = 1
23060 Z2 = 0: FOR Z3 = 1 TO 10:Y = FN CE(7728 +W2 *60 +Z3 *2 +(W3 -1) *20): IF Y >0 THEN Z2 = Z2 +Y/100
23070 NEXT Z3: IF CM(W2,W3) >0 THEN Z5 = Z2/CM(W2,W3)
23080 IF Z5 >1 THEN Z5 = 1
23090 CE(W2,W3) = (Z +Z1 +Z5 *4 +Z4)/7: NEXT W3: NEXT W2: RETURN
23100 REM
23110 FOR W3 = 1 TO 3:PC(W2,W3) = CM(W2,W3) *(1 +(2 -CT(W2,W3)) *.5): IF PC(W2,W3) >0 THEN PC(W2,W3) = PC(W2,W3) +2
23120 NEXT W3: RETURN
23200 REM
23205 FOR Z = 1 TO 4: FOR Z1 = 1 TO 3:X = (CT(Z,Z1) -2) *6:X5 = (PC(Z,1) +PC(Z,2) +PC(Z,3))/(EN(12) *LS(Z) +.1) *2: IF X5 >25 THEN X5 = 25
23210 X5 = X5 -X
23240 FOR Z2 = 1 TO 10:Z3 = 7708 +Z2 *2 +Z1 *20 +Z *60:Z4 = FN CE(Z3): IF Z4 < = 0 THEN Z4 = -1: GOTO 23290
23242 IF X = -6 THEN Z4 = Z4 - FN RN(9) +1 -X5
23245 IF X = 0 THEN Z4 = Z4 -X5
23280 IF X = 6 THEN Z4 = Z4 +X -X5
23285 IF Z4 < = 1 THEN Z4 = 1 + FN RN(5)
23287 IF Z4 >100 THEN Z4 = 100
23290 POKE Z3,Z4 +100: NEXT Z2: NEXT Z1: NEXT Z: RETURN
25000 REM
25040 POKE 2048,255 - FN RN(250): POKE 2049,20: CALL 2050: RETURN
30000 REM
30005 GOSUB 25000
30010 FOR Z = 1 TO 4: IF D(Z) THEN 30050
30015 X = -EN(Z)/MP(Z) *.06 - RND(1)/40 +RT(Z)/100:E(Z) = E(Z) +X: IF E(Z) <.1 THEN E(Z) = .1
30030 IF E(Z) >1 THEN E(Z) = 1
30050 NEXT Z: FOR Z = 6 TO 10: IF D(Z) THEN 30100
30070 X = RT(Z)/80 -( FN RN(4) -1)/100:E(Z) = E(Z) +X: IF E(Z) <.1 THEN E(Z) = .1
30095 IF E(Z) >1 THEN E(Z) = 1
30100 NEXT Z: FOR Z = 11 TO 12: IF D(Z) THEN 30190
30115 IF EW >LS/2 THEN X = -.02
30120 IF EW >LS *.75 THEN X = -.04
30125 IF EW >LS *.9 THEN X = -.13
30130 IF EW >LS *.95 THEN X = -.18
30135 IF EW <0 THEN X = -EW/40
30140 IF EH = AB AND Z = 12 THEN X = X -.015
30145 IF EH = AE AND Z = 11 THEN X = X -.015
30150 X = X +RT(Z)/65:E(Z) = E(Z) +X: IF E(Z) <.1 THEN E(Z) = .1
30180 IF E(Z) >1 THEN E(Z) = 1
30190 NEXT Z: RETURN
30500 GOSUB 25000
30510 LS = 0: IF D(11) = 0 THEN LS = 12 *FE(11) *FE(12) *(1 -EV): GOTO 30590
30520 IF D(11) = 1 THEN LS = 6 *FE(12) *(1 -EV): GOTO 30590
30530 IF D(11) = 2 THEN LS = 6 *FE(11) *(1 -EV): GOTO 30590
30540 IF D(10) = 0 THEN LS = .75 *FE(10) *(1 -EV)
30550 IF D(11) = 3 AND D(10) = 1 THEN LS = 0
30590 RETURN
32000 REM
32008 X = EX:Y = EY:S = EW: GOSUB 15000:BX = X -EX:BY = Y -EY:CE = EN(12) *.02 +(CR/EC) ^.22:CE = CE/2:CF = CE ^.3: FOR Z = 1 TO 3: GOSUB 25000:XE = EX:YE = EY: IF K(Z) = 0 THEN 32100
32040 XK = KX(Z):YK = KY(Z): GOSUB 15100:XX = ES -EH:YA(Z) = FN D(XX):X = YA(Z): GOSUB 15500:XS(Z) = SL:DK(Z) = SD:XA(Z) = EE -KH(Z):X = XA(Z): GOSUB 15500:YS(Z) = SL:X = KX(Z):Y = KY(Z):S = KW(Z): GOSUB 15000:RX = X -KX(Z):RY = Y -KY(Z):RS(Z) = SQR((BX -RX) ^2 +(BY -RY) ^2): GOSUB 25000: GOSUB 34000: GOSUB 35000
32100 NEXT Z: RETURN
34000 REM
34020 FOR Z1 = 0 TO 9:MH(Z,Z1) = 0:PW(Z,Z1) = 0: NEXT Z1:X = XS(Z): GOSUB 34500:PW(Z,XS(Z) -1) = X1:MH(Z,XS(Z) -1) = X2: IF X = 1 THEN PW(Z,1) = X1:PW(Z,2) = X1:MH(Z,2) = X2/2:MH(Z,1) = X2/2
34060 IF X = 4 THEN MH(Z,3) = X2/2
34095 RETURN
34500 REM
34505 X2 = 0:X1 = 0: IF D(X +5) THEN 34590
34515 IF DK(Z) >1500 THEN 34590
34520 X2 = 200 *FE(X +5) -EN(X)/10:X1 = SQR((1700 -DK(Z)) *.001) * FN RF(RS(Z)) *CE(1,DT(1)) ^(1/3) *(1 -EV(Z)): IF X1 >1 THEN X1 = 1
34590 RETURN
35000 REM
35005 IF DK(Z) >5000 THEN 35090
35010 FOR X = 6 TO 1 STEP -1: IF 7 -X >6 -D(5) OR LP <7 -X THEN BP = 7 -X: GOTO 35090
35020 PW(Z,10 -X) = SQR((5400 -DK(Z))/5000) * FN RF(RS(Z)) *CE(1,DT(1)) ^(1/3) *(1 -EV(K)) *OF(X): IF PW(Z,10 -X) < = 0 THEN PW(Z,10 -X) = 0
35027 IF PW(Z,10 -X) >1 THEN PW(Z,10 -X) = 1
35030 MH(Z,10 -X) = INT(6/(7 -X) +1/DK(Z) *250): IF MH(Z,10 -X) >6 THEN MH(Z,10 -X) = 6
35045 IF MH(Z,10 -X) <1 THEN MH(Z,10 -X) = 1
35050 NEXT X: FOR X = 4 TO 9: IF PW(Z,X) < = 0 THEN PW(Z,X) = 0:MH(Z,X) = 0
35054 NEXT X:BP = 6
35090 RETURN
57000 GOSUB 25000
57010 HW = 0:ZE = 15:SP = MS
57200 IF D(11) = 3 OR EN(11) = 0 THEN 57400
57210 SP = MS: GOSUB 17420:HW = P:SP = MN: GOSUB 17420:HW = P:SP = MN: GOSUB 17420: IF P >HW THEN HW = P
57400 IF HW >EN(11) THEN HW = EN(11)
57410 EN(11) = EN(11) -HW:AL(11) = AL(11) -HW: RETURN
61000 REM
61003 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
Text found in Starship_Commander_1981_Voyager.do/INTRO.bas:
10 HIMEM: 35070: CALL 35070:VA$ = CHR$(129):VI$ = CHR$(137):VN$ = CHR$(142):VK$ = CHR$(139):VL$ = CHR$(140):WO$ = CHR$(143) + CHR$(143):WP$ = CHR$(143) + CHR$(144):VY$ = CHR$(153):VP$ = CHR$(144): HGR : POKE 49234,0: POKE 2050,173: POKE 2051,48: POKE 2052,192: POKE 2072,213: POKE 2073,170: CALL 2074: HCOLOR= 5: FOR Z = 0 TO 7: HPLOT 0,Z TO 279,Z: HPLOT 0,Z +184 TO 279,184 +Z: NEXT Z
8090 FOR Z = 0 TO 5: HPLOT Z,0 TO Z,191: HPLOT Z +274,0 TO Z +274,191: NEXT Z: HCOLOR= 7: FOR Z = 8 TO 64: HPLOT 6,Z TO 272,Z: NEXT Z: HCOLOR= 4: HPLOT 4,7 TO 4,184 TO 275,184 TO 275,7 TO 5,7 TO 5,7 TO 5,184: VTAB (3): HTAB (5): PRINT VA$4VK$VI$"V O Y A G E R S O F T W A R E": HCOLOR= 4: HPLOT 23,26 TO 253,26: HPLOT 63,28 TO 213,28: HPLOT 83,30 TO 193,30: HTAB (16): PRINT VA$1VL$"PRESENTS": VTAB (6)
9000 VTAB (2): HTAB (9): PRINT VA$1VL$;"(C) COPYRIGHT 1981 BY": VTAB (6)
9040 HTAB (3): PRINT VA$4VK$"S T A R S H I P C O M M A N D E R": HCOLOR= 2: FOR Z = 33 TO 37 STEP 2: HPLOT 7,Z TO 272,Z: HPLOT 7,Z +16 TO 272,Z +16: NEXT Z
9060 VTAB (8): HTAB (13): PRINT VA$1VL$"BY "VA$0VK$"G"VL$"ILMAN "VK$"L"VL$"OUIE": HCOLOR= 4: HPLOT 158,145 TO 185,145 TO 180,140 TO 240,136 TO 240,133 TO 246,133 TO 208,128 TO 204,124 TO 194,125 TO 192,121 TO 184,121 TO 180,115 TO 176,115 TO 176,122
10010 HPLOT TO 162,122 TO 158,128 TO 150,128 TO 146,131 TO 136,131 TO 135,128 TO 130,128 TO 130,102 TO 122,102 TO 110,128 TO 30,134 TO 24,145 TO 70,145 TO 66,143: HPLOT TO 152,143 TO 166,150 TO 156,157 TO 125,157 TO 70,155 TO 70,145: HPLOT 110,106 TO 124,106:X = 139: HCOLOR= 5: FOR Z = 134 TO 136: HPLOT 239,Z TO X,Z:X = X +2: NEXT Z
10042 HCOLOR= 4: FOR Z = 150 TO 178 STEP 5: HPLOT Z,140 TO Z +4,145: NEXT Z: HPLOT 150,140 TO 180,140: HCOLOR= 7: HPLOT 239,133 TO 139,133: HCOLOR= 7:X = 67: FOR Z = 144 TO 147: HPLOT X,Z TO 152,Z:X = X +2: NEXT Z: HCOLOR= 4:X = 161: FOR Z = 144 TO 147: HPLOT 152,Z TO X,Z +6:X = X +1: NEXT Z: HPLOT 168,150 TO 158,157:X = 80: FOR Z = 148 TO 154 STEP 2: HPLOT X,Z TO 152,Z: IF Z >148 THEN X = X +20
10080 NEXT Z: HCOLOR= 1: FOR Z = 72 TO 81: HPLOT Z,148 TO Z,155: NEXT Z: HCOLOR= 4: FOR Z = 126 TO 128: HPLOT Z,104 TO Z,128: NEXT Z: HCOLOR= 5: FOR Z = 30 TO 60 STEP 6: HPLOT Z,142 TO Z +4,142: NEXT Z
10110 FOR Z = 165 TO 180 STEP 6: HPLOT Z,125 TO Z +4,125: HPLOT Z,130 TO Z +3,130: NEXT Z: HCOLOR= 4: HPLOT 198,125 TO 204,125: HPLOT 198,126 TO 206,126: HPLOT 187,123 TO 193,123: HCOLOR= 4: FOR Z = 90 TO 130 STEP 4: HPLOT Z,133 TO Z,136: NEXT Z: VTAB (22): HTAB (15): PRINT VA$4VK$VN$;"USS RANGER";:X = 0
50000 IF X0 THEN X0 = 0: PRINT VA$4VK$VI$;: GOTO 50020
50010 X0 = 1: PRINT VA$4VK$VN$;
50020 VTAB (6): HTAB (2): PRINT " S T A R S H I P C O M M A N D E R ";:Y = 40:X = X +1:X = X +2: IF X >60 THEN 60000
50030 POKE 2048,X: POKE 2049,Y: CALL 2050: GOTO 50000
60000 CALL 2115: CALL 2115: CALL 2115: FOR Z = X TO 1 STEP -1: POKE 2048,Z: POKE 2049,3: CALL 2050: NEXT Z: PRINT VA$0VK$VN$: PRINT CHR$(4);"RUN DIM"
Text found in Starship_Commander_1981_Voyager.do/LIFE.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1): DEF FN CE(X) = PEEK(X) -100
33 VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151): DEF FN CN(X) = PEEK(X +7909):VK$ = CHR$(139):VL$ = CHR$(140): DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: GOSUB 38000:X = 50:Y = (.84 -SC) *80 +41:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOTO 14000
109 RC = INT(RC)
10000 FOR Z9 = 1 TO 3:X = 10 +Z9 *50:SC = CE(W2,Z9) *.84:Y = (.84 -SC) *80 +41: GOSUB 21000: NEXT Z9: RETURN
14000 FOR Z = 1 TO 7:Z(Z) = Z +2: IF Z >3 THEN Z(Z) = Z +3
14003 NEXT Z: IF EN(12) <20 OR AL(12) <20 THEN Z(4) = -Z(4)
14010 IF EN(12) <10 OR AL(12) <10 THEN Z(5) = -Z(5)
14020 GOSUB 39000:Z = 7:Y = 30: GOSUB 41000:CO = X: GOSUB 38000: ON CO GOSUB 18000,20000,24000,18200,29000,19000,16000: IF CO = 5 OR CO = 7 THEN GOSUB 25000
14090 GOTO 14000
16000 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 0 TO 32:Z$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z1$(Z) = "": NEXT Z: PRINT VN$VK$VA$0: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
16090 GOTO 16090
18000 REM
18010 GOSUB 38000: GOSUB 47000: GOSUB 46000: GOSUB 26000:W5 = 0: GOSUB 26100: GOSUB 26400: RETURN
18200 EN(12) = EN(12) -20:AL(12) = AL(12) -20:W5 = 1: GOSUB 38000: GOSUB 47000: GOSUB 27600: RETURN
19000 REM
19002 W5 = 1: FOR Z = 1 TO 4:LS(Z) = 0: NEXT Z:X5 = 1: GOSUB 24000:C = 1: FOR W2 = 1 TO 3: GOSUB 39000: PRINT VA$1VL$;"ENTER % FOR ";: IF W2 = 1 THEN PRINT "WEAPONS";
19080 IF W2 = 2 THEN PRINT "ENGINEERING";
19090 IF W2 = 3 THEN PRINT "NAVIGATION";
19110 PL = 0:PU = FN RD(X5 *100):RT = 1: GOSUB 40000:X5 = X5 -LS(W2): IF X5 = <.005 THEN 19125
19120 NEXT W2
19125 LS(4) = X5: GOSUB 24500: RETURN
20000 REM
20005 GOSUB 38000: GOSUB 47000: PRINT VA$4;: HCOLOR= 7: GOSUB 38000: GOSUB 22000: GOSUB 23000: GOSUB 10000: RETURN
21000 REM
21005 HPLOT X,Y TO X,Y +2 *SC TO X -14 *SC,Y +8 *SC TO X -14 *SC,Y +32 *SC TO X -4 *SC,Y +40 *SC: HPLOT X -2 *SC,Y +34 *SC TO X -8 *SC,Y +30 *SC TO X -8 *SC,Y +16 *SC TO X -2 *SC,Y +34 *SC TO X -14 *SC,Y +76 *SC TO X -14 *SC,Y +80 *SC TO X -8 *SC,Y +80 *SC TO X -8 *SC,Y +76 *SC TO X +4 *SC,Y +44 *SC
21020 HPLOT TO X +14 *SC,Y +76 *SC TO X +14 *SC,Y +80 *SC TO X +20 *SC,Y +80 *SC TO X +20 *SC,Y +76 *SC TO X +10 *SC,Y +34 *SC TO X +14 *SC,Y +16 *SC TO X +14 *SC,Y +30 *SC TO X +10 *SC,Y +34 *SC: HPLOT X +12 *SC,Y +40 *SC TO X +20 *SC,Y +32 *SC TO X +20 *SC,Y +8 *SC TO X +8 *SC,Y +2 *SC TO X +8 *SC,Y:X1 = 6.5 *SC:Y1 = 8 *SC:X2 = X +4 *SC
21120 Y2 = Y -6 *SC: HPLOT X2 +X1,Y2: FOR X3 = 0 TO 360 STEP 20:X4 = COS(X3 *DR) *X1 +X2:Y4 = SIN(X3 *DR) *Y1 +Y2: HPLOT TO X4,Y4: NEXT X3: RETURN
22000 GOSUB 38000:Z1$ = "WEAPONS": IF W2 >1 THEN Z1$ = "ENGINES": IF W2 >2 THEN Z1$ = "NAVIGATION": IF W2 >3 THEN Z1$ = "DEFENSE"
22005 VTAB (3): HTAB (11): PRINT VN$VK$VA$4;Z1$;: PRINT VA$1VL$VN$;: PRINT : FOR Z = 100 TO 0 STEP -10: PRINT Z"%": NEXT Z: HCOLOR= 6: FOR Z = 28 TO 108 STEP 8: HPLOT 35,Z TO 190,Z: NEXT Z: INVERSE ; ONERR p SCALE= # LEFT$i NEXT 0Ex SGNi PR# fqf{ RETURN j TAN PR# j HGR DATA "TEAM "Z;: NEXT Z: PRINT : FOR Z = 1 TO 3: PRINT TAB( (Z -1) *8 +6) FN RD(CE(W2,Z) *100)"%";: NEXT Z: PRINT : PRINT "CREW";: FOR Z = 1 TO 3: PRINT TAB( (Z -1) *8 +7)CM(W2,Z);: NEXT Z: PRINT : FOR Z = 1 TO 3: PRINT TAB( (Z -1) *8 +5);: IF CT(W2,Z) = 2 THEN PRINT "STBY";
23226 IF CT(W2,Z) = 3 THEN PRINT "SLEEP";
23227 IF CT(W2,Z) = 1 THEN PRINT "DUTY";
23230 NEXT Z: RETURN
24000 REM
24005 FOR Z = 1 TO 4:W(Z) = 40: NEXT Z: GOSUB 38000: VTAB (3): HCOLOR= 7: FOR Z = 11 TO 62: HPLOT Z,29 TO Z,89: NEXT Z: FOR Z = 41 TO 45: HCOLOR= 6: HPLOT 10,Z TO 63,Z: HPLOT 67,Z TO 89,Z: HCOLOR= 7: HPLOT 94,Z TO 118,Z: HCOLOR= 5: HPLOT 151,Z TO 182,Z: NEXT Z: HCOLOR= 7: HPLOT 123,41 TO 145,41 TO 145,45 TO 123,45 TO 123,41
24019 HCOLOR= 6: FOR Z = 58 TO 90 STEP 16: FOR Z1 = Z TO Z +2: HPLOT 10,Z1 TO 184,Z1: NEXT Z1: NEXT Z: PRINT VA$4VN$VK$;" TOTAL POWER: ";VA$VL$; FN RD(EN(12) *10)/10: PRINT : HTAB (2): PRINT VA$4VK$VI$"STATION";VN$" WEP ENG NAV DEF": PRINT : HTAB (2): PRINT VI$"CONSUMP";VA$1;VL$;VN$;
24050 FOR Z = 1 TO 4: PRINT TAB( 6 +Z *4); FN RD(PC(Z,1) +PC(Z,2) +PC(Z,3));: NEXT Z: VTAB (9): HTAB (2): PRINT VA$4VK$VI$"AMOUNT ": PRINT : HTAB (2): PRINT "PERCENT": VTAB (19): HTAB (1): PRINT " LIFE SUPPORT PERCENT CHART";: HCOLOR= 5: HPLOT 11,15 TO 185,15 TO 185,25 TO 11,25 TO 11,15: HCOLOR= 6
24110 HPLOT 10,28 TO 184,28 TO 184,89 TO 10,89 TO 10,28: HPLOT 64,29 TO 64,89: HPLOT 92,29 TO 92,89: HPLOT 120,29 TO 120,89: HPLOT 148,29 TO 148,89: HCOLOR= 7: HPLOT 13,113 TO 186,113 TO 186,121 TO 13,121 TO 13,113: GOSUB 24500: RETURN
24500 GOSUB 36000: PRINT VA$1VL$: VTAB (9): FOR Z = 1 TO 4: HTAB (4 *Z +6): PRINT " ";: HTAB (4 *Z +6): PRINT FN RD(LS(Z) *EN(12));: NEXT Z: VTAB (11): HTAB (1):Z(0) = 14: FOR Z = 1 TO 4: HTAB (4 *Z +6): PRINT " ";: HTAB (4 *Z +6): PRINT FN RD(LS(Z) *100);:Z(Z) = 171 *LS(Z) +Z(Z -1): NEXT Z:Z1(1) = 6:Z1(2) = 7:Z1(3) = 4:Z1(4) = 5:Z(0) = 13: FOR Z = 1 TO 4: HCOLOR= Z1(Z):Z(4) = 185
24630 FOR Y = 114 TO 120: IF Z(Z -1) = Z(Z) THEN 24650
24640 HPLOT Z(Z -1) +1,Y TO Z(Z),Y
24650 NEXT Y: NEXT Z: HCOLOR= 4: GOSUB 24700: FOR Z = 1 TO 4:W(Z) = (Z(Z) +Z(Z -1))/2: IF LS(Z) <.005 THEN W(Z) = 0
24682 NEXT Z: HCOLOR= 7: GOSUB 24700: RETURN
24700 W(0) = 14: FOR Z = 1 TO 4: IF W(Z) < >0 THEN HPLOT 56 +28 *Z,93 TO W(Z),112
24720 NEXT Z: RETURN
24900 REM
24910 LS(W2) = RC/100: GOSUB 24500: PRINT VY$;: RETURN
25000 REM
25005 GOSUB 25500: FOR W3 = 1 TO 3:Z = 1: IF CM(W2,W3) <6 THEN Z = CM(W2,W3)/6
25020 IF CM(W2,W3) >8 THEN Z = 1 -(CM(W2,W3) -8)/25
25030 Z1 = CO(W2,W3)/27: IF Z1 >1 THEN Z1 = 1
25040 Z2 = 0:Z5 = 0: FOR Z3 = 1 TO 3:Z2 = Z2 +PC(W2,Z3): NEXT Z3:Z4 = 0: IF Z2 >0 THEN Z4 = EN(12) *LS(W2)/Z2
25060 IF Z4 >1 THEN Z4 = 1
25065 Z2 = 0: FOR Z3 = 1 TO 10:Y = FN CE(7728 +W2 *60 +Z3 *2 +(W3 -1) *20): IF Y >0 THEN Z2 = Z2 +Y/100
25090 NEXT Z3: IF CM(W2,W3) >0 THEN Z5 = Z2/CM(W2,W3)
25105 IF Z5 >1 THEN Z5 = 1
25110 CE(W2,W3) = (Z +Z1 +Z5 *4 +Z4)/7: NEXT W3: RETURN
25500 REM
25510 FOR W3 = 1 TO 3:PC(W2,W3) = CM(W2,W3) *(1 +(2 -CT(W2,W3)) *.5): IF PC(W2,W3) >0 THEN PC(W2,W3) = PC(W2,W3) +2
25530 NEXT W3: RETURN
26000 REM
26005 W$(0) = "CR":W$(2) = "ENS":W$(3) = "LT.":W$(4) = "LT CMD":W$(5) = "CMD": VTAB (1): PRINT VA$0VK$VN$: PRINT CHR$(4);"OPEN CREW,L12": FOR Z = 1 TO 30:Y = 7728 +W2 *60 +Z *2:W4 = PEEK(Y +1): PRINT CHR$(4);"READ CREW,R";W4: INPUT Z$,W1:Z$(Z) = W$(W1) +" " +Z$:Z(Z) = W4:Z1(Z) = FN CE(Y): NEXT Z: PRINT CHR$(4);"CLOSE CREW": CALL 35070: RETURN
26100 REM
26110 GOSUB 38000: PRINT VA$4VN$VK$"STATION:";:Z$ = "WEAPONS": IF W2 >1 THEN Z$ = "ENGINEERING": IF W2 >2 THEN Z$ = "NAVIGATION": IF W2 >3 THEN Z$ = "DEFENSE"
26130 PRINT Z$: PRINT ;"TEAM:";W3; TAB( 10);"STATUS:";:Z = CT(W2,W3):Z$ = "DUTY": IF Z >1 THEN Z$ = "STANDBY":W6 = 1: IF Z >2 THEN Z$ = "SLEEP":W6 = .5
26137 PRINT Z$: PRINT TAB( 12);"ROSTER": HTAB (8): PRINT VA$1VL$;"NAME";:: HTAB (23): PRINT "EFFC": IF W5 THEN 26200
26160 VTAB (17): PRINT VA$4VN$VK$"TEAM EFFICENCY: "; FN RD(CE(W2,W3) *100):W6 = 2: PRINT "ENGERGY CONSUMPTION: " FN RD(W6 *CM(W2,W3))
26200 HCOLOR= 6: HPLOT 14,32 TO 189,32: HPLOT 14,39 TO 189,39: HPLOT 14,121 TO 189,121: HPLOT 12,32 TO 12,121: HPLOT 190,32 TO 190,121: HPLOT 156,32 TO 156,121: HPLOT 20,32 TO 20,121: RETURN
26400 REM
26405 PRINT VA$1VN$VL$;:W8 = 1: FOR Z = 1 TO 10:Y = (W3 -1) *10 +Z: IF Z1(Y) < = 0 THEN 26480
26420 VTAB (5 +W8): HTAB (4): PRINT Z$(Y);: HTAB (23): PRINT Z1(Y)"%":W8 = W8 +1
26480 NEXT Z: RETURN
26500 REM
26510 HCOLOR= 5: VTAB (17): HTAB (9): PRINT VA$1VL$VN$;"NAME";: HTAB (21): PRINT "EFFCY": VTAB (21): PRINT "ENTER NAME (RETURN TO END)";: VTAB (19): HTAB (2): PRINT VI$VK$"L";: PRINT VN$VL$;: HPLOT 13,124 TO 191,124: HPLOT 13,135 TO 191,135: HPLOT 13,161 TO 191,161: HPLOT 145,124 TO 145,161: HPLOT 11,124 TO 11,161: HPLOT 191,124 TO 191,161: RETURN
26700 REM
26710 Z2 = 32
26720 Z2 = INT((Z2 -1)/2): IF Z2 = 0 THEN 26790
26730 POKE 2048,Z2 +50: POKE 2049,20: CALL 2050:Z3 = 30 -Z2: FOR Z5 = 1 TO Z3:Z4 = Z5
26770 Z7 = Z4 +Z2: IF Z1(Z7) < = Z1(Z4) THEN 26780
26775 Z = Z(Z4):Z(Z4) = Z(Z7):Z(Z7) = Z:Z = Z1(Z4):Z1(Z4) = Z1(Z7):Z1(Z7) = Z:Z$ = Z$(Z4):Z$(Z4) = Z$(Z7):Z$(Z7) = Z$:Z4 = Z4 -Z2: IF Z4 >0 THEN 26770
26780 NEXT Z5: GOTO 26720
26790 REM
26800 FOR Z = 1 TO 30: IF Z1(Z) < = 0 THEN W8 = Z: GOTO 26830
26820 NEXT Z:W8 = 31
26830 RETURN
27300 REM
27305 Z$(W8) = "RETURN":Z1(W8) = 0:Z$(W8 +1) = "":Z1(W8 +1) = -1:Z1(0) = -1: IF Y2 W8 THEN Z2 = W8
27342 Z0 = 0: IF PEEK( -16287) >127 THEN Z0 = 1: GOTO 27346
27345 IF Z2 = Z5 THEN 27330
27346 Z9 = -1: IF Z2 = 0 THEN PRINT Z$(Z2 -Z9);: HTAB (22): IF Z1(Z2 -Z9) >0 THEN PRINT Z1(Z2 -Z9)"%";
27370 VTAB (19): PRINT VI$;: GOSUB 27500: HTAB (3): PRINT Z$(Z2);: HTAB (22): IF Z1(Z2) >0 THEN PRINT Z1(Z2)"%";
27385 PRINT VN$;: VTAB (Z9 +19): GOSUB 27500: HTAB (3): IF Z1(Z2 +Z9) > = 0 THEN PRINT Z$(Z2 +Z9);: HTAB (22): IF Z1(Z2 +Z9) >0 THEN PRINT Z1(Z2 +Z9)"%";
27395 IF Z0 = 0 THEN GOTO 27330
27396 GOSUB 45000: RETURN
27500 HTAB (3): PRINT " ";: HTAB (22): PRINT " ";: RETURN
27600 REM
27603 CO(W2,3) = 0:DT(3) = 0: GOSUB 26000: GOSUB 26700:W9 = W8 -1: FOR Y1 = 1 TO 2:CO(W2,Y1) = 0:W1 = 0:DT(Y1) = 0:W3 = Y1: GOSUB 26100: GOSUB 26500:Z = (4 -Y1) *10: IF W9 > = Z THEN PL = 11: GOTO 27670
27650 PL = W9 -Z +11: IF PL <0 THEN PL = 0
27670 FOR Y2 = 1 TO 10:W8 = W9 +1: GOSUB 37000: PRINT VN$VA$1VL$"CREW LEFT TO ASSIGN:";W9" ";: GOSUB 36000: GOSUB 27300: IF Z2 = W8 AND Y2 > = PL THEN 27780
27690 W1 = W1 +1:Y = 7728 +W2 *60 +W1 *2 +(Y1 -1) *20: POKE Y,Z1(Z2) +100: POKE Y +1,Z(Z2): VTAB (5 +W1): HTAB (4): PRINT VA$1VN$VL$Z$(Z2);: HTAB (23): PRINT Z1(Z2)"%":Z$ = Z$(Z2):W3 = Y1: GOSUB 28000: IF Z2 = W8 THEN 27760
27750 FOR Z = Z2 TO W8:Z$(Z) = Z$(Z +1):Z1(Z) = Z1(Z +1):Z(Z) = Z(Z +1): NEXT Z
27760 Z1(W9) = -1:W9 = W9 -1:W8 = W8 -1: NEXT Y2:CM(W2,Y1) = 10: GOTO 27820
27780 FOR Z = Y2 TO 10:Y = 7728 +W2 *60 +Z *2 +(Y1 -1) *20: POKE Y,0: NEXT Z
27820 CM(W2,Y1) = W1: NEXT Y1: FOR Z = 1 TO 10:Y = 7768 +Z *2 +W2 *60: IF Z >W9 THEN Z1(Z) = -1
27860 POKE Y,Z1(Z) +100: POKE Y +1,Z(Z): NEXT Z:CM(W2,3) = W9: GOSUB 39000: GOSUB 36000: IF W9 < = 0 THEN 27990
27908 W3 = 3: GOSUB 26100: FOR Z = 1 TO W9: VTAB (5 +Z): HTAB (4): PRINT VA$1VN$VL$Z$(Z);: HTAB (23): PRINT Z1(Z)"%":Z$ = Z$(Z): GOSUB 28000: NEXT Z
27990 GOSUB 25000: RETURN
28000 Z1$ = LEFT$(Z$,3):Z6 = 0: IF Z1$ = "CR " THEN Z6 = 3
28010 IF Z1$ = "ENS" THEN Z6 = 4
28020 IF Z1$ = "LT." THEN Z6 = 5
28025 IF Z1$ = "LT " THEN Z6 = 6
28030 IF Z1$ = "CMD" THEN Z6 = 7
28040 CO(W2,W3) = CO(W2,W3) +Z6: RETURN
29000 REM
29005 EN(12) = EN(12) -10:AL(12) = AL(12) -10
29010 Z$(1) = "DUTY ":Z$(2) = "STBY ":Z$(3) = "SLEEP": GOSUB 20000:Z(1) = 17:Z(2) = 18:Z(3) = 19:Y = 30:Z1(1) = 5:Z1(2) = 13:Z1(3) = 21: FOR Z4 = 1 TO 3: GOSUB 39000: PRINT VA$1VL$VN$"ENTER "Z$(Z4)" TEAM";:Z = 3: GOSUB 41000:CT(W2,X) = Z4:Z(X) = -Z(X): GOSUB 36000: VTAB (18): HTAB (Z1(X)): PRINT VA$4VK$Z$(Z4);: NEXT Z4: RETURN
36000 PRINT VN$VY$;: VTAB (21): HTAB (28): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;: RETURN
37000 PRINT VN$VY$;: VTAB (23): HTAB (28): PRINT VW$;: VTAB (23): HTAB (2): PRINT VV$;: RETURN
38000 GOSUB 36000: PRINT VP$;: RETURN
39000 GOSUB 37000: PRINT VP$;: RETURN
40000 REM
40005 Z1$ = "": PRINT VY$;VA$1;VL$;VN$;:R = PU -PL:RC = PL +R/2
40020 GOSUB 40100
40025 VTAB (23): HTAB (30): PRINT VA$1VI$;VK$;"Y";: HTAB (36): PRINT "X";VN$:X = 135: GOSUB 40100:RT = 1:R1 = 0:Z1 = 0
40040 X = PDL(0): IF PEEK( -16287) >127 THEN 40080
40045 IF ZT >5 THEN ZT = 5
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (31): VTAB (22): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *2 ^ZT *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40080 PRINT VA$1;: VTAB (23): HTAB (30): PRINT VK$VI$"X";: HTAB (36): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (22): HTAB (31): PRINT VN$" ";: PRINT VA$4;: RETURN
40100 REM
40105 IF RC >PU THEN RC = PU
40107 IF RC 6 THEN 40190
40124 Z = 6 -Y3: FOR Y2 = 1 TO Z: PRINT " ";: NEXT Y2:Z9 = 30: IF C THEN Z9 = 10
40125 POKE 2048,(PU -RC)/(ZT +1) +75: POKE 2049,Z9: CALL 2050: IF C = 1 THEN GOSUB 24900
40190 RETURN
41000 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41010 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (23): HTAB (6): PRINT VA$(1);VK$;"L";: HTAB (22): PRINT "M";:X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (23): HTAB (6): PRINT " ";: HTAB (22): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 38000: GOSUB 45000: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
46000 REM
46003 GOSUB 39000: PRINT VA$1VL$VN$"ENTER TEAM #";:Z(1) = 17:Z(2) = 18:Z(3) = 19:Z = 3:Y = 30: GOSUB 41000:W3 = X: RETURN
47000 REM
47003 GOSUB 39000: PRINT VA$1VL$VN$"ENTER STATION";: FOR Z = 1 TO 4:Z(Z) = 11 +Z: NEXT Z:Z = 4:Y = 30: GOSUB 41000:W2 = X: RETURN
Text found in Starship_Commander_1981_Voyager.do/LIFESC.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
25 CX(4) = 1
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: POKE 49234,0: POKE 2072,213: POKE 2073,170: CALL 2074:Z$ = VA$ +"1" +VK$ +VI$ +" E" +VA$ +"4"
45 PRINT VY$;: VTAB (1): HTAB (30): PRINT VV$;: VTAB (24): HTAB (10): PRINT VW$;: VTAB (2): HTAB (1): PRINT VK$VA$3;" STATUS ";: PRINT Z$"CREW ";
50045 PRINT Z$"STATION ";: PRINT Z$"POWER ";: PRINT VN$VA$3;" CHANGE ";VI$;: PRINT Z$"CREW ";: PRINT Z$"ORGANIZ.";: PRINT Z$"POWER ";: PRINT Z$"RETURN ";: PRINT : PRINT Z$"WEAPONS ";
50120 PRINT Z$"ENGINES ";: PRINT Z$"NAVIGAT.";: PRINT Z$"DEFENSE ";: PRINT : PRINT Z$"TEAM 1 ";: PRINT Z$"TEAM 2 ";: PRINT Z$"TEAM 3 ";: PRINT : VTAB (21): PRINT VA$3VI$" COUNTER ";
50185 PRINT VI$" ";: PRINT VN$" ";: PRINT VI$" ";: PRINT VA$1VK$"X"VL$"RDY "VK$"X"VL$"ENT";: PRINT VY$VN$;: VTAB (2): HTAB (2): PRINT VV$;: VTAB (21)
50186 HTAB (27): PRINT VW$VP$;: VTAB (23): HTAB (1): PRINT VN$VV$;: VTAB (23): HTAB (27): PRINT VW$VP$;
50220 PRINT VY$;: VTAB (1): HTAB (9): PRINT VI$VA$3VK$;"LIFE SUPPORT";: VTAB (1): HTAB (1): PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"LIFE": STOP
Text found in Starship_Commander_1981_Voyager.do/MAIN MENU.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1): DEF FN RF(X) = ((3700 -X)/3700) ^2.86:VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
700 IF CM(0,0) < = 0 THEN 9000
800 POKE 2072,213: POKE 2073,170: CALL 2074: PRINT VY$;: VTAB (23): HTAB (38): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;VI$;VP$;:Z$ = VA$ +"1" +VK$ +"E " +VA$ +"4": VTAB (3): HTAB (5): PRINT VA$4;"ENTER STATION:";
810 PRINT VA$4VI$: FOR Z = 1 TO 7: IF CX(Z) THEN VTAB (3 +2 *Z): HTAB (7): PRINT "*";
820 NEXT Z
830 Z = RND(1)
870 VTAB (5): HTAB (10): PRINT Z$;"COMMUNICATION": VTAB (7): HTAB (10): PRINT Z$;"DEFENSE": VTAB (9): HTAB (10): PRINT Z$;"ENGINEERING": VTAB (11): HTAB (10): PRINT Z$;"LIFE SUPPORT": VTAB (13): HTAB (10)
875 PRINT Z$;"NAVIGATION": VTAB (15): HTAB (10): PRINT Z$;"SCIENCE": VTAB (17): HTAB (10): PRINT Z$;"WEAPONS"
940 VTAB (21): HTAB (10): PRINT Z$;"END OF TURN";: VTAB (19): HTAB (10): PRINT Z$;"END OF GAME";: VTAB (2): HTAB (25): PRINT "TURN: ";VN$VA$1;VL$;" ";: VTAB (2): HTAB (32): PRINT DA;
1000 FOR Z = 1 TO 9:Z(Z) = 3 +Z *2: NEXT Z:Y = 10:Z = 9: GOSUB 41000: PRINT VA$0VN$VK$: ON X GOTO 2000,3000,4000,5000,6000,7000,10000,12000,9000: GOTO 1000
2000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"COMMUNICATION": STOP
3000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"DEFENSE": STOP
4000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"ENGINEER": STOP
5000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"LIFESC": STOP
6000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"NAV": STOP
7000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"SCIENCE": STOP
9000 EN(11) = EN(11) +HW:AL(11) = AL(11) +HW: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"TARGET"
10000 PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"WEAPONSC": STOP
12000 EG = 1: GOTO 9000
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Z3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Z3 = Z2
41020 NEXT Z2:X1 = Z3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
Text found in Starship_Commander_1981_Voyager.do/N.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOTO 18000
10000 GOSUB 39000: GOSUB 38000: GOSUB 22000: GOSUB 43000: RETURN
11000 GOSUB 20000: GOSUB 43000: RETURN
12000 GOSUB 21000: GOSUB 43000: RETURN
13000 GOSUB 24000: GOSUB 43000: RETURN
14000 GOSUB 26000: GOSUB 43000: RETURN
15000 GOSUB 25000: GOSUB 43000: RETURN
16000 REM
16010 PRINT VN$VK$V0$: FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU": STOP
18000 Y = 30: FOR Z = 1 TO 10:Z(Z) = Z +2: IF Z >6 THEN Z(Z) = Z(Z) +2
18020 NEXT Z:Z = 10: IF EN(11) = 0 OR MN = MS THEN Z(7) = -Z(7):Z(9) = -Z(9)
18030 GOSUB 39000
18200 GOSUB 41000:CO = X: GOSUB 38000: ON CO GOSUB 15000,13000,12000,10000,14000,11000,19000,27000,23000,16000: GOTO 18000
19000 GOSUB 25000: GOSUB 39000: PRINT VA$1VL$VN$; TAB( 5);"ENTER PILOT": PRINT VA$4VK$" AUTOMATIC": PRINT " SEMI-AUTOMATIC";:Z(1) = 22:Z(2) = 23:Z = 2:Y = 2: GOSUB 41000:X7 = X: GOSUB 44000:AL = SH: GOSUB 22000: ON X7 GOTO 19100,19200
19100 C = -2:PL = 0:PU = 1725: GOSUB 39000: PRINT TAB( 5);VL$"ENTER DISTANCE":RT = 25:RC = PL:X0 = PL: GOSUB 40000:ED = RC:EP = 2: GOTO 19400
19200 C = 3:PL = MN:PU = MS:RT = 1: GOSUB 39000: PRINT TAB( 5);VL$"ENTER SPEED":RC = PL:X0 = PL:RT = 0: GOSUB 40000:AS = RC:EP = 1
19400 GOSUB 39000: PRINT VA$1VN$VL$; TAB( 5);"ENTER POSITION": PRINT VA$4VK$;" CURRENT": PRINT " PROJECTED";:Y = 2:Z(1) = 22:Z(2) = 23:Z = 2: GOSUB 41000:AP = X -1: GOSUB 25000: RETURN
19500 X8 = X0: HCOLOR= 4: GOSUB 27350:X0 = RC:X8 = X0: HCOLOR= 7: GOSUB 27350: RETURN
19600 X9 = X0: HCOLOR= 4: GOSUB 27300:X0 = RC:X9 = X0: HCOLOR= 7: GOSUB 27300: RETURN
20000 REM
20005 HCOLOR= 5: PRINT VA$1VL$VN$VY$;: FOR X1 = 6 TO 16: VTAB (X1): HTAB (3): PRINT ABS(11 -X1) *3: NEXT X1: FOR X1 = 44 TO 124: HCOLOR= 5:X2 = X1 +4: IF X2/8 < > INT(X2/8) THEN HCOLOR= 6
20041 HPLOT 31,X1 TO 155,X1: NEXT X1: HCOLOR= 7:X5 = 266.4 *EV:X2 = X5/2:X1 = 30: HPLOT X1,84: FOR X3 = 1 TO 2: FOR X4 = 0 TO 315 STEP 45:X2 = SIN(X4 *DR) *X5 +84:X1 = X1 +7: HPLOT TO X1,X2: NEXT X4: NEXT X3: HPLOT TO X1 +7,84: HPLOT TO X1 +12,84: ROT= 16: SCALE= 1: HCOLOR= 7: DRAW 4 AT X1 +35,77: DRAW 4 AT X1 +35,78: VTAB (18): HTAB (6): PRINT VA$4VK$;"EVASIVE ACTION: "; FN RD(EV *100)" ";: RETURN
21000 REM
21005 FOR X1 = 1 TO 3: IF K(X1) = 0 THEN DK(X1) = 1
21007 NEXT X1
21010 W(4) = DK(1):W(5) = DK(2):W(6) = DK(3):W(1) = 1:W(2) = 2:W(3) = 3: FOR X1 = 1 TO 2: FOR X2 = 1 TO 2: IF W(X2 +3) MS THEN Z1 = MS
21422 IF Z1 AL(10) THEN X0 = AL(10)
23030 X0 = INT(X0): IF X0 >15 *E(10) * SQR(CE(3,DT(3))) THEN X0 = E(10) *15 * SQR(CE(3,DT(3)))
23035 X0 = INT(X0):PU = X0:RT = 1
23040 IF X0 >0 THEN GOSUB 40000:EV = FN RD(RC)/100: GOSUB 20000
23090 RETURN
24000 PRINT VN$;: GOSUB 38000: HTAB (7): PRINT VA$4VK$;"ENGINE STATUS": PRINT VA$1VL$;: PRINT " LIGHT ENGINES" TAB( 22);:Z1$ = "GREEN":Z = 1: IF EN(11) = 0 THEN Z1$ = "WHITE":Z = 7
24035 IF D(11) >0 THEN Z1$ = "BLUE":Z = 6: IF D(11) = 3 THEN Z1$ = "RED":Z = 5
24040 PRINT Z1$: HCOLOR= Z: FOR Z1 = 17 TO 24: HPLOT 112,Z1 TO 147,Z1: NEXT Z1: PRINT " ION ENGINES " TAB( 22);:Z1$ = "GREEN":Z = 1: IF EN(10) = 0 THEN Z1$ = "WHITE":Z = 7
24055 IF D(10) < >0 THEN Z1$ = "RED":Z = 5
24060 PRINT Z1$: HCOLOR= Z: FOR Z1 = 26 TO 32: HPLOT 112,Z1 TO 147,Z1: NEXT Z1: VTAB (6): PRINT VA$4VK$;: HTAB (11): PRINT "POWER"VL$VA$1: PRINT "ENGINES POWER 0";VA$2" 2 4 6 8 0";VA$1;:Z1 = EN(11)/MP(11):Y = 57:Z = 5: GOSUB 24900: PRINT " LIGHT" TAB( 11) FN RD(EN(11)): PRINT " ION" TAB( 11) FN RD(EN(10)):Z1 = EN(10)/MP(10):Y = 65:Z = 5: GOSUB 24900
24120 PRINT : PRINT VA$4VK$ TAB( 9);"EFFICENCY": PRINT VA$1VL$;: PRINT "ENGINES EFFIC 0";VA$2" 2 4 6 8 0";VA$1;: PRINT " LIGHT" TAB( 11) FN RD(E(11) *100)"%":Z1 = E(11):Y = 97:Z = 6: GOSUB 24900: PRINT " ION" TAB( 11) FN RD(E(10) *100)"%":Z1 = E(10):Y = 105:Z = 6: GOSUB 24900: PRINT : PRINT VA$4VK$ TAB( 10);"DROIDS"
24175 PRINT VA$1VL$"ENGINES" TAB( 14);"DROIDS": PRINT " LIGHT"; TAB( 9);: IF RT(11) >0 THEN FOR Z = 1 TO RT(11) +RT(12): PRINT VK$"W";: NEXT Z: PRINT TAB( 25);RT(11) +RT(12)VL$;
24185 PRINT : PRINT " ION" TAB( 9);: IF RT(10) >0 THEN FOR Z = 1 TO RT(10): PRINT VK$"W";: NEXT Z: PRINT TAB( 25)RT(10)VL$;
24890 RETURN
24900 HCOLOR= Z:Z1 = Z1 *70 +122: FOR Z2 = Y TO Y +6: HPLOT 122,Z2 TO Z1,Z2: HCOLOR= 7: HPLOT Z1,Z2 TO 192,Z2: HCOLOR= Z: NEXT Z2: RETURN
25000 REM
25010 GOSUB 38000: HCOLOR= 5: FOR Z = 14 TO 25: HPLOT 8,Z TO 194,Z: NEXT Z: VTAB (3): HTAB (6): PRINT VA$4VK$VN$"NAVIGATION SYSTEM": VTAB (8): HTAB (2): PRINT VA$4VK$VN$;"SYSTEM: ";: HPLOT 9,54 TO 193,54 TO 193,139 TO 9,139 TO 9,54: ON EP +1 GOTO 25050,25100,25150
25050 PRINT "MANUAL": VTAB (11): HTAB (2): PRINT "SPEED: ";EW: HTAB (2): PRINT "FUTURE SPEED: " FN RD(FS *10)/10: VTAB (15): HTAB (2): PRINT "HEADING:"; FN RD(EH): HTAB (2): PRINT "FUTURE HEADING: "; FN RD(FA)
25060 GOTO 25900
25100 PRINT "SEMI-AUTOMATIC": VTAB (11): HTAB (2): PRINT "SHIP: ";K$(AL): VTAB (14): HTAB (2): PRINT "SPEED: ";AS: GOTO 25180
25150 PRINT "AUTOMATIC": VTAB (11): HTAB (2): PRINT "SHIP: ";K$(AL): VTAB (14): HTAB (2): PRINT "DISTANCE:";ED
25180 VTAB (17): HTAB (2): PRINT "POSITION:";: IF AP = 0 THEN PRINT "CURRENT"
25200 IF AP = 1 THEN PRINT "PROJECTED"
25900 RETURN
26000 POKE 232,0: POKE 233,145: GOSUB 26900
26005 HCOLOR= 1: GOSUB 39000:Z5 = 2: IF SR <1000 THEN Z5 = 1: IF SR <400 THEN Z5 = 0
26025 GOSUB 39000:SX = 68/SR:SY = 60/SR: ROT= 0: SCALE= 1: HCOLOR= 7:X = EH: GOSUB 46000: ROT= R *8:X = 102 -X(Z5 +3,R): HCOLOR= 6: DRAW 4 +Z5 AT X,80 -Y(Z5 +3,R): IF R < >0 OR R < >4 THEN DRAW 4 +Z5 AT X,79 -Y(Z5 +3,R)
26038 IF INT(R/2) < >R/2 THEN DRAW 4 +Z5 AT X,81 -Y(Z5 +3,R)
26050 GOSUB 26600: IF X2 SR OR (CO = 1 AND SH < >Z) OR K(Z) = 0 THEN 26680
26620 X = KH(Z): GOSUB 46000: ROT= R *8:Y = 80 -(KY(Z) -EY) *SY -Y(Z5,R):X = 102 +(KX(Z) -EX) *SX -X(Z5,R): IF X >200 OR Y >160 OR X <1 OR Y <1 THEN 26680
26630 X = INT(X +.5):Y = INT(Y +.5): IF (X/2 = INT(X/2)) THEN X = X +1
26650 DRAW Z5 +1 AT X,Y: IF R < >0 OR R < >4 THEN DRAW Z5 +1 AT X,Y -1
26670 IF INT(R/2) < >R/2 THEN DRAW Z5 +1 AT X,Y +1
26680 NEXT Z:X1 = FN RD(AB):X2 = FN RD(AE):X = X1: GOSUB 26800:X7 = X3:X8 = X4:X9 = X5:X0 = X6:X = X2: GOSUB 26800: HCOLOR= 5: HPLOT X3,X4 TO X5,X6: HPLOT X7,X8 TO X9,X0: HPLOT X3 +1,X4 TO X5 +1,X6: HPLOT X7 +1,X8 TO X9 +1,X0: RETURN
26800 X3 = COS(X *DR) *75 +102:X5 = COS(X *DR) *19 +102:X4 = 80 - SIN(X *DR) *65:X6 = 80 - SIN(X *DR) *15: RETURN
26900 GOSUB 38000: GOSUB 39000: PRINT VA$4VK$VN$;" AUTOMATIC": PRINT " MANUAL":Y = 2:Z(1) = 21:Z(2) = 22:Z = 2: VTAB (23): HTAB (5): PRINT VA$1VN$;VL$"ENTER CONTROL TYPE";: GOSUB 41000:CO = X: IF X = 1 THEN 26950
26910 C = 0:RT = 50:PU = 6000:PL = 100: GOSUB 39000: PRINT VA$1;VL$;VN$;: PRINT TAB( 6)"ENTER DISTANCE";: GOSUB 40000:SR = RC: GOTO 26990
26950 GOSUB 44000:SR = DK(SH) +DK(SH) *.1 +1E -10: IF SR <1 THEN SR = 1
26990 RETURN
27000 REM
27020 X9 = 0:X8 = 0:X0 = 0: IF MN = MS THEN FS = EW: GOTO 27170
27100 C = 2: GOSUB 22000:X = 0:PU = MS:PL = MN:RT = 0:RC = MN: GOSUB 40000:FS = RC
27170 IF ABS(AB -AE) <2 THEN GOTO 27290
27175 GOSUB 38000:SR = ABS(FS) ^3 +5:X = 2: POKE 232,0: POKE 233,145: GOSUB 26005:X0 = FN RD(EH):X9 = 0:X8 = 0:C = 1:PU = X2:PL = X1:RT = 1: GOSUB 40000:FA = FN D(RC)
27290 EP = 0: GOSUB 39000: PRINT VA$4VK$;"TURNING OVER TO MANUAL":FA = FN D(FA): RETURN
27300 X = 22 +(X9 +6) *7: HPLOT X,136 TO X +3,142 TO X -3,142 TO X,136: RETURN
27350 Y = 108 -X8/18.75: HPLOT 182,Y TO 186,Y +3 TO 186,Y -3 TO 182,Y: RETURN
27400 X9 = X0:X8 = X0 ^3: HCOLOR= 4: GOSUB 27300: GOSUB 27350: HCOLOR= 7:X0 = RC:X9 = X0:X8 = X0 ^3: GOSUB 27300: GOSUB 27350: RETURN
27500 Y = 4: GOSUB 27700:Z0 = RC: GOSUB 26600:Y = 7: GOSUB 27700: RETURN
27700 HCOLOR= Y:X3 = COS(Z0 *DR):X4 = SIN(Z0 *DR): HPLOT X3 *70 +102,80 -X4 *61 TO X3 *25 +102,80 -X4 *20:Z0 = RC: RETURN
36000 PRINT VN$VY$;: VTAB (19): HTAB (28): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;: RETURN
37000 PRINT VN$VY$;: VTAB (23): HTAB (28): PRINT VW$;: VTAB (21): HTAB (4): PRINT VV$;: RETURN
38000 GOSUB 36000: PRINT VP$;: RETURN
39000 GOSUB 37000: PRINT VP$;: RETURN
40000 T2 = 10000
40005 Z1$ = "": PRINT VY$;VA$1;VL$;VN$;:R = PU -PL: IF C = 0 THEN RC = PL +R/2
40020 GOSUB 40100: IF RT = 0 THEN RT = .1
40025 VTAB (23): HTAB (30): PRINT VI$;VK$;"Y";: HTAB (36): PRINT "X";VN$:X = 135: GOSUB 40100:ZT = 0:R1 = 0
40040 X = PDL(0): IF PEEK( -16287) >127 THEN 40080
40045 IF C = 1 THEN X = 256 -X
40047 IF ZT >10 THEN ZT = 10
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (31): VTAB (22): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *(2 ^ INT(ZT/2)) *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40080 VTAB (23): HTAB (30): PRINT VK$;VI$;"X";: HTAB (36): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (22): HTAB (31): PRINT VN$" ";: PRINT VA$4;: RETURN
40100 REM
40105 IF RC >PU THEN RC = PU
40107 IF RC 1 THEN RC = INT(.5 +RC *10)/10
40109 IF RT THEN RC = INT(RC/RT +.5) *RT
40110 IF T2 = RC THEN 40190
40112 T2 = RC:Z1 = RC: IF C = 1 THEN Z1 = FN D(Z1)
40115 IF C <2 THEN Z1 = FN RD(Z1)
40117 HTAB (31): VTAB (22): PRINT VA$;1;VK$;Z1$;" ";VL$;Z1;:Y3 = LEN( STR$(Z1)): IF Y3 >6 THEN 40190
40124 Z = 6 -Y3: FOR Y2 = 1 TO Z: PRINT " ";: NEXT Y2:Z9 = 150: IF C THEN Z9 = 10
40125 POKE 2048,(PU -RC)/(PU -PL) *76 +75: POKE 2049,Z9: CALL 2050: IF C = 1 THEN GOSUB 27500
40126 IF C = 2 THEN GOSUB 27400
40130 IF C = -2 THEN GOSUB 19500
40140 IF C = 3 THEN GOSUB 19600
40190 RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43000 GOSUB 37000: VTAB (23): HTAB (4): PRINT VA$;1;VL$"PRESS BUTTON";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (23): HTAB (2): PRINT VA$(1);VK$;"L";: HTAB (18): PRINT "M";:X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (23): HTAB (2): PRINT " ";: HTAB (18): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 38000: GOSUB 45000: RETURN
44000 REM
44005 GOSUB 39000: PRINT VA$1VN$VL$ TAB( 8);"ENTER SHIP";:Y = 30:Z(1) = 17:Z(2) = 18:Z(3) = 19: FOR Z = 1 TO 3: IF K(Z) = 0 THEN Z(Z) = -Z(Z)
44040 NEXT Z:Z = 3: GOSUB 41000:SH = X: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
46000 R = 2 - INT(( FN D(X) +45/2)/45): IF R <0 THEN R = 8 +R
46030 RETURN
Text found in Starship_Commander_1981_Voyager.do/NAV.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
25 CX(5) = 1
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: GOSUB 50000: VTAB (1): PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"N": STOP
50000 POKE 2072,213: POKE 2073,170: CALL 2074:Z$ = VA$ +"1" +VK$ +VI$ +" E" +VA$ +"4": PRINT VY$;: VTAB (1): HTAB (30): PRINT VV$;: VTAB (24): HTAB (10): PRINT VW$;: VTAB (2): HTAB (1): PRINT VK$VA$3;" STATUS ";: PRINT Z$"NAVIGAT ";: PRINT Z$"ENGINE ";: PRINT Z$"DISTANCE";
50055 PRINT Z$"SPEED ";: PRINT Z$"POSITION";: PRINT Z$"EVASIVE ";: PRINT VN$;: VTAB (10): PRINT VK$VA$3;" ACTION ";: PRINT Z$"AUTO N. ";: PRINT Z$"MANUAL N";: PRINT Z$"EVASIVE ";
50120 VTAB (14): PRINT Z$"RETURN ";: VTAB (16): PRINT VN$VK$VA$3;" SHIP ";: PRINT Z$"DETAS ";: PRINT Z$"MILAS ";: PRINT Z$"KAMAS ";: VTAB (21)
50123 PRINT VA$3;: PRINT VI$;: PRINT " COUNTER ";: PRINT VI$" ";: PRINT VN$" ";: PRINT VI$" ";
50170 PRINT VI$VA$1VK$"X";VL$;"RDY "VK$"X"VL$"ENT";: PRINT VY$VN$;: VTAB (2): HTAB (2): PRINT VV$;: VTAB (19): HTAB (27): PRINT VW$VP$;: PRINT VY$;: VTAB (21): HTAB (2): PRINT VI$VV$Z$: PRINT Z$: PRINT Z$;: VTAB (21): HTAB (3): PRINT VN$VV$;: VTAB (23): HTAB (25): PRINT VW$VP$;
50220 PRINT VY$;: VTAB (1): HTAB (10): PRINT VI$VA$3VK$;"NAVIGATION";: DATA 6,8,-4,16,-8,10,-12,-4,-6,-8,8,-16,8,-6,10,0,6,6,0,12,-4,6,-12,0,-6,-4,0,-12,8 ,-6,12,-2,35,28,53,28,53,36: RETURN
Text found in Starship_Commander_1981_Voyager.do/SCIENCE.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
35 CX(6) = 1
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: PRINT VA$0VY$VN$VK$:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOSUB 50000: GOSUB 10000
9999 GOTO 9999
10000 FOR Z = 1 TO 4:Z(Z) = 2 +Z *2: NEXT Z:Y = 32:Z = 4: FOR Z = 1 TO 3: IF K(Z) = 0 THEN Z(Z) = -Z(Z)
10008 NEXT Z: GOSUB 41000: IF X = 4 THEN GOTO 16000
10030 SH = X: GOSUB 21000: GOTO 10000
16000 REM
16005 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z1$(Z) = "":Z$(Z) = "": NEXT Z:Z$ = "":Z1$ = "": PRINT VA$0VN$VK$: PRINT VY$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
16050 GOTO 16050
20000 HCOLOR= 6: FOR Z = 10 TO 80: HPLOT Z,14 TO Z,126: NEXT Z: RETURN
21000 REM
21010 GOSUB 38000: PRINT : PRINT TAB( 12)VA$4VK$VN$"SHIP:"; TAB( 18);K$(SH): PRINT : PRINT TAB( 12)"TYPE:" TAB( 18);:Z$ = "DESTROYER": IF KT(SH) >1 THEN Z$ = "CRUISER": IF KT(SH) = 3 THEN Z$ = "DREADNAUGHT"
21070 PRINT Z$: PRINT : PRINT TAB( 12);"MAX SPEED:" TAB( 24) INT(MS(SH) *100)/100: PRINT TAB( 12)"MAX POWER:" TAB( 24) FN RD(MK(SH,0)): PRINT TAB( 12)"CREW:" TAB( 24) FN RD(KC(SH)): PRINT : PRINT TAB( 12)"DISTANCE:" TAB( 24) FN RD(DK(SH))
21110 PRINT TAB( 12)"HEADING:" TAB( 24) FN RD(KH(SH)): PRINT TAB( 12)"SPEED:" TAB( 24) INT(KW(SH) *100)/100: PRINT : PRINT TAB( 12)"SHIELD:" TAB( 24) FN RD(YS(SH)): PRINT TAB( 12)"OFF SHIELD: "; FN RD(XS(SH))
21115 GOSUB 20000: ON KT(SH) GOSUB 25000,24000,23000: PRINT : PRINT VA$1VL$;: PRINT "SYST. MX PW POWER 0 "VA$2"2 4 6 8 0",
21300 GOSUB 39000: HCOLOR= 6: HPLOT 8,132 TO 209,132: HPLOT 8,143 TO 209,143: FOR Z = 1 TO 4: PRINT "SHLD"Z; TAB( 7) FN RD(MK(SH,Z)) TAB( 13) FN RD(KP(SH,Z)): NEXT Z: PRINT "TOTAL"; TAB( 7) FN RD(MK(SH,0)) TAB( 13) FN RD(KP(SH,0));: HCOLOR= 4
21400 FOR Z = 19 TO 22:Z1 = 8 *Z -1: HPLOT 8,Z1 TO 209,Z1: NEXT Z: FOR Z = 136 TO 206 STEP 14: HPLOT Z,144 TO Z,183: NEXT Z: HCOLOR= 5: FOR Z = 1 TO 4:Z1 = 136 +70 *KP(SH,Z)/MK(SH,Z):Z2 = 136 +Z *8
21480 FOR Z3 = Z2 TO Z2 +6: HPLOT 136,Z3 TO Z1,Z3: NEXT Z3: NEXT Z: HCOLOR= 6:Z1 = 136 +70 *KP(SH,0)/MK(SH,0): FOR Z3 = 176 TO 183: HPLOT 136,Z3 TO Z1,Z3: NEXT Z3: RETURN
23000 REM
23005 HCOLOR= 4: HPLOT 46,16 TO 34,16 TO 34,24 TO 30,24 TO 30,32 TO 34,32 TO 38,36 TO 42,36 TO 46,32 TO 50,32 TO 50,24 TO 46,24 TO 46,16: HPLOT 38,36 TO 38,80 TO 42,80 TO 42,36: HPLOT 38,72 TO 26,72 TO 26,120 TO 54,120 TO 54,72 TO 42,72
23030 HPLOT 22,84 TO 22,116 TO 58,116 TO 58,84 TO 22,84: HPLOT 22,100 TO 16,100 TO 16,116 TO 22,116: HPLOT 58,100 TO 64,100 TO 64,116 TO 58,116: HPLOT 26,100 TO 54,100: HPLOT 34,72 TO 34,80: HPLOT 46,72 TO 46,80: HPLOT 30,84 TO 30,80 TO 50,80 TO 50,84: HPLOT 16,100 TO 16,72 TO 18,72 TO 18,100
23110 HPLOT 64,100 TO 64,72 TO 62,72 TO 62,100: HPLOT 26,84 TO 30,100: HPLOT 54,84 TO 50,100: RETURN
24000 REM
24010 HCOLOR= 4: HPLOT 42,38 TO 38,38 TO 38,24 TO 42,24 TO 42,16 TO 46,16 TO 46,24 TO 50,24 TO 50,38 TO 46,38: HPLOT 42,34 TO 42,68 TO 22,76 TO 18,76 TO 18,104 TO 26,104 TO 26,100: HPLOT 42,34 TO 46,34 TO 46,68 TO 66,76 TO 70,76 TO 70,104 TO 62,104 TO 62,100
24050 HPLOT 22,76 TO 22,100 TO 38,100: HPLOT 66,76 TO 66,100 TO 50,100: HPLOT 38,84 TO 38,104 TO 50,104 TO 50,84 TO 38,84: HPLOT 42,48 TO 38,48 TO 38,68: HPLOT 46,48 TO 50,48 TO 50,68: HPLOT 22,96 TO 38,92: HPLOT 50,92 TO 66,96: HPLOT 22,96 TO 38,96: HPLOT 50,96 TO 66,96
24190 RETURN
25000 REM
25010 HCOLOR= 4: HPLOT 32,20 TO 32,32 TO 44,32 TO 44,20 TO 32,20: HPLOT 36,88 TO 36,24 TO 40,24 TO 40,88: HPLOT 36,60 TO 16,80 TO 16,100 TO 32,100: HPLOT 40,60 TO 60,80 TO 60,100 TO 44,100: HPLOT 32,88 TO 32,108 TO 44,108 TO 44,88 TO 32,88: HPLOT 36,52 TO 24,52 TO 24,72: HPLOT 40,52 TO 52,52 TO 52,72
25100 HPLOT 16,92 TO 32,92: HPLOT 44,92 TO 60,92: HPLOT 28,80 TO 28,84 TO 20,84 TO 20,80 TO 20,92: HPLOT 48,80 TO 48,84 TO 56,84 TO 56,80 TO 56,92: RETURN
36000 PRINT VY$;: VTAB (23): HTAB (30): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;: RETURN
38000 GOSUB 36000: PRINT VN$VP$;: RETURN
39000 PRINT VY$VA$4VK$;VI$;: VTAB (23): HTAB (30): PRINT VW$;: VTAB (19): HTAB (2): PRINT VV$VP$;: RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
47000 Z = LEN(Z1$):Z$ = Z1$: IF Z <23 THEN GOSUB 47100: GOTO 47095
47010 FOR Z1 = 22 TO 1 STEP -1:Z2 = ASC( MID$ (Z1$,Z1,1)): IF Z2 = 32 THEN Z$ = LEFT$(Z1$,Z1):Z1$ = RIGHT$(Z1$,Z -Z1): GOSUB 47100: GOTO 47080
47040 NEXT Z1:Z$ = LEFT$(Z1$,22):Z1$ = RIGHT$(Z1$,Z -22): GOSUB 47100
47080 GOTO 47000
47095 RETURN
47100 Z = LEN(Z$): PRINT VA$4VK$VI$;: FOR Z1 = 1 TO Z: PRINT MID$ (Z$,Z1,1);: POKE 2048,100: POKE 2049,15: CALL 2050: NEXT Z1: PRINT : RETURN
50000 POKE 2072,170: POKE 2073,213: CALL 2074:Z$ = VA$ +"1" +VK$ +VI$ +" E" +VA$ +"4":Z1$ = VI$ +" "
50001 PRINT VY$;: VTAB (1): HTAB (32): PRINT VV$;: VTAB (24): HTAB (8): PRINT VW$;: VTAB (2): HTAB (1): PRINT VA$3VK$;" SCAN ";: PRINT VA$4Z1$;
50040 PRINT Z$"DETAS ";: PRINT Z1$Z$"MILAS ";: PRINT Z1$Z$"KAMAS ";: PRINT Z1$Z$"RETURN";: PRINT VY$;: HTAB (12): VTAB (1): PRINT VA$3VK$VI$;"SCIENCE"VA$4;: GOSUB 38000: RETURN
Text found in Starship_Commander_1981_Voyager.do/SHIP1 SHAPE.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 0A 21 16 00 81 00 D0 00 02 01 84 01 EE 01 48 02 .!....P. ....n.H.
$000010 4A 02 00 00 00 00 0A 09 09 09 0D 09 09 11 1B 1B J....... ........
$000020 1B 1B 1B 1B 1B 0A 09 09 09 0D 09 09 11 1B 1B 1B ........ ........
$000030 3B 1B 1B 1B 0A 09 09 09 0D 09 09 11 1B 1B 1B 3B ;....... .......;
$000040 1B 1B 1B 0A 09 09 09 0D 09 09 11 1B 1B 3B 3B 3B ........ .....;;;
$000050 1B 1B 0A 09 09 0D 0D 0D 09 11 1B 1B 3B 3B 3B 1B ........ ....;;;.
$000060 1B 0A 09 0D 0D 0D 0D 0D 11 1B 3B 3B 3B 3B 3B 1B ........ ..;;;;;.
$000070 0A 09 09 0D 0D 0D 09 11 1B 1B 3B 3B 3B 1B 1B 18 ........ ..;;;...
$000080 00 0A 09 09 09 09 09 09 1A 1B 1B 1B 1F 1B 1B 0A ........ ........
$000090 09 09 09 09 09 09 1A 1B 1B 1B 1F 1B 1B 0A 09 09 ........ ........
$0000A0 29 09 09 09 1A 1B 1B 1B 1F 1B 1B 0A 09 29 29 29 )....... .....)))
$0000B0 09 09 1A 1B 1B 1F 1F 1F 1B 0A 29 29 29 29 29 09 ........ ..))))).
$0000C0 1A 1B 1B 1F 1F 1F 1B 0A 09 29 29 29 09 09 08 00 ........ .)))....
$0000D0 0A 09 09 29 09 09 1A 1B 1B 1B 1B 1B 0A 09 09 29 ...).... .......)
$0000E0 09 09 1A 1B 1B 1F 1B 1B 0A 09 09 29 09 09 1A 1B ........ ...)....
$0000F0 1B 1F 1B 1B 0A 09 29 29 29 09 1A 1B 1F 1F 1F 1B ......)) ).......
$000100 18 00 0A 09 09 29 29 09 09 09 1A 1B 1B 1B 1F 1F .....)). ........
$000110 1B 1B 0A 09 09 29 29 09 09 09 1A 1B 1B 1F 1F 1F .....)). ........
$000120 1F 1B 0A 09 29 29 29 29 09 09 1A 1B 1B 1F 1F 1F ....)))) ........
$000130 1F 1B 0A 29 09 29 29 09 29 09 1A 1B 1F 1B 1B 1B ...).)). ).......
$000140 1B 1F 0A 29 29 29 29 29 29 09 1A 1B 1F 1B 1F 1F ...))))) ).......
$000150 1B 1F 0A 29 09 29 29 09 29 09 1A 1B 1F 1B 1F 1F ...).)). ).......
$000160 1B 1F 0A 29 29 29 29 29 29 09 1A 1B 1F 1B 1F 1F ...))))) ).......
$000170 1B 1F 0A 09 09 09 09 09 09 09 1A 1B 1B 1B 1F 1F ........ ........
$000180 1B 1B 18 00 0A 09 09 29 29 09 09 09 1A 1B 1B 1B .......) ).......
$000190 1F 1F 1B 1B 0A 09 09 29 29 09 09 09 1A 1B 1B 1B .......) ).......
$0001A0 1F 1F 1B 1B 0A 09 09 09 09 09 09 09 1A 1B 1B 1B ........ ........
$0001B0 1F 1F 1B 1B 0A 29 09 29 29 09 29 09 1A 1B 1F 1F .....).) ).).....
$0001C0 1F 1F 1F 1F 0A 29 29 29 29 29 29 09 1A 1B 1F 1F .....))) ))).....
$0001D0 1F 1F 1F 1F 0A 29 09 29 29 09 29 09 1A 1B 1B 1B .....).) ).).....
$0001E0 1B 1B 1B 1B 0A 09 09 29 29 09 09 09 08 00 0A 09 .......) ).......
$0001F0 09 29 29 09 09 09 1A 1B 1B 1B 1F 1F 1B 1B 0A 09 .))..... ........
$000200 09 29 29 09 09 09 1A 1B 1B 1B 1B 1B 1B 1B 0A 09 .))..... ........
$000210 09 09 09 09 09 09 1A 1B 1B 1F 1B 1B 1F 1B 0A 09 ........ ........
$000220 29 29 29 29 09 09 1A 1B 1B 1F 1F 1F 1F 1B 0A 09 )))).... ........
$000230 29 29 29 29 09 09 1A 1B 1B 1F 1B 1B 1F 1B 0A 09 )))).... ........
$000240 09 29 29 09 09 09 08 00 00 00 .. .. .. .. .. .. .))..... ..
** END **
Text found in Starship_Commander_1981_Voyager.do/SHIP2 SHAPE.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 0A 21 16 00 0E 01 E9 02 05 04 CE 05 A9 08 CA 08 .!....i. ..N.).J.
$000010 EF 08 00 00 00 00 0A 09 09 09 09 09 29 29 29 29 o....... ....))))
$000020 29 29 29 29 29 09 09 09 09 09 11 1B 1B 1B 1B 1B )))))... ........
$000030 1B 1F 1B 1B 1B 1B 1B 1B 1B 1F 1B 1B 1B 1B 1B 0A ........ ........
$000040 09 09 09 09 09 29 09 09 29 29 29 09 09 29 09 09 .....).. )))..)..
$000050 09 09 09 11 1B 1B 1B 1B 1B 1F 1F 1F 1F 3F 3F 1F ........ .....??.
$000060 1F 1F 1F 1F 1B 1B 1B 1B 0A 09 09 09 29 09 29 09 ........ ....).).
$000070 09 29 2D 2D 09 09 29 29 29 09 09 09 11 1B 1B 1B .)--..)) ).......
$000080 1B 1F 1B 1F 1B 1B 3F 3F 1F 1B 1B 1F 1B 1F 1B 1B ......?? ........
$000090 1B 0A 09 09 29 09 09 29 09 09 29 29 29 09 09 29 ....)..) ..)))..)
$0000A0 09 09 29 09 09 11 1B 1B 1F 1F 1F 1F 1F 1F 1B 3F ..)..... .......?
$0000B0 3F 1F 1B 1F 1F 1F 1F 1F 1F 1B 0A 09 29 09 09 09 ?....... ....)...
$0000C0 29 29 29 29 2D 2D 29 29 29 09 09 09 29 09 11 1B ))))--)) )...)...
$0000D0 1B 1F 1F 1F 1F 1F 1F 1B 1F 1F 1F 1B 1F 1F 1F 1F ........ ........
$0000E0 1F 1F 1B 0A 09 09 09 09 09 09 29 29 09 09 09 09 ........ ..))....
$0000F0 29 09 09 09 09 09 09 11 1B 1B 1B 1B 1B 1B 1B 1B )....... ........
$000100 1F 1F 1F 1F 1F 1B 1B 1B 1B 1B 1B 1B 18 00 0A 09 ........ ........
$000110 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 ........ ........
$000120 09 09 09 09 09 09 29 29 29 29 29 29 29 29 29 09 ......)) ))))))).
$000130 09 09 11 1B 1B 1B 1B 1F 1F 1F 1F 1F 1F 1F 1F 1F ........ ........
$000140 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000150 1B 1B 1B 1B 1B 1B 1B 0A 09 09 09 09 09 09 09 09 ........ ........
$000160 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 29 ........ .......)
$000170 29 29 29 29 29 29 09 29 09 09 09 11 1B 1B 1B 1B )))))).) ........
$000180 1F 1F 1F 1B 1F 1B 1F 1F 1F 1B 1B 1B 1B 1B 1B 1B ........ ........
$000190 1B 1B 1B 1B 1B 1B 1B 1B 1B 1F 1F 1F 1B 1B 1B 1B ........ ........
$0001A0 0A 09 09 09 29 29 29 29 09 09 09 09 09 09 09 09 ....)))) ........
$0001B0 09 09 09 09 09 09 09 09 09 09 09 29 29 09 29 09 ........ ...)).).
$0001C0 09 09 09 09 11 1B 1B 1B 1B 1B 1B 1F 1F 1B 1F 1F ........ ........
$0001D0 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1B 1B 1B 1B 1B 1B ........ ........
$0001E0 1B 1B 1F 1F 1F 1F 1B 1B 1B 0A 09 29 29 29 2D 2D ........ ...)))--
$0001F0 2D 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 -))))))) ))))))))
$000200 29 29 29 29 29 29 09 29 09 09 09 09 09 11 1B 1B )))))).) ........
$000210 1B 1B 1B 1B 1F 1F 1B 1F 3F 3B 3F 3B 3F 3B 3F 3B ........ ?;?;?;?;
$000220 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B ?;?;?;?; ?;?;?;?;
$000230 1F 1B 0A 09 29 29 29 29 29 29 29 29 29 29 29 29 ....)))) ))))))))
$000240 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 09 )))))))) ))))))).
$000250 29 29 29 29 29 09 11 1B 1B 1F 1F 1B 1F 1B 1F 1B )))))... ........
$000260 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1B 1B ........ ........
$000270 1B 1B 1B 1B 1F 1F 1F 1F 1F 1B 1B 0A 09 09 09 29 ........ .......)
$000280 29 29 09 09 09 09 09 09 09 29 29 29 09 29 09 29 ))...... .))).).)
$000290 09 29 09 29 09 29 09 29 09 29 09 29 29 29 09 11 .).).).) .).)))..
$0002A0 1B 1B 1F 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F 1B 1F ........ ........
$0002B0 1B 1F 1F 1F 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$0002C0 1B 1B 1B 1B 0A 09 09 09 09 09 09 09 09 09 09 09 ........ ........
$0002D0 09 09 09 09 09 09 29 29 29 29 29 29 29 29 29 29 ......)) ))))))))
$0002E0 29 29 29 29 29 29 09 09 00 0A 09 09 09 09 09 09 )))))).. ........
$0002F0 09 0D 0D 0D 0D 0D 0D 0D 0D 0D 09 09 09 09 09 09 ........ ........
$000300 11 1B 1B 1B 1B 1B 1B 1B 3B 1B 1B 1B 1B 1B 1B 1B ........ ;.......
$000310 3B 1B 1B 1B 1B 1B 1B 1B 0A 09 09 09 09 09 09 09 ;....... ........
$000320 0D 09 09 09 09 09 09 09 0D 09 09 09 09 09 09 11 ........ ........
$000330 1B 1B 1B 1B 1B 1B 3B 3B 1B 1B 1B 1B 1B 1B 1B 3B ......;; .......;
$000340 3B 1B 1B 1B 1B 1B 1B 0A 09 09 09 09 09 0D 0D 0D ;....... ........
$000350 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 09 09 09 09 11 1B ........ ........
$000360 1B 1B 1B 3B 3B 3B 3F 1F 1F 1F 1F 1F 1F 1F 3F 3F ...;;;?. ......??
$000370 3B 3B 1B 1B 1B 1B 0A 09 09 09 0D 0D 0D 2D 2D 29 ;;...... .....--)
$000380 29 29 29 29 29 29 2D 0D 0D 0D 0D 09 09 11 1B 1B ))))))-. ........
$000390 3B 3B 3B 3B 3B 3F 1F 1F 1F 1F 1F 1F 1F 3F 3F 3B ;;;;;?.. .....??;
$0003A0 3B 3B 3B 1B 1B 0A 09 0D 0D 0D 09 09 0D 0D 0D 0D ;;;..... ........
$0003B0 0D 0D 0D 0D 0D 0D 0D 09 09 0D 0D 0D 11 1B 3B 3B ........ ......;;
$0003C0 3B 3B 3B 3B 3F 1F 1F 1F 1F 1F 1F 1F 3F 3F 3B 3B ;;;;?... ....??;;
$0003D0 3B 3B 3B 1B 0A 09 09 09 09 09 09 2D 2D 29 29 29 ;;;..... ...--)))
$0003E0 29 29 29 29 2D 0D 09 09 09 09 09 11 1B 1B 1B 1B ))))-... ........
$0003F0 1B 1B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 1B 1B 1B ..;;;;;; ;;;;;...
$000400 1B 1B 1B 18 00 0A 09 09 29 29 29 29 29 29 29 29 ........ ))))))))
$000410 29 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 )....... ........
$000420 09 09 09 09 09 09 09 09 1A 1B 1B 1B 1B 1B 1B 1B ........ ........
$000430 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000440 1F 1F 1F 1F 1F 1F 1F 1F 1F 1B 1B 0A 09 09 29 09 ........ ......).
$000450 29 29 29 29 29 29 29 09 09 09 09 09 09 09 09 09 ))))))). ........
$000460 09 09 09 09 09 09 09 09 09 09 09 09 09 09 1A 1B ........ ........
$000470 1B 1B 1B 1F 1F 1F 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000480 1B 1B 1B 1B 1B 1B 1F 1F 1F 1F 1F 1B 1F 1F 1F 1B ........ ........
$000490 1B 0A 09 09 09 09 29 09 29 29 09 09 09 09 09 09 ......). ))......
$0004A0 09 09 09 09 09 09 09 09 09 09 09 09 09 29 29 29 ........ .....)))
$0004B0 29 09 09 09 1A 1B 1B 1B 1F 1F 1F 1F 1B 1B 1B 1B )....... ........
$0004C0 1B 1B 1B 1B 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F ........ ........
$0004D0 1B 1F 1F 1B 1B 1B 1B 0A 09 09 09 09 29 09 29 09 ........ ....).).
$0004E0 29 2D 0D 2D 29 29 29 29 29 29 29 29 29 29 29 29 )-.-)))) ))))))))
$0004F0 29 29 29 29 29 29 29 29 29 09 1A 1B 3F 3B 3F 3B )))))))) )...?;?;
$000500 3F 3F 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B ???;?;?; ?;?;?;?;
$000510 3F 3B 3F 3B 1F 1F 1B 1F 1F 1B 1B 1B 1B 0A 29 29 ?;?;.... ......))
$000520 29 29 29 09 29 09 29 29 29 29 29 29 29 29 29 29 ))).).)) ))))))))
$000530 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 09 )))))))) ))))))).
$000540 1A 1B 1B 1F 1F 1F 1F 1F 1B 1B 1B 1B 1B 1B 1F 1F ........ ........
$000550 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1B 1F 1B 1F 1B 1F ........ ........
$000560 1B 1F 1F 0A 29 29 29 09 29 09 29 09 29 09 29 09 ....))). ).).).).
$000570 29 09 29 09 29 09 29 29 29 09 09 09 09 09 09 09 ).).).)) ).......
$000580 29 29 29 09 09 09 1A 1B 1B 1B 1B 1B 1B 1B 1B 1B )))..... ........
$000590 1B 1B 1B 1B 1B 1B 1F 1F 1B 1F 1B 1F 1B 1F 1B 1F ........ ........
$0005A0 1B 1F 1B 1F 1B 1F 1B 1F 1F 0A 09 29 29 29 29 29 ........ ...)))))
$0005B0 29 29 29 29 29 29 29 29 29 29 29 29 09 09 09 09 )))))))) ))))....
$0005C0 09 09 09 09 09 09 09 09 09 09 09 09 08 00 0A 09 ........ ........
$0005D0 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0D ........ ........
$0005E0 0D 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 ........ ........
$0005F0 09 09 09 09 09 09 11 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000600 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 3B 3B 3B ........ .....;;;
$000610 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 0A ........ ........
$000620 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0D ........ ........
$000630 09 0D 09 09 09 09 09 09 09 09 09 09 09 09 09 09 ........ ........
$000640 09 09 09 09 09 09 09 11 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000650 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 3B 1B ........ ......;.
$000660 3B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ;....... ........
$000670 0A 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0D ........ ........
$000680 09 0D 0D 09 09 09 09 09 09 09 09 09 09 0D 09 09 ........ ........
$000690 09 09 09 09 09 09 09 09 11 1B 1B 1B 1B 1B 1B 1B ........ ........
$0006A0 1B 1B 3B 3B 3B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 3B ..;;;... .......;
$0006B0 1B 3B 3B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B .;;..... ........
$0006C0 1B 0A 09 09 09 0D 09 09 09 09 09 09 09 09 09 0D ........ ........
$0006D0 0D 09 0D 0D 09 09 09 09 09 09 09 0D 0D 0D 0D 09 ........ ........
$0006E0 0D 0D 0D 0D 09 09 09 09 09 11 1B 1B 1B 1B 3B 3B ........ ......;;
$0006F0 3B 1B 3B 1B 3B 1B 3B 3B 3B 1B 1B 1B 1B 1B 1B 1B ;.;.;.;; ;.......
$000700 3B 1B 3B 1B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 1B ;.;.;;;; ;;;;;;;.
$000710 1B 1B 0A 09 09 0D 09 0D 09 0D 09 0D 09 0D 09 0D ........ ........
$000720 09 0D 09 0D 0D 0D 0D 09 09 09 0D 0D 0D 0D 09 0D ........ ........
$000730 09 0D 09 0D 09 0D 0D 0D 0D 0D 11 1B 1B 3B 3B 3B ........ .....;;;
$000740 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 1B 1B 1B 3B ;;;;;;;; ;;;;...;
$000750 1B 3B 1B 3B 1B 3B 1B 3B 1B 3B 1B 3B 1B 3B 1B 3B .;.;.;.; .;.;.;.;
$000760 3B 1B 1B 0A 09 0D 0D 09 0D 09 0D 09 0D 09 0D 09 ;....... ........
$000770 0D 09 0D 09 0D 09 0D 09 0D 0D 0D 0D 0D 0D 09 09 ........ ........
$000780 0D 0D 0D 09 09 09 09 09 09 09 09 11 1B 1B 1B 1B ........ ........
$000790 1B 1B 1B 1B 1B 1B 3B 3B 3B 3B 1B 3B 3B 3B 3B 3B ......;; ;;.;;;;;
$0007A0 3B 3B 3B 3B 3B 3B 3B 1B 3B 1B 3B 1B 3B 1B 3B 3B ;;;;;;;. ;.;.;.;;
$0007B0 3B 3B 3B 1B 0A 09 09 09 09 09 0D 0D 0D 0D 09 0D ;;;..... ........
$0007C0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 09 0D 09 0D ........ ........
$0007D0 09 0D 0D 09 09 09 09 09 09 09 09 09 11 1B 1B 1B ........ ........
$0007E0 1B 1B 1B 1B 1B 1B 1B 3B 1B 3B 1B 3B 3B 3B 3B 3B .......; .;.;;;;;
$0007F0 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3B 3B 3B 1B ?;?;?;?; ?;?;;;;.
$000800 1B 1B 1B 1B 1B 0A 09 09 09 09 09 09 0D 2D 0D 2D ........ .....-.-
$000810 0D 2D 0D 2D 0D 2D 0D 2D 0D 2D 0D 2D 0D 2D 0D 0D .-.-.-.- .-.-.-..
$000820 0D 0D 0D 0D 09 09 09 09 09 09 09 09 09 11 1B 1B ........ ........
$000830 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 3B 3F ........ ......;?
$000840 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F 3B 3F ;?;?;?;? ;?;?;?;?
$000850 1B 1B 1B 1B 1B 1B 0A 09 09 09 09 09 09 0D 0D 0D ........ ........
$000860 0D 0D 2D 0D 2D 0D 2D 0D 2D 0D 2D 0D 2D 0D 09 09 ..-.-.-. -.-.-...
$000870 09 09 09 09 09 09 09 09 09 09 09 09 09 09 11 1B ........ ........
$000880 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ........ ........
$000890 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 3B 1B 1B 1B 1B ;;;;;;;; ;;;;....
$0008A0 1B 1B 1B 1B 1B 1B 1B 18 00 0A 29 29 29 29 29 11 ........ ..))))).
$0008B0 1B 1F 1F 1F 1F 1F 0A 29 29 29 29 29 11 1B 1F 1F .......) ))))....
$0008C0 1F 1F 1F 0A 29 29 29 29 29 00 0A 29 29 29 29 29 ....)))) )..)))))
$0008D0 09 1A 1B 1F 1B 1B 1B 1F 0A 29 09 09 09 29 09 1A ........ .)...)..
$0008E0 1B 1F 1B 1B 1B 1F 0A 29 29 29 29 29 09 08 00 .. .......) ))))...
** END **
Text found in Starship_Commander_1981_Voyager.do/START.bas:
10 HIMEM: 35070
100 ADRS = 0
101 ONERR GOTO 30000
115 ADRS = 35070
120 PRINT CHR$(4);"BLOAD H,A";ADRS
130 POKE 216,0
140 IF ADRS < = 0 THEN ADRS = ADRS +65536
145 PRINT "BLOAD SHIP2 SHAPE,A2150"
147 PRINT "BLOAD SHIP1 SHAPE,A37120"
150 X = 4712
160 X1 = INT(X/256):X2 = X -X1 *256
170 PRINT CHR$(4);"BLOAD SMALL.SET,A";X
180 PRINT CHR$(4);"BLOAD WORD.SET,A";X +768
190 PRINT CHR$(4);"BLOAD SHADOW.SET,A";X +1536
200 PRINT CHR$(4);"BLOAD COLOSSAL.SET,A";X +2304
1000 REM INIT VARIABLES
5000 REM INIT HI-RES CHAR GENERATOR
5030 POKE ADRS +7,X2: POKE ADRS +8,X1
5032 POKE ADRS +23,234: POKE ADRS +24,234: POKE ADRS +25,234
5036 HIMEM: 35070
6010 PRINT CHR$(4);"BLOAD SUBROUTINES,A2050"
6020 PRINT CHR$(4)"RUN INTRO"
29999 END
Text found in Starship_Commander_1981_Voyager.do/STORE DATA.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
100 POKE 2072,85: POKE 2073,42: CALL 2074: PRINT VY$: VTAB (2): HTAB (10): PRINT VA$4VK$VN$;" STARSHIP COMMANDER "
1000 GOSUB 39000: VTAB (5): PRINT "DO YOU WISH TO SAVE THIS GAME?":X5 = 0: GOSUB 20000: IF X = 1 THEN GOSUB 10000
1015 IF X5 = 1 THEN 1000
1017 ONERR GOTO 15011
1020 GOSUB 39000: VTAB (7): PRINT TAB( 4)"DO YOU WISH TO END THIS GAME?":EG = 0: GOSUB 20000: IF X = 1 THEN 1500
1030 PRINT VA$0VK$VN$
1040 PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"INFO1": STOP
1500 EG = 1: PRINT VA$0VK$VN$: PRINT CHR$(4)"BLOAD CHAIN,A520": CALL 520"BYE"
1600 STOP
10000 REM
10001 GOSUB 12000: GOSUB 39000: CALL 48251: VTAB (12): HTAB (13): PRINT "SAVING DATA": ONERR GOTO 15000
10010 VTAB (1): PRINT VA$0VN$VK$:Z$ = CHR$(4): PRINT Z$;"OPEN STARSHIP DATA": PRINT Z$;"WRITE STARSHIP DATA": FOR Z = 7790 TO 8030: PRINT PEEK(Z): NEXT Z: FOR Z = 1 TO 15: PRINT EN(Z): PRINT D(Z): PRINT E(Z): PRINT RP(Z): PRINT RT(Z): PRINT AL(Z): NEXT Z
10090 FOR Z = 1 TO 3: PRINT KX(Z): PRINT KY(Z): PRINT KW(Z): PRINT KH(Z): PRINT DK(Z): PRINT XS(Z): PRINT YS(Z): PRINT XA(Z): PRINT YR(Z): PRINT EV(Z): PRINT AX(Z): PRINT AY(Z): PRINT K2(Z): PRINT SD(Z): PRINT MS(Z): PRINT KT(Z): PRINT KC(Z): PRINT K(Z): FOR Z2 = 0 TO 7: PRINT KP(Z,Z2): PRINT MK(Z,Z2): NEXT Z2: NEXT Z: PRINT AX(0): PRINT AY(0)
10170 FOR Z = 1 TO 4: FOR Z1 = 1 TO 3: PRINT CM(Z,Z1): PRINT CO(Z,Z1): PRINT CT(Z,Z1): PRINT PC(Z,Z1): NEXT Z1: PRINT AS(Z): PRINT DT(Z): PRINT LS(Z): NEXT Z: FOR Z = 0 TO 9: PRINT F(Z): NEXT Z
10180 FOR Z = 1 TO 3: PRINT VH(Z): PRINT VR(Z): NEXT Z: PRINT CA: PRINT EX: PRINT EY
10240 PRINT F1: PRINT CM(0,0): FOR Z = 1 TO 6: PRINT LP(Z): NEXT Z
10250 PRINT MP: PRINT CB: PRINT B1: PRINT F9: PRINT F1: PRINT FF: PRINT F2: PRINT DA: PRINT BS: PRINT EV: PRINT AE: PRINT AB: PRINT BP: PRINT FH: PRINT LM: PRINT LP: PRINT EW: PRINT EH: PRINT EP: PRINT AL: PRINT AP: PRINT ED: PRINT AS: PRINT FS: PRINT FA: PRINT MS: PRINT MN: PRINT Z$"CLOSE STARSHIP DATA"
10310 POKE 216,0: GOSUB 39000: CALL 48265: VTAB (10): PRINT "PLACE GAME DISKETTE BACK IN DISK": PRINT : PRINT "DRIVE.": POKE 216,0: GOSUB 43000: ONERR GOTO 16000
10360 PRINT VA$0VK$VN$: PRINT CHR$(4)"OPEN CREW,L12": PRINT CHR$(4)"READ CREW,R1": PRINT CHR$(4)"CLOSE CREW": POKE 216,0: RETURN
12000 GOSUB 39000: VTAB (7): PRINT "REPLACE GAME DISKETTE WITH YOUR DATA": PRINT : PRINT "DISKETTE. THE DATA DISKETTE SHOULD BE": PRINT : PRINT "A FORMATTED 16 SECTOR DISKETTE.": GOSUB 43000: RETURN
15000 REM
15010 POKE 216,0: ONERR GOTO 15019: PRINT CHR$(4)"CLOSE STARSHIP DATA"
15011 GOSUB 39000: PRINT VA$4VK$VI$
15015 VTAB (18): HTAB (1): PRINT "PLACE GAME DISKETTE BACK IN DISK DRIVE";
15019 : POKE 216,0: CALL 35070: VTAB (16): PRINT VA$4VK$VI$; TAB( 15): PRINT "DISK ERROR": POKE 2048,90: POKE 2049,255: CALL 2050: GOSUB 43000
15030 POKE 216,0
15050 GOTO 1000
16000 POKE 216,0: ONERR GOTO 16015: PRINT CHR$(4)"CLOSE CREW"
16015 POKE 216,0: CALL 35070: VTAB (15): PRINT VA$VK$VI$; TAB( 15): PRINT "DISK ERROR": POKE 2048,90: POKE 2049,255: CALL 2050: GOSUB 43000: GOTO 10310
20000 REM
20010 VTAB (15): HTAB (18): PRINT VA$4VK$VI$;"YES": VTAB (17): HTAB (18): PRINT VA$4VK$VI$;"NO":Y = 17:Z(1) = 15:Z(2) = 17:Z = 2: GOSUB 41000: RETURN
38000 PRINT VY$: VTAB (22): HTAB (39): PRINT VW$;: VTAB (4): HTAB (2): PRINT VV$;: RETURN
39000 GOSUB 38000: PRINT VA$4VI$VK$;VP$;: RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z1$ = "J":Y3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Y3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Y3 = Z2
41020 NEXT Z2:X1 = Y3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
43000 VTAB (20): HTAB (9): PRINT VL$VA$1"PRESS BUTTON WHEN READY";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (20): HTAB (6): PRINT VA$1VK$"L";: HTAB (34): PRINT "M":X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (20): HTAB (6): PRINT " ";: HTAB (34): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 45000: PRINT VA$4VK$VI$;: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
Text found in Starship_Commander_1981_Voyager.do/TARGET.bas:
20 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 232,0: POKE 233,145: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1):VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
40 DEF FN RF(X) = ((3700 -X)/3700) ^2.86: SCALE= 1: ROT= 0: VTAB (2): PRINT VA$0VN$VK$:K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": DEF FN RF(X) = ((3700 -X)/3700) ^.285: FOR I = 1 TO 4:HS(I) = 0: NEXT I: GOSUB 25000: GOSUB 15000: PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"DAMAGE": STOP
15000 REM
15010 FOR SH = 1 TO 3:T9 = 0: IF K(SH) = 0 THEN 15900
15015 VH(SH) = 0
15120 T2 = 0:T1 = 0: FOR I = 1 TO 6: IF F(I +3) = SH THEN T1 = T1 +1
15150 IF I <5 AND F(I) = SH THEN T2 = T2 +1
15160 NEXT I:T9 = 0: IF T1 = 0 AND T2 = 0 THEN 15500
15180 T9 = 1:T3 = 1:T8 = 0:T7 = 0: GOSUB 36000: GOSUB 40000: GOSUB 27000: GOSUB 22000: IF T7 THEN GOSUB 23500
15230 IF T8 THEN GOSUB 23600: GOTO 15900
15240 T7 = 0:T8 = 0: GOSUB 27500: IF T8 THEN 15900
15270 IF T8 THEN GOSUB 23600: GOTO 15900
15500 IF (B1 AND CB = 6) OR KC(SH) < = 0 OR K(SH) = 0 THEN 15900
15510 IF AL(XS(SH)) = 0 AND FS = 0 AND RND(1) <.5 AND F(1) = 0 AND F(2) = 0 AND F(3) = 0 AND F(4) = 0 AND F(0) = 0 AND EP = 0 THEN 15900
15770 T3 = -1:T7 = 0:T8 = 0:T6 = 0: GOSUB 28000: GOSUB 22000: IF T7 THEN GOSUB 24000
15810 IF T8 THEN 29000
15840 T7 = 0:T8 = 0:T6 = 0: GOSUB 28500
15900 NEXT SH: RETURN
20540 CALL 520"BYE"
22000 REM
22200 PRINT VA$1VK$VN$;:Y = 60: IF T1 = 0 THEN 22299
22208 IF T3 = 1 THEN VTAB (5): HTAB (1): PRINT VA$1VL$;"FIRING";: VTAB (6): HTAB (1): PRINT "TORPEDOES AWAY"
22209 PRINT VK$;: IF T3 = 1 THEN FOR I = 4 TO 17 STEP 2.7
22215 IF T3 = -1 THEN FOR I = 17 TO 4 STEP -2.7
22220 HCOLOR= 6:Z$ = "Y": IF T1 >4 THEN GOSUB 22900
22230 IF T1 >2 THEN GOSUB 22910
22235 GOSUB 22920: IF T1 >1 THEN GOSUB 22930
22245 IF T1 >3 THEN GOSUB 22940
22250 IF T1 = 6 THEN GOSUB 22950
22255 POKE 2048,I *11: POKE 2049,25: CALL 2050: HCOLOR= 0:Z$ = " ": IF T1 >4 THEN GOSUB 22900
22270 IF T1 >2 THEN GOSUB 22910
22273 GOSUB 22920: IF T1 >1 THEN GOSUB 22930
22278 IF T1 >3 THEN GOSUB 22940
22280 IF T1 = 6 THEN GOSUB 22950
22290 NEXT I
22299 RETURN
22900 VTAB (10): HTAB (I): PRINT Z$;: RETURN
22910 VTAB (19 -(I/2)): HTAB (I): PRINT Z$;: RETURN
22920 VTAB (19 -(I/2.3)): HTAB (I/2 +10): PRINT Z$;: RETURN
22930 VTAB (19 -(I/2.3)): HTAB (40 -(I/2 +10)): PRINT Z$;: RETURN
22940 VTAB (19 -(I/2.0)): HTAB (40 -I): PRINT Z$;: RETURN
22950 VTAB (10): HTAB (40 -I): PRINT Z$;: RETURN
23000 REM
23002 IF T3 = 1 THEN VTAB (5): HTAB (1): PRINT VA$1VL$;"CHARGING"
23005 FOR X = 210 TO 200 STEP -.5: POKE 2048,X: POKE 2049,3: CALL 2050: NEXT X: IF T3 = 1 THEN FOR X = 200 TO 30 STEP -7
23009 IF T3 = -1 THEN FOR X = 30 TO 200 STEP 7
23010 POKE 2048,X: POKE 2049,3: CALL 2050: NEXT X: IF T3 = 1 THEN VTAB (6): PRINT VA$(1)"POSITRONS FIRING"
23040 HCOLOR= 1: IF T3 = 1 THEN HCOLOR= 2
23050 GOSUB 23100: HCOLOR= 4: GOSUB 23100: RETURN
23100 IF T3 = 1 THEN X3 = 8:X4 = 10
23102 IF T3 = -1 THEN X3 = 135:X4 = 0
23105 IF T3 = 1 THEN FOR I = 140 TO 80 STEP -10
23107 IF T3 = -1 THEN FOR I = 90 TO 140 STEP 10
23110 X1 = (152 -I) *1.73 +8:X2 = (I -72)/7.6: HPLOT X3,I +10 *T3 TO X1,I: HPLOT X3 +X4,I +10 *T3 TO X1 +X2,I: HPLOT 280 -X3,I +10 *T3 TO 280 -X1,I: HPLOT 280 -X3 -X4,I +10 *T3 TO 280 -X1 -X2,I: POKE 2048,80: POKE 2049,3: CALL 2050:X3 = X1:X4 = X2: NEXT I: RETURN
23500 REM
23510 VTAB (10): PRINT VA$1VN$VK$;: FOR X = 1 TO 30: HTAB (19): PRINT VI$" ";: HTAB (19): PRINT VN$;"Q";: POKE 2048, FN RN(50) +100: POKE 2049,5: CALL 2050: NEXT X: PRINT VA$4;: RETURN
23600 REM
23610 CALL 2115: CALL 2115: CALL 2115: GOSUB 35000: PRINT VI$VP$;: FOR X1 = 1 TO 15: POKE 2048, FN RN(50) +150: POKE 2049,10: CALL 2050: NEXT X1: PRINT VN$VP$;: CALL 2115: GOSUB 36000: PRINT VA$4;VN$;: VTAB (10): HTAB (10): PRINT K$(SH);" IS DESTROYED.":K(SH) = 0: FOR X = 1 TO 1000: NEXT X: IF K(1) = 0 AND K(2) = 0 AND K(3) = 0 THEN FOR X = 1 TO 1000: NEXT X: GOTO 29500
23690 RETURN
24000 REM
24010 FOR I = 1 TO 10: CALL 2115: NEXT I: RETURN
25000 REM
25010 POKE 2072,170: POKE 2073,213: CALL 2074: GOSUB 36000: GOSUB 38000: RETURN
27000 REM
27010 X = 0:X7 = 0
27020 IF F(4 +X) < >SH THEN X = X +1: GOTO 27105
27025 X0 = SP(X):X5 = 4 +X:X1 = 0
27030 IF X5 <10 THEN IF F(X5) = SH AND SP(X5 -4) = X0 THEN X5 = X5 +1:X1 = X1 +1: GOTO 27030
27040 X = X +X1:X3 = 0: FOR X4 = 1 TO X1:X9 = 0: IF LW(3 +X -X1 +X4) THEN X9 = .2
27070 IF RND(1) MH(SH,X0 +3) THEN X3 = MH(SH,X0 +3)
27100 X7 = X3
27105 IF X <6 THEN 27020
27110 X8 = X7 *50:KC(SH) = KC(SH) - FN RN(X7 *2): IF KC(SH) <0 THEN KC(SH) = 0:SD(SH) = 1
27140 IF X7 >0 THEN T7 = 1
27150 KP(SH,YS(SH)) = KP(SH,YS(SH)) -X8: IF KP(SH,YS(SH)) <0 THEN K(SH) = 0:T8 = 1
27155 VH(SH) = VH(SH) +X8
27190 RETURN
27500 REM
27510 X6 = 0
27520 X7 = 0: IF F(X6) < >SH THEN X6 = X6 +1: GOTO 27655
27530 IF LW(X6) THEN PW(SH,X6) = PW(SH,X6) +.2
27540 IF RND(1) < = PW(SH,X6) THEN X5 = 0: FOR X2 = 1 TO 4:X0 = RND(1):X5 = X5 +MH(SH,X6) *X0 + FN RN((1 -X0) *1000)/1000 *MH(SH,X6): NEXT X2:X7 = FN RD(X5/4)
27545 VH(SH) = VH(SH) +X7
27550 KP(SH,YS(SH)) = KP(SH,YS(SH)) -X7: GOSUB 23000: IF X7 THEN GOSUB 23500
27580 IF KP(SH,YS(SH)) <0 THEN GOSUB 23600:K(SH) = 0: GOTO 27690
27590 KC(SH) = KC(SH) - FN RD( FN RN(X7/12)): IF KC(SH) < = 0 THEN KC(SH) = 0:SD(SH) = 1
27650 X6 = X6 +1
27655 IF X6 <4 THEN 27520
27690 RETURN
28000 REM
28001 PRINT VA$1VK$;:X1 = 0:W2 = 0:W3 = 0:W8 = 0: IF KP(SH,5) <25 THEN 28290
28020 X = INT(KP(SH,5)/25): IF X >3 +KT(SH) THEN X = 3 +KT(SH)
28040 X = X -K2(SH): IF X <1 OR DK(SH) >5000 THEN 28290
28043 IF RND(1) <.1 AND KP(SH,YS(SH)) -VH(SH) < -180 THEN 28290
28045 IF DK(SH) <1500 THEN W2 = FN RN(4) +2
28048 IF DK(SH) > = 1500 THEN W2 = FN RN(4) -1
28049 IF W2 = 0 THEN 28290
28050 IF W2 >X THEN W2 = X
28070 IF W2 >X OR DK(SH) <500 THEN W2 = X
28080 X1 = 1: IF EN(XS(SH)) <50 THEN X1 = X8
28190 IF RND(1) <.09 THEN W2 = FN RN(X):X1 = FN RN(W2)
28200 T7 = 0:X8 = 7 - INT(6/(7 -X1) +1/((DK(SH) +1) *250)): IF X8 <1 THEN X8 = 1
28230 IF X8 >X THEN X8 = X
28235 IF W2 >X8 THEN W2 = X8
28240 X2 = SQR((5400 -DK(SH))/5000 * FN RF(RS(SH)) *.8 *(1 -EV)) *OF(W2):T6 = 1: IF T9 = 0 THEN GOSUB 36000: GOSUB 40000
28250 FOR X = 1 TO W2: IF RND(1) < = X2 THEN T7 = T7 +1
28270 NEXT X:HS(XS(SH)) = HS(XS(SH)) +T7 *50: IF HS(XS(SH)) >EN(XS(SH)) OR HS(XS(SH)) >AL(XS(SH)) THEN T8 = 1
28290 K2(SH) = W2:KP(SH,5) = KP(SH,5) -W2 *20:T1 = W2: RETURN
28500 REM
28505 T5 = 1: IF ( RND(1) <.15 AND KP(SH,YS(SH)) -VH(SH) < -180) OR KP(SH,5) <20 OR (KT(SH) = 1 AND YS(SH) = 4) OR DK(SH) >1500 THEN 28790
28520 IF YS(SH) = 1 AND KP(SH,5) > = 20 *KT(SH) THEN T5 = KT(SH)
28530 Y3 = 180 -KP(SH,YS(SH))/10:T4 = SQR((1700 -DK(SH)) *.001) * FN RF(RS(SH)) *.8 *(1 -EV): IF (T4 <.6 AND RND(1) 100) THEN 28790
28540 IF T9 = 0 THEN GOSUB 36000: GOSUB 40000
28560 T6 = 1:KP(SH,5) = KP(SH,5) -T5 *20: FOR T0 = 1 TO T5: IF T0 = 2 THEN Y3 = Y3/2
28580 GOSUB 23000: IF RND(1) < = T4 THEN HS(XS(SH)) = HS(XS(SH)) +Y3: GOSUB 24000: IF HS(XS(SH)) >EN(XS(SH)) OR HS(XS(SH)) >AL(XS(SH)) THEN T8 = 1: GOTO 29000
28590 NEXT T0
28790 RETURN
29000 REM
29005 FOR I = 1 TO 2: POKE 2072,255: POKE 2073,255: CALL 2074: POKE 2072,170: POKE 2073,213: CALL 2074: NEXT I: PRINT VY$;VA$4;: VTAB (12): HTAB (6): PRINT VK$VI$;" THE USS RANGER IS DESTROYED! ";
29007 EG = -1
29010 PRINT VA$0VN$VK$: PRINT CHR$(4)"BLOAD CHAIN,A520"
29020 CALL 520"BYE"
29090 GOTO 29090
29500 REM
29510 PRINT VN$VA$4VK$;: GOSUB 36000: VTAB (10): HTAB (3): PRINT "ALL VEGAN SHIPS ARE DESTROYED!"
29520 PRINT VA$0VN$VK$
29525 EG = 2
29530 GOTO 29010
35000 PRINT VN$;: PRINT VY$;: VTAB (19): HTAB (39): PRINT VW$;: VTAB (2): HTAB (2): PRINT VV$;: RETURN
36000 GOSUB 35000: PRINT VP$;: RETURN
37000 PRINT VN$VY$;: VTAB (23): HTAB (39): PRINT VW$;: VTAB (21): HTAB (2): PRINT VV$;: RETURN
38000 GOSUB 37000: PRINT VI$VP$;: RETURN
40000 X2 = 10:X9 = 270:X3 = 12:X0 = 149: RESTORE :T0 = 0: VTAB (2): HTAB (1): PRINT VA$1VL$VN$"SCANNING ";VK$"EEEEEEEEEEE";:X4 = 63:DR = 3.1459/180:Z7 = 215:Z8 = 70:Z9 = 215:W9 = Z7/1.5:Y4 = 113:Y8 = Z9/2:T9 = 1: VTAB (19): HTAB (1): PRINT VL$"DISTANCE: ";DK(SH);: GOSUB 45000: PRINT VK$;
40090 Y0 = -135: FOR Z = 1 TO X4: READ W6,Y7,Y1:GX(Z) = W9 +W6/10 *Z7:GY(Z) = Y4 +Y1/10 *Z8:GZ(Z) = Y4 +Y7/10 *Z9: NEXT Z:X8 = FN D(XA(SH) -180):X8 = X8 *DR: GOSUB 50000: GOSUB 40790
40095 FOR Z = 1 TO X4: GOSUB 50000:Z1 = GX(Z) -W9:Z4 = GY(Z) -Y4:Z6 = GZ(Z) -Y8: GOSUB 40740:GX(Z) = W0:GY(Z) = Y5:GZ(Z) = Y9: NEXT Z: HCOLOR= 6: GOSUB 40370: GOSUB 35000: RETURN
40370 REM
40385 VTAB (3): HTAB (1): PRINT VL$;"TRACKING";:X1 = 1:X5 = 0: GOSUB 40560:X5 = 1: FOR X1 = 2 TO 22: GOSUB 40560: NEXT X1:X1 = 23:X5 = 0: GOSUB 40560:X5 = 1: FOR X1 = 24 TO 44: GOSUB 40560: NEXT X1:X5 = 0:X1 = 45: GOSUB 40560:X5 = 1: VTAB (4): HTAB (1): PRINT "TARGETING";
40450 HCOLOR= 5: FOR X1 = 46 TO 49: GOSUB 40560: NEXT X1:X5 = 0:X1 = 50: GOSUB 40560:X5 = 1:X1 = 51: GOSUB 40560:X1 = 52: GOSUB 40560:X1 = 53: GOSUB 40560:X5 = 0:X1 = 54: GOSUB 40560:X5 = 1: HCOLOR= 7: FOR X1 = 55 TO 58: GOSUB 40560: NEXT X1:X5 = 0:X1 = 59: GOSUB 40560:X5 = 1: FOR X1 = 60 TO 63: GOSUB 40560: NEXT X1: RETURN
40560 REM
40570 Z1 = GX(X1) -150:Z4 = GY(X1) -120:Z5 = GZ(X1) -Y0:X6 = SQR(Z1 *Z1 +Z4 *Z4 +Z5 *Z5):W2 = Z1/X6:W3 = Z4/X6:W1 = Z5/X6:X7 = X6 *( -Y0)/Z5:W7 = 140 +W2 *X7:Y2 = 77 +W3 *X7: IF X5 = 1 THEN 40710
40680 IF (W7 >X2 AND W7 X3 AND Y2 10 THEN T0 = 0
50020 VTAB (2): HTAB (T0 +11): PRINT "F";: POKE 2048,T0 *20: POKE 2049,5: CALL 2050: RETURN
Text found in Starship_Commander_1981_Voyager.do/WEAPONS.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: DEF FN DG(H) = (H/360 - INT(H/360)) *360: DEF FN D(H) = FN DG( FN DG(H +360)): DEF FN RD(X) = INT(X +.5): DEF FN RN(X) = INT( RND(1) *X +1): DEF FN RF(X) = ((3700 -X)/3700) ^2.86:VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151):VK$ = CHR$(139):VL$ = CHR$(140)
20 CX(7) = 1
800 K$(1) = "DETAS":K$(2) = "MILAS":K$(3) = "KAMAS": GOTO 42000
9999 GOTO 9999
12000 GOSUB 22000: GOSUB 44000:S = SH:XC = -1: PRINT VA$1;VL$;VN$;: FOR Z = 0 TO 3: IF PW(S,Z) < = 0 OR EN(6 +Z) <20 OR F(Z) < >0 THEN NEXT Z: GOSUB 38000: PRINT "UNABLE TO TARGET";: GOSUB 28000: GOSUB 14000: GOSUB 28000: GOTO 12060
12025 Y = 2: FOR Z = 1 TO 4:Z(Z) = 15 +Z: IF PW(S,Z -1) < = 0 OR EN(5 +Z) <20 OR F(Z -1) >0 THEN Z(Z) = -Z(Z)
12040 NEXT Z:Z = 4: GOSUB 41000:X2 = X -1:F(X2) = S:AL(X2 +6) = AL(X2 +6) -20:EN(X2 +6) = EN(X2 +6) -20: IF EN(6 +X2) > = 20 AND AL(6 +X2) > = 20 THEN Z(1) = 22:Z(2) = 23:Y = 2:Z = 2: GOSUB 41000: IF X = 1 THEN LW(X2) = S:EN(X2 +6) = EN(X2 +6) -20:AL(X2 +6) = AL(X2 +6) -20
12060 GOSUB 39000: GOSUB 38000: RETURN
12300 GOSUB 23000: GOSUB 44000:S = SH:ZC = 0: FOR Z = 4 TO 9: IF PW(S,Z) >0 THEN ZC = ZC +1
12310 NEXT Z:LM = 0: FOR Z = 1 TO LP: IF LP(Z) >1 THEN LM = LM +1
12311 NEXT Z: IF ZC 5000 THEN GOSUB 38000: PRINT "UNABLE TO FIRE";: GOSUB 14000: GOSUB 28000: GOTO 12390
12325 GOSUB 38000: PRINT "ENTER # TO FIRE";:Y = 2: FOR Z = 1 TO LM:Z(Z) = 7 +Z: NEXT Z:Z = LM: GOSUB 41000:X2 = X: GOSUB 38000: PRINT VA$VL$"ENTER SPREAD";: FOR Z = 1 TO X2:Z(Z) = 7 +Z: NEXT Z:Z = X2: GOSUB 41000:X3 = X
12327 X4 = 0
12330 IF EN(11) > = X2 *20 AND AL(11) > = X2 *20 AND DK(S) <2000 THEN GOSUB 38000: PRINT VA$1VL$VN$;"LOCK?";:Z(1) = 22:Z(2) = 23:Z = 2: GOSUB 41000:X4 = 0:Z4 = 0: IF X = 1 THEN X4 = 1
12360 FOR Z = FH +1 TO FH +X2:LW(Z +3) = 0:F(Z +3) = S:SP(Z -FH) = X3: IF X4 THEN LW(Z +3) = S:EN(15) = EN(15) -20:AL(15) = AL(15) -20
12365 NEXT Z:FH = FH +X2
12390 GOSUB 38000: GOSUB 39000: RETURN
12600 GOSUB 24000:X2 = 6 -D(5) -LP:X = INT(EN(11)/20): IF X2 >X THEN X2 = X
12602 IF X2 >AL(11)/20 THEN X2 = INT(AL(11)/20)
12605 GOSUB 38000: IF X2 <1 THEN PRINT "UNABLE TO LOAD";: GOSUB 14000: GOSUB 28000: GOTO 12690
12620 PRINT "LOAD TUBES";: FOR Z = 1 TO X2:Z(Z) = (7 +Z): NEXT Z:Z = X2:Y = 2: GOSUB 41000: FOR Z = LP +1 TO LP +X:LP(Z) = 1: NEXT Z:EN(11) = EN(11) -X *20:AL(11) = AL(11) -X *20:LP = LP +X
12690 GOSUB 38000: GOSUB 39000: RETURN
14000 POKE 2048,255: POKE 2049,255: CALL 2050: RETURN
15000 FOR Z = 1 TO 4:K$(Z) = "": NEXT Z: FOR Z = 1 TO 9:Z$(Z) = "":Z1$(Z) = "": NEXT Z: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"MAIN MENU"
21000 REM
21005 GOSUB 39000: VTAB (5): PRINT VA$2VK$" HIJKL ";VA$1"1 2 3 4": VTAB (7): PRINT VL$;" STAT": VTAB (9): PRINT " POWER"VA$2: VTAB (11): PRINT VA$1;VL$;" EFF%": VTAB (13): PRINT " SHIP"
21007 VTAB (15): PRINT " LOCK": FOR Z = 1 TO 4:Z1 = (Z -1) *3 +8: HTAB (Z1): VTAB (7): IF D(Z +5) THEN Z1$ = "VWX": GOTO 21120
21110 IF EN(Z +5) <20 THEN Z1$ = "RS ": GOTO 21120
21113 Z1$ = "PQ ": IF F(Z -1) THEN Z1$ = "TU "
21120 PRINT VA$2;Z1$: PRINT VA$1;: HTAB (Z1): VTAB (9): PRINT FN RD(EN(Z +5)): HTAB (Z1): VTAB (11): PRINT FN RD(E(Z +5) *100): HTAB (Z1): VTAB (13): PRINT VA$1;: IF F(Z -1) = 0 THEN PRINT VA$1;"-": GOTO 21220
21190 PRINT LEFT$(K$(F(Z -1)),1)
21220 Z1$ = "-": IF F(Z -1) >0 THEN Z1$ = "N": IF LW(Z -1) >0 THEN Z1$ = "Y"
21235 HTAB (Z1): VTAB (15): PRINT VA$1;Z1$: NEXT Z: HCOLOR= 1: HPLOT 49,30 TO 180,30: HPLOT 49,43 TO 180,43: HPLOT 49,60 TO 180,60: HPLOT 49,75 TO 180,75: HPLOT 49,90 TO 180,90: HPLOT 49,105 TO 180,105: HPLOT 49,122 TO 180,122: HPLOT 95,30 TO 95,121: HPLOT 117,30 TO 117,121: HPLOT 139,30 TO 139,121: HPLOT 159,30 TO 159,121
21240 VTAB (3): HTAB (1): PRINT VA$4VK$VI$;" POSITRON STATUS ";VN$;: RETURN
22000 POKE 232,0: POKE 233,145: ROT= 0: SCALE= 1: GOSUB 39000: PRINT VA$0;VN$;VK$: VTAB (2): HTAB (6): PRINT "POSITRON": VTAB (3): PRINT TAB( 5);"PROBABILITY": VTAB (5): PRINT VA$1VL$;"SHIP ";
22010 PRINT VA$2VK$"ABC ";: PRINT VL$;"YZ";: PRINT VA$2;VK$;":;< ";: PRINT "TX": VTAB (6): PRINT VA$1VL$;"NAME # # % ";VA$2" LMNO": FOR S = 1 TO 3: IF K(S) = 0 THEN 22245
22120 X1 = (S -1) *4 +8: VTAB (X1): HTAB (1):Z1$ = "ABCD": IF S <3 THEN Z1$ = "EFG ": IF S = 2 THEN Z1$ = "HIJ "
22170 PRINT VA$2;VL$;Z1$;: HTAB (7): PRINT VA$0;XS(S);VA$1;VL$;: FOR P = 0 TO 3: IF PW(S,P) < = 0 THEN 22240
22200 VTAB (X1):X1 = X1 +1: HTAB (10): PRINT P +1;: HTAB (12): PRINT FN RD(PW(S,P) *100);: HTAB (16): PRINT FN RD(MH(S,P));
22240 NEXT P
22245 NEXT S
22250 HCOLOR= 1: HPLOT 49,28 TO 181,28: HPLOT 49,52 TO 181,52: HPLOT 49,84 TO 181,84: HPLOT 49,116 TO 181,116: HPLOT 81,28 TO 81,143: HPLOT 107,28 TO 107,143: HPLOT 125,28 TO 125,143: HPLOT 149,28 TO 149,143: HCOLOR= 7
22260 IF K(1) THEN DRAW 1 AT 55,63
22290 IF K(2) THEN DRAW 1 AT 55,95
22300 IF K(3) THEN DRAW 1 AT 55,127
22990 RETURN
23000 REM
23002 GOSUB 39000: VTAB (2): HTAB (7): PRINT VA$0VK$VN$"TORPEDO": PRINT TAB( 5)"PROBABILITY": VTAB (7): HTAB (1): PRINT VA$4;1: FOR Z1 = 2 TO 6: VTAB (5 +Z1 *2): HTAB (1): PRINT Z1: NEXT Z1: PRINT VA$1;VL$;: VTAB (4): HTAB (1): PRINT "S": VTAB (5): HTAB (1): PRINT "P": FOR Y = 1 TO 3: IF K(Y) = 0 THEN 23300
23160 VTAB (4): HTAB (4 +(Y -1) *6): PRINT VA$2;VL$;: IF Y = 1 THEN PRINT "EFG"
23180 IF Y = 2 THEN PRINT "HIJ"
23190 IF Y = 3 THEN PRINT "ABCD"
23200 VTAB (5): HTAB (3 +(Y -1) *6): PRINT VA$1VL$;"P% MH": FOR X = 1 TO 6:Z1$ = " -": IF PW(Y,X +3) >0 THEN Z1$ = STR$( FN RD(PW(Y,X +3) *100))
23230 HTAB (2 +(Y -1) *6): VTAB (4 +X *2): PRINT Z1$;: HTAB (5 +(Y -1) *6): VTAB (5 +X *2):Z1$ = " -": IF MH(Y,X +3) >0 THEN Z1$ = STR$( FN RD(MH(Y,X +3)))
23260 PRINT Z1$;: NEXT X
23300 NEXT Y: HCOLOR= 1: HPLOT 49,24 TO 181,24: FOR Z1 = 40 TO 136 STEP 16: HPLOT 49,Z1 TO 181,Z1: NEXT Z1: FOR Z1 = 55 TO 192 STEP 21:Z3 = 24:Z2 = Z1: IF INT(Z1/2) = Z1/2 THEN Z2 = Z2 -1:Z3 = 40
23360 HPLOT Z2,Z3 TO Z2,136: NEXT Z1: RETURN
24000 POKE 232,102: POKE 233,8: GOSUB 39000: ROT= 0: SCALE= 1: HCOLOR= 7: DRAW 5 AT 78,15: VTAB (6): PRINT VN$;VA$0;VK$;" TORPEDO STATUS": VTAB (7): HTAB (1): PRINT VN$;VA$1VL$: PRINT "TORPEDO 1 2 3 4 5 6";: PRINT : PRINT "STATUS": PRINT : PRINT "SHIP": PRINT
24020 PRINT "LOCK": PRINT : PRINT "TIME IN": PRINT "TUBE";: FOR Z = 1 TO 6:Z1$ = "DW": IF 7 -D(5) >Z THEN Z1$ = "EM": IF LP > = Z THEN Z1$ = "RD": IF Z < = FH THEN Z1$ = "FR"
24465 IF LP(Z) = 1 THEN Z1$ = "LD"
24470 VTAB (10): HTAB (Z *2 +6): PRINT Z1$: VTAB (12): HTAB (Z *2 +7):Z1$ = "-": IF FH FH THEN Z1$ = "-": GOTO 24600
24590 IF LW(Z +3) >0 THEN Z1$ = "Y"
24600 PRINT Z1$:Z1$ = STR$(LP(Z) -1): IF LP(Z) = 0 THEN Z1$ = "-"
24630 VTAB (16): HTAB (7 +2 *Z): PRINT Z1$: NEXT Z: HCOLOR= 1: FOR Z = 97 TO 167 STEP 14:Z2 = Z: IF INT(Z/2) = Z/2 THEN Z2 = Z2 +1
24730 HPLOT Z2,56 TO Z2,135: NEXT Z: FOR Z = 56 TO 136 STEP 16: HPLOT 49,Z TO 181,Z: NEXT Z: RETURN
25000 POKE 232,102: POKE 233,08: GOSUB 39000: GOSUB 44000: GOSUB 39000:X1 = YS(SH): IF X1 = 3 THEN X1 = 4: GOTO 25010
25007 IF X1 = 4 THEN X1 = 3
25010 IF X1 = 2 THEN X = 75:Y = 24
25013 IF X1 = 3 THEN X = 88:Y = 26
25040 IF X1 = 1 THEN X = 89:Y = 24
25050 IF X1 = 4 THEN X = 73:Y = 24
25060 HCOLOR= 7: ROT= 0: SCALE= 1: DRAW X1 AT X,Y: VTAB (8): HTAB (1): PRINT "VVVVVVVVVVVVVVVVVV";XS(SH);: FOR Z = 2 TO 7: VTAB (Z): HTAB (19): PRINT "U";: NEXT Z: PRINT VL$: VTAB (17): HTAB (19): PRINT VW$;: VTAB (9): HTAB (1): PRINT VV$;VI$;VP$;: VTAB (9): HTAB (1): PRINT "SHIELD BEARING:";VA$4;XS(SH);VA$1;
25125 VTAB (10): HTAB (1): PRINT "ANGLE BEARING:";VA$4; FN RD(YA(SH));: VTAB (11): HTAB (1): PRINT VA$1;"DISTANCE:";VA$4; FN RD(DK(SH));: VTAB (12): HTAB (1): PRINT VN$;VA$1;" VEGAN VESSEL DATA ";VI$;: VTAB (13): HTAB (1): PRINT "SHIP ID:";VA$4VK$K$(SH)VL$;: VTAB (14): HTAB (1): PRINT VA$1;"SPEED:";VA$4;KW(SH);
25175 VTAB (15): HTAB (1): PRINT VA$1;"HEADING:";VA$4 FN RD(KH(SH));: VTAB (16): HTAB (1): PRINT VA$1;"SHIELD FACING": PRINT " USS RANGER:";VA$4;YS(SH);: PRINT VA$1VL$;VN$;: VTAB (20): HTAB (1): PRINT TAB( 4);"PRESS BUTTON";: PRINT VN$;VY$;: VTAB (2): HTAB (8): PRINT VV$;: VTAB (18): HTAB (19): PRINT VW$;:X = 0: PRINT VA$1;VK$;
25330 VTAB (5): HTAB (1 +X): PRINT "L";: HTAB (18 -X): PRINT "M": HTAB (9): VTAB (2 + INT(X/2)): PRINT "J";: HTAB (9): VTAB (7 - INT(X/2)): PRINT "K";: POKE 2048,70: POKE 2049,30: CALL 2050: IF PEEK( -16287) >127 THEN 25980
25400 VTAB (5): HTAB (1 +X): PRINT "N";: HTAB (18 -X): PRINT "N";: HTAB (9): VTAB (2 + INT(X/2)): PRINT "G";: HTAB (9): VTAB (7 - INT(X/2)): PRINT "G";:X = X +1: IF X >3 THEN X = 0
25460 GOTO 25330
25980 GOSUB 45000: GOSUB 38000: GOSUB 39000: RETURN
26000 POKE 232,0: POKE 233,145: GOSUB 26900: HCOLOR= 1: GOSUB 39000:Z5 = 2: IF SR <1000 THEN Z5 = 1: IF SR <400 THEN Z5 = 0
26010 VTAB (18): HTAB (1): PRINT VA$1VL$VN$;" SCALE "; FN RD(SR);: HCOLOR= 1: HPLOT 112,136 TO 161,136:SX = MX(Z5)/SR:SY = MY(Z5)/SR: ROT= 0: SCALE= 1: HCOLOR= 3:X = EH: GOSUB 46000: ROT= R *8:X = 115 -X(Z5,R): IF X/2 = INT(X/2) THEN X = X +1
26035 DRAW 4 +Z5 AT X,72 -Y(Z5,R): HCOLOR= 3: FOR Z = 1 TO 3: IF DK(Z) >SR OR (CO = 1 AND SH < >Z) OR K(Z) = 0 THEN 26300
26220 X = KH(Z): GOSUB 46000: ROT= R *8:Y = 72 -(KY(Z) -EY) *SY -Y(Z5,R):X = 115 +(KX(Z) -EX) *SX -X(Z5,R): IF X >200 OR Y >160 OR X <1 OR Y <1 THEN 26300
26227 X = INT(X +.5): IF (X/2 = INT(X/2) AND (Z5 = 0 OR Z5 = 2)) OR (X/2 < > INT(X/2) AND Z5 = 1) THEN X = X +1
26240 DRAW Z5 +1 AT X,Y
26300 NEXT Z: RETURN
26900 GOSUB 39000:Y = 28:Z(1) = 19:Z(2) = 20:Z = 2: GOSUB 38000: PRINT VA$1VN$;VL$"ENTER CONTROL TYPE";: GOSUB 41000:CO = X: IF X = 1 THEN 26950
26920 RT = 50:PU = 6000:PL = 100: GOSUB 38000: PRINT VA$1;VL$;VN$;: PRINT "ENTER DISTANCE";: GOSUB 40000:SR = RC: GOTO 26990
26950 GOSUB 44000:SR = DK(SH) +DK(SH) *.1 +1E -10: IF SR <1 THEN SR = 1
26990 RETURN
27000 REM
27010 Z(1) = 22:Z(2) = 23:Z = 2:Y = 9: GOSUB 41000: IF X = 1 THEN 12600: GOTO 27090
27030 GOSUB 12300
27090 RETURN
28000 FOR Z = 0 TO 250: NEXT Z: RETURN
38000 PRINT VY$VN$;: VTAB (20): HTAB (8): PRINT VV$;: HTAB (19): PRINT VW$VP$: RETURN
39000 PRINT VN$VY$: VTAB (2): HTAB (8): PRINT VV$: VTAB (18): HTAB (19): PRINT VW$: PRINT VP$: RETURN
40000 Z1$ = ""
40017 PRINT VY$;VA$1;VL$R = PU -PL:RC = PL +R/2: GOSUB 40100Z1$ = "": IF RT = 0 THEN RT = 1
40025 VTAB (23): HTAB (20): PRINT VA$1VI$;VK$;"Y";: HTAB (30): PRINT "X";VN$:ZT = 0:R1 = 0
40040 X = PDL(0): IF PEEK( -16287) >127 THEN 40080
40045 IF ZT >10 THEN ZT = 10
40050 IF X >20 AND X <200 THEN R1 = 0:ZT = 0: HTAB (28): VTAB (22): PRINT VA$1VK$"L";: GOTO 40040
40055 Z1$ = "J":R = -1: IF X >199 THEN R = 1:Z1$ = "K"
40060 IF R < >R1 THEN ZT = 0
40065 R1 = R:RC = RC +RT *(2 ^ INT(ZT/2)) *R:ZT = ZT +1: GOSUB 40100: GOTO 40040
40080 VTAB (23): HTAB (20): PRINT VK$;VI$;"X";: HTAB (30): PRINT "Y";: POKE 2048,50: POKE 2049,30: CALL 2050: POKE 2048,60: POKE 2049,50: CALL 2050: VTAB (22): HTAB (28): PRINT VI$" ";: GOSUB 39000: PRINT VA$4;: RETURN
40100 REM
40102 RC = INT(RC/RT +.5) *RT
40105 IF RC >PU THEN RC = PU
40107 IF RC = 5 THEN 40130
40124 Z = 5 -Z3: FOR Z2 = 1 TO Z: PRINT " ";: NEXT Z2: POKE 2048,(PU -RC)/(PU -PL) *75 +76: POKE 2049,100: CALL 2050
40130 RETURN
41000 REM
41006 PRINT VY$VA$1VK$VI$;:Z3 = -1: FOR Z2 = 1 TO Z: IF Z(Z2) >0 AND Z3 >0 THEN X1 = Z2: GOTO 41030
41016 IF Z(Z2) >0 THEN Z3 = Z2
41020 NEXT Z2:X1 = Z3: GOTO 41180
41030 Z1 = 250/Z: FOR Z2 = 1 TO Z: HTAB (Y +1): VTAB ( ABS(Z(Z2))): PRINT "E";: NEXT Z2
41079 X = INT( PDL(0)/Z1 +.5): IF X >Z THEN X = Z
41080 IF X <1 THEN X = 1
41081 IF Z2 >20 THEN HTAB (Y): VTAB ( ABS(Z(X1))): PRINT " ";: POKE 2048,X1 *5 +50: POKE 2049,15: CALL 2050:Z2 = 0: HTAB (Y): PRINT "L";
41082 Z2 = Z2 +1: IF X <1 THEN X = 1
41085 IF PEEK( -16287) >127 THEN 41180
41090 IF Z(X) <1 THEN GOTO 41079
41100 IF X1 < >X THEN HTAB (Y): VTAB (Z(X1)): PRINT " ";
41105 X1 = X: HTAB (Y): VTAB (Z(X)): PRINT "L";: GOTO 41079
41180 IF X1 <1 THEN 41185
41183 HTAB (Y): VTAB (Z(X1)): PRINT " F";
41185 GOSUB 45000:X = X1: RETURN
42000 GOSUB 38000
42010 Y = 28: FOR Z = 1 TO 6:Z(Z) = Z +2: NEXT Z:Z(7) = 12:Z(8) = 13:Z(9) = 16:Z = 9:: GOSUB 41000:CO = X: GOSUB 39000: ON CO GOSUB 21000,22000,24000,23000,26000,25000,12000,27000,15000: IF CO <6 THEN GOSUB 43000
42020 GOTO 42000
43000 GOSUB 38000: PRINT TAB( 4)VA$;1;VL$"PRESS BUTTON";
43005 X2 = X2 +1: IF X2 >15 THEN VTAB (20): HTAB (2): PRINT VA$(1);VK$;"L";: HTAB (18): PRINT "M";:X2 = 0: POKE 2048,100: POKE 2049,30: CALL 2050
43010 IF X2 = 7 THEN VTAB (20): HTAB (2): PRINT " ";: HTAB (18): PRINT " ";
43020 IF PEEK( -16287) <128 THEN 43005
43030 GOSUB 38000: GOSUB 39000: GOSUB 45000: RETURN
44000 REM
44005 GOSUB 38000: PRINT VA$1;VN$;VL$;"ENTER SHIP";:Y = 2:Z(1) = 3:Z(2) = 4:Z(3) = 5: FOR Z = 1 TO 3: IF K(Z) = 0 THEN Z(Z) = -Z(Z)
44040 NEXT Z:Z = 3: GOSUB 41000:SH = X: RETURN
45000 POKE 2048,30: POKE 2049,30: CALL 2050: POKE 2048,80: POKE 2049,50: CALL 2050: RETURN
46000 REM
46010 R = 2 - INT(( FN D(X) +45/2)/45): IF R <0 THEN R = 8 +R
46030 RETURN
Text found in Starship_Commander_1981_Voyager.do/WEAPONSC.bas:
10 HIMEM: 35070:ADRS = 35070: CALL ADRS: POKE 49234,0: POKE 2072,85: POKE 2073,42:VA$ = CHR$(129):VN$ = CHR$(142):VI$ = CHR$(137):VP$ = CHR$(144):VY$ = CHR$(153):VV$ = CHR$(150):VW$ = CHR$(151)
11 VK$ = CHR$(139):VL$ = CHR$(140): GOSUB 20000: PRINT VA$0VN$VK$: PRINT CHR$(4);"BLOAD CHAIN,A520": CALL 520"WEAPONS"
1030 STOP
20000 Z$ = VA$ +"1 E" +VA$ +"4": PRINT VA$;1;VL$: CALL 2074: VTAB (1): HTAB (9): PRINT VA$3VK$VI$;" WEAPONS STATION ": PRINT VN$VK$;VA$;3: VTAB (2)
20010 HTAB (2): PRINT "SHIP ";VI$: VTAB (3): HTAB (2): PRINT Z$" D ";: VTAB (4): HTAB (2): PRINT Z$" M ";: VTAB (5): HTAB (2): PRINT Z$;" K "
20070 VTAB (7): HTAB (2): PRINT VN$;VA$;3;"TORP ";VI$: FOR Z = 1 TO 6: VTAB (7 +Z): HTAB (2): PRINT Z$" ";Z;" ";: NEXT Z: VTAB (15): HTAB (2): PRINT VN$VA$;3;"POSIT";VI$: FOR Z = 1 TO 4: VTAB (15 +Z): HTAB (2): PRINT Z$;" ";Z;" ": NEXT Z
20138 VTAB (21): HTAB (2): PRINT VN$;VA$;3;"LOCK ";VI$: VTAB (22): HTAB (2): PRINT Z$;" Y ": VTAB (23): HTAB (2): PRINT Z$;" N ": VTAB (22): HTAB (9): PRINT Z$;"LOAD": VTAB (23): HTAB (9): PRINT Z$;"FIRE": VTAB (2): HTAB (28): PRINT VN$;VA$;3;" REPORT ";VI$: VTAB (3): HTAB (28): PRINT Z$;"POSIT STAT": VTAB (4): HTAB (28): PRINT Z$;"POSIT PROB"
20180 VTAB (5): HTAB (28): PRINT Z$;"TORP STAT ": VTAB (6): HTAB (28): PRINT Z$;"TORP PROB ": VTAB (7): HTAB (28): PRINT Z$;"POSITION ": VTAB (8): HTAB (28): PRINT Z$;"TARGET ": VTAB (9): HTAB (28): PRINT " INFO ": VTAB (11): HTAB (28): PRINT VA$;3VN$;"FIRE CONTROL";VI$: VTAB (12): HTAB (28): PRINT Z$;"POSITRON ": VTAB (13): HTAB (28): PRINT Z$;"TORPEDO "
20235 : VTAB (16): HTAB (28): PRINT VI$Z$;"RETURN ": VTAB (18): HTAB (28): PRINT VA$;3VN$;" CONTROL ";VI$: VTAB (19): HTAB (28): PRINT Z$;"AUTOMATIC"
20247 VTAB (20): HTAB (28): PRINT Z$;"MANUAL ": VTAB (22): HTAB (20): PRINT VA$;3;VI$;"COUNTER-";VN$;" "
20249 PRINT VI$;VL$: VTAB (23): HTAB (20): PRINT VA$;1;VK$;"X";VL$;VA$;1;"-READY ";VA$;1;VK$;"X";VL$;VA$;1;"-ENTER ";VK$
20265 VTAB (19): HTAB (8): PRINT VN$;VA$;3"--MESSAGE CENTER---": VTAB (20): HTAB (8): PRINT " ": HCOLOR= 1: HPLOT 49,151 TO 181,151
20270 GOSUB 39000: HCOLOR= 1: HPLOT 275,5 TO 185,5 TO 185,130 TO 275,130 TO 275,5: PRINT VA$;4;: RETURN
39000 PRINT VN$VY$: VTAB (2): HTAB (8): PRINT VV$: VTAB (18): HTAB (19): PRINT VW$: PRINT VP$: RETURN
Text found in Starship_Commander_1981_Voyager.do/WORD.SET.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 00 00 00 00 00 00 00 00 00 00 77 55 55 55 77 00 ........ ..wUUUw.
$000010 00 00 00 00 00 00 00 00 00 00 6E 2A 66 2A 2E 00 ........ ..n*f*..
$000020 00 00 5D 09 09 09 09 00 00 00 5B 49 59 49 59 00 ..]..... ..[IYIY.
$000030 00 00 2B 2A 13 11 12 00 00 00 75 55 75 15 17 00 ..+*.... ..uUu...
$000040 00 00 4E 52 52 52 4E 00 00 00 2B 2A 7A 52 53 00 ..NRRRN. ..+*zRS.
$000050 00 00 25 2D 3D 34 24 00 00 00 2C 22 4C 48 46 00 ..%-=4$. ..,"LHF.
$000060 00 00 59 05 1C 10 0C 00 00 00 5B 49 59 49 59 00 ..Y..... ..[IYIY.
$000070 00 00 08 0D 0F 0A 08 00 00 0A 0A 5A 52 52 00 08 ........ ...ZRR..
$000080 00 02 02 2A 2A 2A 00 08 00 74 56 54 54 74 00 08 ...***.. .tVTTt..
$000090 00 76 54 56 52 76 00 08 00 76 54 56 54 76 00 08 .vTVRv.. .vTVTv..
$0000A0 00 72 52 56 54 74 00 08 00 76 52 56 54 76 00 08 .rRVTt.. .vRVTv..
$0000B0 00 72 52 56 56 76 00 08 00 76 54 54 54 74 00 08 .rRVVv.. .vTTTt..
$0000C0 00 76 56 50 56 76 00 08 00 76 56 56 54 74 00 08 .vVPVv.. .vVVTt..
$0000D0 00 00 6E 2A 6E 62 22 00 00 00 5D 55 55 54 5D 00 ..n*nb". ..]UUT].
$0000E0 00 00 03 02 01 02 0B 00 00 00 5C 46 5E 58 4E 00 ........ ..\F^XN.
$0000F0 00 00 6A 2A 6B 2A 2A 00 00 00 00 01 00 00 00 00 ..j*k**. ........
$000100 00 00 00 00 00 00 00 00 00 00 2C 22 6E 28 26 00 ........ ..,"n(&.
$000110 00 00 35 15 35 15 35 00 00 00 19 29 29 29 1B 00 ..5.5.5. ...)))..
$000120 00 00 6E 24 24 24 64 00 00 00 5D 55 5D 4D 55 00 ..n$$$d. ..]U]MU.
$000130 00 00 5B 4A 5B 48 58 00 00 00 39 2A 2A 2A 39 00 ..[J[HX. ..9***9.
$000140 00 00 6E 2A 2E 22 62 00 00 00 59 45 5D 51 4D 00 ..n*."b. ..YE]QM.
$000150 00 00 6E 24 64 64 24 00 00 00 5D 55 55 54 5D 00 ..n$dd$. ..]UUT].
$000160 00 00 04 05 07 06 04 00 00 00 3A 2A 2A 2A 3A 00 ........ ..:***:.
$000170 00 00 49 4B 4D 4D 49 00 00 00 25 2C 3D 34 25 00 ..IKMMI. ..%,=4%.
$000180 00 00 52 52 52 52 56 00 00 00 2B 28 3B 2A 2B 00 ..RRRRV. ..+(;*+.
$000190 00 00 67 22 62 22 62 00 00 00 12 16 1E 1A 12 00 ..g"b"b. ........
$0001A0 00 00 22 36 3E 2A 2A 00 00 00 69 29 69 29 2B 00 .."6>**. ..i)i)+.
$0001B0 00 00 46 22 66 02 66 00 00 00 1D 14 1C 05 24 00 ..F"f.f. ......$.
$0001C0 00 00 57 55 27 55 55 00 00 00 77 51 51 51 77 00 ..WU'UU. ..wQQQw.
$0001D0 00 00 22 36 3E 2A 2A 00 00 00 00 00 00 00 00 00 .."6>**. ........
$0001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0001F0 00 00 25 2D 3D 35 25 00 00 00 00 00 00 00 00 00 ..%-=5%. ........
$000200 00 00 00 00 00 00 00 00 00 00 52 4A 46 4A 52 00 ........ ..RJFJR.
$000210 00 00 0B 5A 7B 2A 2A 00 00 00 5D 55 5D 15 55 00 ...Z{**. ..]U].U.
$000220 00 00 03 00 03 02 03 00 00 00 66 2A 6A 2A 66 00 ........ ..f*j*f.
$000230 00 00 6E 24 64 24 24 00 00 00 1D 05 1D 11 1D 00 ..n$d$$. ........
$000240 00 00 22 36 3E 2A 2A 00 00 00 45 45 45 45 5D 00 .."6>**. ..EEEE].
$000250 00 00 7B 0A 7B 42 7A 00 00 00 00 00 00 00 00 00 ..{.{Bz. ........
$000260 00 00 4E 52 52 52 4E 00 00 00 0B 5A 7B 2A 2A 00 ..NRRRN. ...Z{**.
$000270 00 00 5D 55 5D 55 55 00 00 00 3B 08 3B 0A 3B 00 ..]U]UU. ..;.;.;.
$000280 00 00 6E 2A 2E 26 6A 00 00 00 14 15 09 09 08 00 ..n*.&j. ........
$000290 00 00 16 32 76 52 16 00 00 00 3A 2B 3B 0A 0A 00 ...2vR.. ..:+;...
$0002A0 00 00 56 52 56 52 52 00 00 00 1B 0A 1B 09 1A 00 ..VRVRR. ........
$0002B0 00 26 2A 2A 4A 46 00 00 00 15 35 75 52 12 00 00 .&**JF.. ..5uR...
$0002C0 00 01 01 01 01 01 00 00 00 00 6E 2A 2E 22 62 00 ........ ..n*."b.
$0002D0 00 00 19 05 1D 11 0D 00 00 00 00 00 00 00 00 00 ........ ........
$0002E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
$0002F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
** END **
- Addeddate
- 2014-06-12 22:25:05
- Emulator
- apple2e
- Emulator_ext
- do
- Identifier
- a2_Starship_Commander_1981_Voyager
- Scanner
- Internet Archive Python library 0.6.5
comment
Reviews
826 Views
DOWNLOAD OPTIONS
IN COLLECTIONS
The Apple II Library: Games The Software Library: Apple Computer Software Library The Emulation StationUploaded by Jason Scott on