1 'Written by Jim Storer, Lexington HS 2 'Converted from Focal to Basic by D Ahl 3 'Adapted to TRS Model 100 by R Curtis 4 DEFSNGA-Z 5 A$=CHR$(27)+"pHit 'ENTER' to continue!"+CHR$(27)+"q" 10 PRINT"Lunar Landing Simulation" 20 PRINT"CONTROL CALLING LUNAR LANDER..." 35 PRINT"You may set the fuel rate (K) to zero 36 PRINT"or any value between 8 and 200 lbs/sec 40 PRINT"A negative rate will abort mission. 50 PRINT"You have 16000 lbs of fuel. 60 PRINT"Estimated free fall time is 120 sec. 70 PRINTA$;:LINEINPUTZ$ 75 CLS 80 PRINT"Capsule weight is 32,500 lbs. 90 PRINT"FIRST RADAR CHECK COMING UP... 100 PRINT"Begin landing procedure. 110 PRINT"Time Height Velocity Fuel Fuel Rate 115 PRINT"(sec) (mi) (mph) (lbs) (lbs/sec) 120 L=0:A=120:V=1:M=32500:N=16500 170 G=.001:Z=1.8 210 PRINTUSING"###";INT(L+.5);:PRINT" ";:PRINTUSING"####.####";A;:PRINT" ";:PRINTUSING"####.####";V*3600;:PRINT" ";:PRINTUSING"#####";M-N;: 220 INPUT K 225 T=10 230 IF K<0 THEN 590 235 IF K=0 THEN 310 240 IF K<8 THEN 260 250 IF K<=200 THEN 310 260 PRINT"Not possible! As you realize, our 265 PRINT"engines need 8 lbs/sec to maintain 267 print"iginition! K"; 270 INPUT K:GOTO 230 310 IF M-N-.001<=0 GOTO 410 320 IF T<.001 GOTO 210 330 S=T:IF N+S*K<=M THEN 350 340 S=(M-N)/K 350 I0=1:GOTO 900 360 IF I<=0 THEN 710 370 IF V<=0 THEN 380 375 IF J<0 THEN 810 380 I0=1:GOTO 600 410 PRINT"Fuel out at ";L;"sec. 420 S=(-V+SQR(V*V+2*A*G))/G 430 V=V+G*S 440 L=L+S 510 PRINT"On the moon at ";L;"sec. 511 W=3600*V 514 PRINT"Impact velocity of ";W;"M.P.H. 520 PRINT"Fuel left ";M-N;"lbs. 530 IF W>=1 THEN 550 540 PRINT"Perfect landing! Congratulations!": GOTO 590 550 IF W>=10 THEN 560 552 PRINT"Very good landing. Not perfect yet.":GOTO 590 560 IF W>25 THEN570 562 PRINT"A fair landing. No craft damage.":GOTO 590 570 IF W>=60 THEN 580 572 PRINT"Craft damaged. Hope your oxygen 573 PRINT"holds out until rescuers arrive!":GOTO590 580 PRINT"Sorry, but there were no survivors." 585 PRINT"In fact you blasted a new lunar crater 587 PRINTW*.277777;"feet deep. 590 PRINT"Try again? (Y/N) "; 592 Z$=INKEY$:IF Z$="" THEN 592 ELSE PRINT:IF Z$="Y"ORZ$="y"THEN90ELSE PRINT"CONTROL OUT...":GOTO 1800 600 L=L+S 610 T=T-S 620 M=M-S*K 630 A=I 640 V=J 650 IF I0=1 GOTO 310 660 IF I0=3 GOTO 850 710 IF S<.005 THEN 510 720 S=2*A/(V+SQR(V*V+2*A*(G-Z*K/M))) 730 I0=2: GOTO 900 810 W=(1-M*G/(Z*K))/2 820 S=M*V/(Z*K*(W+SQR(W*W+V/Z)))+.05 825 I0=3:GOTO 900 830 IF I<=0 THEN 710 840 GOTO 600 850 IF J>=0 THEN 310 860 IF V<=0 THEN 310 870 GOTO 810 900 Q=S*K/M 905 IF Q<=0 THEN 1000 910 J=V+G*S+Z*(-Q*(1+Q*(1/2+Q*(1/3+Q*(1/4+Q*(1/5)))))) 920 I=A-G*S*S/2-V*S+Z*S*(Q*(1/2+Q*(1/6+Q*(1/12+Q*(1/20+Q*(1/30)))))) 930 IF I0=1 THEN 360 940 IF I0=2 THEN 600 950 IF I0=3 THEN 830 1000 J=V+G*S 1010 I=A-G*S*S/2-V*S 1020 GOTO 930 1800 END