Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 10 REM SHIP SYSTEM MANAGER BY D10D3 2020
- 20 SCREEN 0,0:CLS:LOCATE 10,3:PRINT"INITIALIZING";
- 30 GOSUB 1590 'LOAD SYSTEM ARRAY
- 40 LCHK = PEEK(64082!)'REM CHECK LINE
- 50 IF LCHK=187 THEN GOTO 90
- 60 CLEAR256,62138!
- 70 FORX=62139!TO62335!:READA:POKEX,A:NEXTX
- 80 POKE 64082!,187:POKE 64083!,242
- 90 'FILL CARGO ARRAY
- 100 OPEN "CARGO.DO" FOR INPUT AS #1
- 110 DIM CN$(30)
- 120 DIM CT%(30)
- 130 DIM CC%(30)
- 160 FOR I=1TO30
- 180 IF NOT EOF(1) THEN INPUT#1,A$ ELSE GOTO 500
- 190 CN$(I)=A$
- 191 IF NOT EOF(1) THEN INPUT#1,A$ ELSE GOTO 500
- 192 CT%(I)=VAL(A$)
- 193 IF NOT EOF(1) THEN INPUT#1,A$ ELSE GOTO 500
- 194 CC%(I)=VAL(A$)
- 210 NEXT I
- 220 CLOSE #1
- 230 FUEL% = CT%(1)
- 500 '*** MAIN MENU ***
- 510 CLS
- 520 LINE (111,2)-(118,31),1,B
- 530 LINE (118,11)-(209,11)
- 540 LINE (209,2)-(216,31),1,B
- 550 LINE (118,24)-(133,33)
- 560 LINE (209,24)-(194,33)
- 570 LINE (133,33)-(150,51)
- 580 LINE (194,33)-(177,51)
- 590 LINE (148,11)-(148,49)
- 600 LINE (178,11)-(178,49)
- 610 LINE (150,51)-(157,51)
- 620 LINE (177,51)-(170,51)
- 630 LINE (157,51)-(159,54)
- 640 LINE (170,51)-(168,54)
- 650 LINE (159,7)-(168,62),1,B
- 660 LINE (133,11)-(133,33)
- 670 LINE (194,11)-(194,33)
- 680 LINE (161,52)-(166,58),1,B
- 690 LINE (159,22)-(168,31),1,B
- 700 LOCATE 0,0:PRINT"SYSTEMS ONLINE"
- 710 LOCATE 0,4:PRINT"N: NAVIGATION";
- 720 LOCATE 0,5:PRINT"C: CARGO MANAGER";
- 730 LOCATE 0,6:PRINT"Q: QUIT";
- 740 I$=INPUT$(1)
- 750 IF I$="N" THEN GOTO 1080
- 760 IF I$="C" THEN GOTO 2000
- 770 IF I$="Q" THEN GOTO 11000
- 780 GOTO 500
- 1080 ' *** NAVIGATION SYSTEM ***
- 1090 S$ = "A"
- 1100 GOSUB 1320 :REM SYSTEM LIST S$
- 1110 PRINT"A(SHOW A-L) M(SHOW M-Z) #(SELECTION)"
- 1120 INPUT"ENTER ORIGIN";B$
- 1130 GOSUB 1930 :REM SOUND
- 1140 IF B$ = "A" THEN S$ = "A"
- 1150 IF B$ = "M" THEN S$ = "M"
- 1160 IF B$ = "A" OR B$ = "M" THEN GOTO 1100
- 1170 ELSE
- 1180 GOSUB 1540 :REM SYSTEM COORDS
- 1190 OX=IX:OY=IY:OZ=IZ
- 1200 S$ = "A"
- 1210 GOSUB 1320 :REM SYSTEM LIST S$
- 1220 PRINT"A(SHOW A-L) M(SHOW M-Z) #(SELECTION)"
- 1230 INPUT"ENTER DESTINATION";B$
- 1240 GOSUB 1930 :REM SOUND
- 1250 IF B$ = "A" THEN S$ = "A"
- 1260 IF B$ = "M" THEN S$ = "M"
- 1270 IF B$ = "A" OR B$ = "M" THEN GOTO 1210
- 1280 ELSE
- 1290 GOSUB 1540 :REM SYSTEM COORDS
- 1300 DX=IX:DY=IY:DZ=IZ
- 1310 GOTO 1680 :REM TRAVEL CALC
- 1320 REM SYSTEM LIST S$
- 1330 IF S$ = "A" THEN GOSUB 1360
- 1340 IF S$ = "M" THEN GOSUB 1450
- 1350 RETURN
- 1360 PRINT CHR$(12)
- 1370 LOCATE 0,0
- 1380 PRINT"1.Abbadon 7.Chelsea 13.Lungold"
- 1390 PRINT"2.Achamandra 8.Colossus"
- 1400 PRINT"3.Avatar 9.Cornwall"
- 1410 PRINT"4.Azrael 10.Enlas-Dhu"
- 1420 PRINT"5.Beehive 11.Estremerine"
- 1430 PRINT"6.Cenotaph 12.Fiobrachne"
- 1440 RETURN
- 1450 PRINT CHR$(12)
- 1460 LOCATE 0,0
- 1470 PRINT"14.Medusa 20.Shiva"
- 1480 PRINT"15.Monolith 21.Sunrise"
- 1490 PRINT"16.Moonjam 22.Tara"
- 1500 PRINT"17.Phoenix Nebula 23.Timos"
- 1510 PRINT"18.Rhad 24.Videga"
- 1520 PRINT"19.Sheol 25.Winterjewel"
- 1530 RETURN
- 1540 REM SYSTEM COORDS
- 1550 IX=SYSTEMS%(VAL(B$),1)
- 1560 IY=SYSTEMS%(VAL(B$),2)
- 1570 IZ=SYSTEMS%(VAL(B$),3)
- 1580 RETURN
- 1590 REM LOAD SYSTEM ARRAY
- 1600 DIM SYSTEMS%(25,3)
- 1610 FOR I=1 TO 25:
- 1620 FOR J=1 TO 3
- 1630 READ D
- 1640 SYSTEMS%(I,J)=D
- 1650 NEXT J
- 1660 NEXT I
- 1670 RETURN
- 1680 REM TRAVEL CALC
- 1690 DIST = SQR(ABS(OX-DX)^2 + ABS(OY-DY)^2 + ABS(OZ-DZ)^2 )
- 1700 GOSUB 1800 :REM DISPLAY MAP
- 1710 A$ = "##.#"
- 1720 LOCATE 20,0:PRINT"DISTANCE:";
- 1730 PRINT USING A$; DIST;
- 1740 LOCATE 20,1:PRINT"DAYS:";:PRINT USING A$; DIST;
- 1750 GOSUB 1930 :REM Sound
- 1760 LOCATE 20,2:PRINT"FUEL USED:";:PRINT USING A$; DIST*2;
- 1762 LOCATE 20,4:PRINT"Execute Flight";:LOCATE 20,5:INPUT"Plan?(Y/N)";B$
- 1764 IF B$="Y" THEN GOSUB 2510
- 1770 LOCATE 20,5:INPUT"ANOTHER(Y/N) ";B$
- 1780 IF B$="Y" THEN GOTO 1080
- 1790 GOTO 500 :REM END
- 1800 REM DISPLAY MAP
- 1810 PRINT CHR$(12)
- 1820 LINE(0,0)-(81,0)
- 1830 LINE(0,63)-(81,63)
- 1840 LINE(0,0)-(0,63)
- 1850 LINE(81,0)-(81,63)
- 1860 FOR I = 1 TO 25
- 1870 PSET(SYSTEMS%(I,1)*2,SYSTEMS%(I,2)*2)
- 1880 NEXT I
- 1890 P1=OX*2:P2=OY*2
- 1900 P3=DX*2:P4=DY*2
- 1910 LINE(P1,P2)-(P3,P4)
- 1920 RETURN
- 1930 REM SOUND
- 1940 FOR I=1TO4
- 1950 P=900+(RND(1)*10000)
- 1960 T=5
- 1970 SOUND P,T
- 1980 NEXT I
- 1990 RETURN
- 2000 '*** CARGO MANAGER ***
- 2160 PG=1:RW=7:SE=1 'PAGE,ROW,SELECT
- 2170 L=1:NS=1 'LINE,NEW SCREEN
- 2180 'MAIN LOOP
- 2190 IF NS=0 THEN GOTO 2290
- 2200 CLS
- 2210 LOCATE 0,0:PRINT"NAME TON COST"
- 2220 FOR I=PG TO PG+5
- 2230 LOCATE 1,L:PRINT CN$(I);:
- 2240 LOCATE 30,L:PRINT CT%(I);
- 2250 LOCATE 35,L:PRINT CC%(I);
- 2260 L=L+1:IF L>6 THEN L=1
- 2270 NEXT I
- 2280 LOCATE 0,7:PRINT"SELECT:U/D PAGE:L/R EDIT:ENT QUIT:ESC";
- 2290 LINE (0,0+RW)-(175,8+RW),1,B
- 2300 I$=INPUT$(1)
- 2310 LINE (0,0+RW)-(175,8+RW),C,B
- 2320 IF I$=CHR$(27) OR I$="Q" OR I$="q" THEN GOTO 2500'ESCAPE
- 2330 IF I$=CHR$(28) THEN PG=PG+6:SE=SE+6:NS=1'RIGHT
- 2340 IF I$=CHR$(29) THEN PG=PG-6:SE=SE-6:NS=1'LEFT
- 2350 IF I$=CHR$(30) THEN RW=RW-8:NS=0:SE=SE-1'UP
- 2360 IF I$=CHR$(31) THEN RW=RW+8:NS=0:SE=SE+1'DOWN
- 2370 'IF I$=CHR$(32) THEN 'SPACE
- 2380 IF I$<>CHR$(13) THEN GOTO 2430'ENTER
- 2390 NS=1: IF SE=1 THEN GOTO 2410
- 2400 GOSUB 2480:INPUT"NAME";A$:CN$(SE)=A$
- 2410 GOSUB 2480:INPUT"TONS:";A$:CT%(SE)=VAL(A$):FUEL%=VAL(A$)
- 2420 GOSUB 2480:INPUT"COST:";A$:CC%(SE)=VAL(A$)
- 2430 IF SE>30 THEN SE=30!SLE IF SE<1 THE SE=1
- 2440 IF PG>25 THEN PG=25 ELSE IF PG<1 THEN PG=1
- 2450 IF RW>47 THEN RW=47 ELSE IF RW<7 THEN RW=7
- 2460 IF SE>PG+5 THEN SE=PG+5
- 2470 GOTO 2180
- 2480 LOCATE 0,7:PRINT" ";
- 2490 LOCATE 0,7:RETURN
- 2500 GOTO 500
- 2510 IF DIST*2 > FUEL% THEN LOCATE 20,4:PRINT"INSUFFICIENT FUEL";:LOCATE 20,5:INPUT"<PRESS A KEY>";B$
- 2520 IF DIST*2 < FUEL% THEN FUEL% = FUEL% - (DIST*2):CT%(1)=FUEL%
- 2530 RETURN
- 10000 REM SYSTEM COORDS
- 10010 DATA 21,20,17,13,18,10,15,24,15,12,5,8
- 10020 DATA 19,4,8,36,17,7,15,27,12,5,17,13
- 10030 DATA 4,25,6,32,15,11,22,6,10,21,1,14
- 10040 DATA 7,19,7,8,14,12,20,16,10,19,12,13
- 10050 DATA 24,17,20,18,20,13,5,4,6,20,29,9
- 10060 DATA 7,11,10,29,11,13,24,22,9,21,15,16,26,13,15
- 10070 REM LINE ROUTINE DATA
- 10080 DATA 193,254,244,235,42,250,243,235,196,118
- 10090 DATA 31,213,207,244,205,118,31,213,17,208
- 10100 DATA 116,202,234,242,213,207,44,254,44,209
- 10110 DATA 202,232,242,213,205,227,19,209,15,218
- 10120 DATA 232,242,17,209,116,43,215,235,34,102
- 10130 DATA 243,235,202,40,243,207,44,207,66,202
- 10140 DATA 18,243,207,70,209,227,123,149,210,5
- 10150 DATA 243,47,60,107,71,4,93,205,47,243
- 10160 DATA 44,5,194,7,243,225,201,209,227,213
- 10170 DATA 93,205,47,243,209,213,84,205,47,243
- 10180 DATA 209,229,98,205,47,243,225,107,1,209
- 10190 DATA 227,205,47,243,225,201,229,213,197,125
- 10200 DATA 147,210,58,243,235,47,60,71,14,20
- 10210 DATA 124,146,210,69,243,47,60,12,184,218
- 10220 DATA 80,243,103,104,62,28,195,85,243,111
- 10230 DATA 96,121,14,28,50,120,243,121,50,107
- 10240 DATA 243,68,4,124,167,31,79,229,213,197
- 10250 DATA 205,209,116,193,209,225,20,121,133,79
- 10260 DATA 218,118,243,188,218,121,243,148,79,28
- 10270 DATA 5,194,98,243,195,94,25
- 11000 CLS
- 11010 INPUT "SAVE? (Y/N)";A$
- 11020 IF A$<>"Y" AND A$<>"y" THEN GOTO 11110
- 11030 PRINT "SAVING..."
- 11040 OPEN "CARGO.DO" FOR OUTPUT AS #1
- 11050 FOR I=1TO30
- 11060 PRINT#1,CN$(I)
- 11070 PRINT#1,CT%(I)
- 11080 PRINT#1,CC%(I)
- 11090 NEXT I
- 11100 CLOSE
- 11110 END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement