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 >
BASIC Source File  |  1984-04-29  |  3KB  |  99 lines

  1. 0 !
  2. 1 REM *** WRITTEN BY JIM STORER, LEXINGTON HS
  3. 2 REM *** CONVERTED FROM FOCAL TO BASIC BY  DAVID AHL, DIGITAL
  4. 10 REM LUNAR MODULE PROGRAM "ROCKET"
  5. 20 PRINT:PRINT:PRINT "CONTROL CALLING LUNAR MODULE..":PRINT
  6. 35 PRINT"YOU MAY SET THE FUEL RATE (K) TO ZERO OR ANY VALUE"
  7. 40 PRINT"BETWEEN 8 AND 200 LBS PER SECOND.  A NEGATIVE FUEL"
  8. 50 PRINT "RATE WILL ABORT THE LANDING, UNLESS THE RATE"
  9. 55 PRINT "IS -2, IN WHICH CASE THE CURRENT POSITION IS "
  10. 57 PRINT "SAVED FOR LATER RECALL UPON RESTART." : PRINT
  11. 60 PRINT"YOU HAVE 16000 LBS OF FUEL."
  12. 70 PRINT"ESTIMATED FREE FALL IMPACT TIME IS 120 SECONDS."
  13. 80 PRINT"CAPSULE WEIGHT IS 32,500 LBS."
  14. 90 PRINT:PRINT "FIRST RADAR CHECK COMING UP..."
  15. 100 PRINT "BEGIN LANDING PROCEDURE":PRINT:PRINT
  16. 110 PRINT"TIME(SECS)","HEIGHT(MI)","VELOCITY(MPH)","FUEL(LBS)","FUEL RATE"
  17. 120 LET L=0:LET A=120:LET V=1:LET M=32500:LET N=16500
  18. 170 LET G=1E-03:LET Z=1.8
  19. 210 PRINT USING "###            ###.##          ####        #####",INT(L+.5),A,V*3600,M-N;:?,"K";
  20. 220 INPUT K
  21. 225 LET T=10
  22. 227 IF K <> -2 THEN 230
  23. 228 M1=M : L1=L : V1=V : A1=A : PRINT "SAVED YOUR POSITION" : GOTO 220
  24. 230 IF K<0 GOTO 590
  25. 235 IF K=0 GOTO 310
  26. 240 IF K<8 THEN 260
  27. 250 IF K<=200 GOTO 310
  28. 260 PRINT "NOT POSSIBLE",,,,"K";
  29. 270 INPUT K : GOTO 230
  30. 310 IF M-N-1E-03 <=0 GOTO410
  31. 320 IF T<1E-03 GOTO 210
  32. 330 LET S=T:IF N+S*K<=M GOTO 350
  33. 340 LET S=(M-N)/K
  34. 350 LET I0=1 : GOTO 900
  35. 360 IF I <=0 GOTO 710
  36. 370 IF V<=0 GOTO 380
  37. 375 IF J<0 GOTO 810
  38. 380 LET I0=1:GOTO600
  39. 410 PRINT"FUEL OUT AT ";L;"SECS."
  40. 420 LET S=(-V+SQR(V*V+2*A*G))/G
  41. 430 LET V = V+G*S
  42. 440 LET L=L+S
  43. 510 PRINT"ON THE MOON AT ";L;"SECS."
  44. 511 LET W = 3600*V
  45. 514 PRINT "IMPACT VELOCITY OF ";W;"M.P.H."
  46. 520 PRINT "FUEL LEFT ";M-N;"LBS."
  47. 530 IF W>=1 GOTO 550
  48. 540 PRINT "PERFECT LANDING!  CONGRATULATIONS!!": GOTO 590
  49. 550 IF W >=10 THEN 560
  50. 552 PRINT "VERY GOOD LANDING, NOT PERFECT YET.":GOTO590
  51. 560 IF W >= 25 THEN 570
  52. 562 PRINT "A FAIR LANDING, NO CRAFT DAMAGE.":GOTO590
  53. 570 IF W >= 60 THEN580
  54. 572 PRINT "CRAFT DAMAGE -- BETTER LUCK NEXT TIME.":GOTO 590
  55. 580 PRINT "SORRY, BUT THERE WERE NO SURVIVORS."
  56. 585 PRINT "IN FACT YOU BLASTED A NEW LUNAR CRATER ";W*.277777;" FEET DEEP."
  57. 590 PRINT:PRINT:PRINT "TRY AGAIN? (Y,N,RESTART, OR LOW WINDOW)";
  58. 592 INPUT R$: R$=LEFT$(R$,1)
  59. 593 IF R$="Y" THEN 90 ELSE IF R$="R" THEN 1200 ELSE IF R$="L" THEN 1100
  60. 595 PRINT: PRINT "CONTROL OUT" : GOTO 1800
  61. 600 LET L=L+S
  62. 610 LET T = T-S
  63. 620 LET M=M-S*K
  64. 630 LET A=I
  65. 640 LET V=J
  66. 650 IF I0=1 GOTO 310
  67. 660 IF I0=3 GOTO 850
  68. 710 IF S< 5E-03 GOTO 510
  69. 720 LET S= 2*A/(V+SQR(V*V+2*A*(G-Z*K/M)))
  70. 730 LET I0=2 :GOTO 900
  71. 810 LET W=(1-M*G/(Z*K))/2
  72. 820 LET S=M*V/(Z*K*(W+SQR(W*W+V/Z)))+.05
  73. 825 LET I0=3 :GOTO 900
  74. 830 IF I<=0 THEN 710
  75. 840 GOTO 600
  76. 850 IF J>=0 THEN 310
  77. 860 IF V<=0 GOTO 310
  78. 870 GOTO 810
  79. 900 LET Q=S*K/M
  80. 905 IF Q<=0 THEN 1000
  81. 910 LET J=V+G*S+Z*(-Q-(Q^2)/2-(Q^3)/3-(Q^4)/4-(Q^5)/5)
  82. 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)
  83. 930 IF I0=1 GOTO 360
  84. 940 IF I0=2 GOTO 600
  85. 950 IF I0=3 GOTO 830
  86. 1000 LET J=V+G*S
  87. 1010 LET I=A-G*S*S/2-V*S
  88. 1020 GOTO930
  89. 1100 LET L=140
  90. 1110 LET A=2.382342
  91. 1120 LET V=.1257558
  92. 1130 LET M=18500
  93. 1140 LET N=16500
  94. 1150 GOTO 170
  95. 1200 M=M1 : L=L1 : V=V1 : A=A1 : GOTO 210
  96. 1510 IF ERL=910 THEN RESUME 920 ELSE IF ERL=920 THEN RESUME 930
  97. 1520 RESUME 0
  98. 1800 END
  99.