home *** CD-ROM | disk | FTP | other *** search
- 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
-