home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG054.ARK
/
ROCKET.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
3KB
|
99 lines
0 !
1 REM *** WRITTEN BY JIM STORER, LEXINGTON HS
2 REM *** CONVERTED FROM FOCAL TO BASIC BY DAVID AHL, DIGITAL
10 REM LUNAR MODULE PROGRAM "ROCKET"
20 PRINT:PRINT:PRINT "CONTROL CALLING LUNAR MODULE..":PRINT
35 PRINT"YOU MAY SET THE FUEL RATE (K) TO ZERO OR ANY VALUE"
40 PRINT"BETWEEN 8 AND 200 LBS PER SECOND. A NEGATIVE FUEL"
50 PRINT "RATE WILL ABORT THE LANDING, UNLESS THE RATE"
55 PRINT "IS -2, IN WHICH CASE THE CURRENT POSITION IS "
57 PRINT "SAVED FOR LATER RECALL UPON RESTART." : PRINT
60 PRINT"YOU HAVE 16000 LBS OF FUEL."
70 PRINT"ESTIMATED FREE FALL IMPACT TIME IS 120 SECONDS."
80 PRINT"CAPSULE WEIGHT IS 32,500 LBS."
90 PRINT:PRINT "FIRST RADAR CHECK COMING UP..."
100 PRINT "BEGIN LANDING PROCEDURE":PRINT:PRINT
110 PRINT"TIME(SECS)","HEIGHT(MI)","VELOCITY(MPH)","FUEL(LBS)","FUEL RATE"
120 LET L=0:LET A=120:LET V=1:LET M=32500:LET N=16500
170 LET G=1E-03:LET Z=1.8
210 PRINT USING "### ###.## #### #####",INT(L+.5),A,V*3600,M-N;:?,"K";
220 INPUT K
225 LET T=10
227 IF K <> -2 THEN 230
228 M1=M : L1=L : V1=V : A1=A : PRINT "SAVED YOUR POSITION" : GOTO 220
230 IF K<0 GOTO 590
235 IF K=0 GOTO 310
240 IF K<8 THEN 260
250 IF K<=200 GOTO 310
260 PRINT "NOT POSSIBLE",,,,"K";
270 INPUT K : GOTO 230
310 IF M-N-1E-03 <=0 GOTO410
320 IF T<1E-03 GOTO 210
330 LET S=T:IF N+S*K<=M GOTO 350
340 LET S=(M-N)/K
350 LET I0=1 : GOTO 900
360 IF I <=0 GOTO 710
370 IF V<=0 GOTO 380
375 IF J<0 GOTO 810
380 LET I0=1:GOTO600
410 PRINT"FUEL OUT AT ";L;"SECS."
420 LET S=(-V+SQR(V*V+2*A*G))/G
430 LET V = V+G*S
440 LET L=L+S
510 PRINT"ON THE MOON AT ";L;"SECS."
511 LET W = 3600*V
514 PRINT "IMPACT VELOCITY OF ";W;"M.P.H."
520 PRINT "FUEL LEFT ";M-N;"LBS."
530 IF W>=1 GOTO 550
540 PRINT "PERFECT LANDING! CONGRATULATIONS!!": GOTO 590
550 IF W >=10 THEN 560
552 PRINT "VERY GOOD LANDING, NOT PERFECT YET.":GOTO590
560 IF W >= 25 THEN 570
562 PRINT "A FAIR LANDING, NO CRAFT DAMAGE.":GOTO590
570 IF W >= 60 THEN580
572 PRINT "CRAFT DAMAGE -- BETTER LUCK NEXT TIME.":GOTO 590
580 PRINT "SORRY, BUT THERE WERE NO SURVIVORS."
585 PRINT "IN FACT YOU BLASTED A NEW LUNAR CRATER ";W*.277777;" FEET DEEP."
590 PRINT:PRINT:PRINT "TRY AGAIN? (Y,N,RESTART, OR LOW WINDOW)";
592 INPUT R$: R$=LEFT$(R$,1)
593 IF R$="Y" THEN 90 ELSE IF R$="R" THEN 1200 ELSE IF R$="L" THEN 1100
595 PRINT: PRINT "CONTROL OUT" : GOTO 1800
600 LET L=L+S
610 LET T = T-S
620 LET M=M-S*K
630 LET A=I
640 LET V=J
650 IF I0=1 GOTO 310
660 IF I0=3 GOTO 850
710 IF S< 5E-03 GOTO 510
720 LET S= 2*A/(V+SQR(V*V+2*A*(G-Z*K/M)))
730 LET I0=2 :GOTO 900
810 LET W=(1-M*G/(Z*K))/2
820 LET S=M*V/(Z*K*(W+SQR(W*W+V/Z)))+.05
825 LET I0=3 :GOTO 900
830 IF I<=0 THEN 710
840 GOTO 600
850 IF J>=0 THEN 310
860 IF V<=0 GOTO 310
870 GOTO 810
900 LET Q=S*K/M
905 IF Q<=0 THEN 1000
910 LET J=V+G*S+Z*(-Q-(Q^2)/2-(Q^3)/3-(Q^4)/4-(Q^5)/5)
920 LET I=A-G*S*S/2-V*S+Z*S*(Q/2+Q^2/6+Q^3/12+Q^4/20+Q^5/30)
930 IF I0=1 GOTO 360
940 IF I0=2 GOTO 600
950 IF I0=3 GOTO 830
1000 LET J=V+G*S
1010 LET I=A-G*S*S/2-V*S
1020 GOTO930
1100 LET L=140
1110 LET A=2.382342
1120 LET V=.1257558
1130 LET M=18500
1140 LET N=16500
1150 GOTO 170
1200 M=M1 : L=L1 : V=V1 : A=A1 : GOTO 210
1510 IF ERL=910 THEN RESUME 920 ELSE IF ERL=920 THEN RESUME 930
1520 RESUME 0
1800 END