10 REM MOON.ECB 100 REM ...WRITTEN BY BRUCE NORSKOG FROM WILLMAR COMMUNITY COLLEGE. 110 REM ...RECOVERED AND REPAIRED BY JOHN LIND IN THE SPRING OF 1975 120 REM ...FROM WILLMAR COMMUNITY COLLEGE. 130 REM ...PUT BACK ON THE SYSTEM AFTER TRANSLATION TO AND BACK FROM 140 REM ...UNIVAC RTB BY JOHN LIND IN THE SPRING OF 1977 FROM MUG0002 150 REM ....CONVERTED BACK TO UNIVAC 12-15-78 R.E.H. 160 PRINT TAB(20);"M O O N L A N D I N G" 170 PRINT 180 LET P1=3.14159 190 PRINT "PLEASE TYPE IN YOUR NAME"; 200 INPUT B$ 210 PRINT 220 PRINT "YOU ARE IN ORBIT AROUND THE MOON'S EQUATOR TO MAKE A SAFE" 230 PRINT "LANDING AT A MOON BASE AT 0 DEGREES LONGITUDE." 240 PRINT 250 PRINT "DO YOU WANT INSTRUCTIONS"; 260 INPUT A$ 270 IF A$="N" THEN 790 280 PRINT 290 PRINT "INFORMATION FOR MOONLDG." 300 PRINT 310 PRINT " WHEN THE GAME BEGINS (AND IF YOU CHOOSE NOT TO SET YOUR" 320 PRINT "SHIP'S STATUS), YOU ARE IN ORBIT AROUND THE MOON'S EQUATOR." 330 PRINT "YOU WILL BE GIVEN:" 340 PRINT " 1) THE ELAPSED TIME IN SECONDS," 350 PRINT " 2) YOUR SHIP'S HEIGHT," 360 PRINT " 3) HORIZONTAL AND VERTICAL VELOCITIES;" 370 PRINT " 4) LONGITUDE;" 380 PRINT " 5) FUEL REM AINING." 390 GOSUB 2210 400 PRINT "ALL THE ABOVE MEASURMENTS ARE MADE AT 10 SECOND INTERVALS." 410 PRINT "ALL VELOCITIES ARE IN METERS PER SECOND, SO YOU WILL FALL" 420 PRINT "TEN TIMES AS FAR IN ONE INTERVAL." 430 PRINT " TO CONTROL YOUR DESCENT, YOU CAN APPLY THRUST IN FOUR" 440 PRINT "DIRECTIONS: TOWARD THE MOON, AWAY FROM THE MOON, AND" 450 PRINT "DIRECTLY IN FRONT OR BEHIND YOU. THESE THRUSTS ARE SPECIFIED" 460 PRINT "BY -TWO- BURN RATES YOU WILL BE ASKED TO ENTER FOR EACH 10" 470 PRINT "SECOND PERIOD OF SIMULATION. EACH BURN RATE IS IN KILOGRAMS" 480 PRINT "OF FUEL PER SECOND TO BE APPLIED FOR THE ENTIRE 10 SECOND" 490 PRINT "INTERVAL, CONSUMING TEN TIMES THAT AMOUND OF FUEL." 500 GOSUB 2210 510 PRINT " EITHER OF THESE BURN RATES MAY BE NEGATIVE TO REVERSE" 520 PRINT "THEIR DIRECTION. THE FIST BURN RATE IS FOR FIRING IN THE" 530 PRINT "DIRECTION IN FRONT OF YOU (BEHIND YOU IF NEGATIVE). THE" 540 PRINT "SECOND BURN RATE IS FOR FIRING DOWNWARD (UPWARD IF" 550 PRINT "POSITIVE). SINCE THE EFFECT OF EACH BURN IS DEPENDENT ON THE" 560 PRINT "MASS OF YOUR VEHICLE, IT WILL CHANGE AS YOU BURN YOUR FUEL." 570 GOSUB 2210 580 PRINT " REM EMBER THAT FIRING YOUR ENGINES IN ONE DIRECTION WILL" 590 PRINT "ACCELERATE YOU IN THE *OPPOSITE* DIRECTION, SO A POSITIVE" 600 PRINT "HORIZONTAL OR VERTICAL BURN WILL SLOW YOU DOWN. YOU MAY BURN" 610 PRINT "IN EITHER DIRECTION INDEPENDANTLY BY ENTERING A ZERO FOR THE" 620 PRINT "OTHER BURN, OR YOU MAY USE BOTH BURNS SIMULTANEOUSLY, BUT" 630 PRINT "THE ALGEBRAIC SUM OF THE ABSOLUTE VALUE OF THE BURNS MUST" 640 PRINT "NOT EXCEED 100. EXCESSIVE BURN RATES CAN DAMAGE YOUR SHIP OR" 650 PRINT "CAUSE IT TO EXPLODE." 660 GOSUB 2210 670 PRINT " AN IDEAL LANDING WOULD BE AT ZERO DEGREES LONGITUDE JUST" 680 PRINT "AS YOUR VELOCITY REACHED ZERO, BUT GREATER TOLERANCE IS" 690 PRINT "ALLOWED. IF YOU LAND TOO FAR AWAY WITHOUT DAMAGING YOUR" 700 PRINT "CRAFT AND HAVE ENOUGH FUEL, YOU CAN TAKE OFF AND TRY AGAIN." 710 GOSUB 2210 720 PRINT "YOU HAVE ENOUGH OXYGEN FOR A 25 MILE HIKE ACROSS THE MOON'S" 730 PRINT "SURFACE, SO YOU MUST END UP WITHIN .67 DEGREES LONGITUDE OF" 740 PRINT "THE MOON BASE. EXCESSIVE VELOCITIES AT IMPACT CAN DAMAGE" 750 PRINT "YOUR CRAFT OR EVEN KILL YOU." 760 PRINT 770 PRINT "P.S. THE MOON HAS ENOUGH CRATERS." 780 PRINT 790 PRINT 800 PRINT "DO YOU WISH TO SET YOUR SHIP'S STATUS"; 810 INPUT A$ 820 IF A$="Y" THEN 890 830 LET H=1.94E+6 840 LET V1=1600 850 LET V2=0 860 LET L=-15 870 LET F=20000 880 GOTO 980 890 PRINT "HEIGHT"; 900 INPUT H 910 LET H=H+1.74E+6 920 PRINT "WESTWARD AND DOWNWARD VELOCITIES"; 930 INPUT V1,V2 940 PRINT "LONGITUDE (NEGATIVE IF EAST) "; 950 INPUT L 960 PRINT "FUEL LEFT"; 970 INPUT F 980 LET T=0 990 LET P=100 1000 LET T1=1 1010 PRINT 1020 PRINT "GOOD LUCK, ";B$;"!" 1030 LET M=F+20000 1040 LET E=5000 1050 PRINT 1060 PRINT 1070 PRINT "TIME HEIGHT VELOCITY (M/SEC)"; 1080 PRINT TAB(39);"LONGITUDE FUEL BURN RATES" 1090 PRINT "(SEC) (M) HORIZONTAL VERTICAL"; 1100 PRINT TAB(39);"(DEGREES) (KG) (KG/SEC)" 1110 PRINT 1120 PRINT T; 1130 PRINT TAB(6);H-1.74E+6;TAB(17);V1;TAB(28);V2;TAB(38);ABS(L); 1140 IF L<=0 THEN 1170 1150 PRINT " W"; 1160 GOTO 1180 1170 PRINT " E"; 1180 PRINT TAB(50);F;TAB(60); 1190 INPUT B1,B2 1200 LET B=ABS(B1)+ABS(B2) 1210 IF B>P THEN 1770 1220 FOR I=1 TO 10 1230 IF B>F THEN 1400 1240 LET G=5E+12/H^2 1250 LET M=M-B*T1 1260 LET F=F-B*T1 1270 LET Q1=T1*B1/M 1280 LET Q2=T1*B2/M 1290 LET V3=V1-E*Q1 1300 LET V4=V2+G*T1-E*Q2 1310 LET H1=H-G*T1^2/2-V2*T1+E*T1*Q2/2 1320 LET D=V1-E*Q1/2 1330 LET H=SQR(H1^2+D^2) 1340 GOSUB 2120 1350 IF T1<1 THEN 1420 1360 LET T=T+T1 1370 IF H<1.74E+6 THEN 1540 1380 NEXT I 1390 GOTO 1110 1400 LET T1=B/F 1410 GOTO 1240 1420 PRINT "FUEL OUT AT";T+T1;" SEC." 1430 LET T1=1-T1 1440 LET T=T+1 1450 LET G=5E+12/H^2 1460 LET V3=V1 1470 LET V4=V2+G*T1 1480 LET H1=H-V2*T1-G*T1^2/2 1490 LET D=V1*T1 1500 LET H=SQR(H1^2+D^2) 1510 GOSUB 2120 1520 LET T1=1 1530 IF H>1.74E+6 THEN 1440 1540 PRINT 1550 PRINT "ON THE MOON AT";T;" SEC. AT LONGITUDE";ABS(L);" DEGREES "; 1560 IF L<0 THEN 1590 1570 PRINT "WEST." 1580 GOTO 1600 1590 PRINT "EAST." 1600 PRINT "VELOCITY (M/SEC) AT IMPACT: ";V2;" DOWNWARD, ";V1;" WESTWARD." 1610 IF V2>28 THEN 1800 1620 IF ABS(V1)<10 THEN 1820 1630 PRINT "YOUR SHIP TIPPED OVER AT IMPACT." 1640 IF V2<20 THEN 1800 1650 IF ABS(L)<.67 THEN 1690 1660 PRINT "YOU CAN NOT BLAST OFF." 1670 PRINT "YOU ARE MAROONED ON THE MOON FOR THE REST OF YOUR (SHORT) LIFE." 1680 GOTO 2090 1690 PRINT "HOWEVER, "; 1700 IF ABS(L)<.01 THEN 1740 1710 PRINT "YOU ARE WITHIN HIKING DISTANCE OF THE BASE." 1720 PRINT "GOOD GOING" 1730 GOTO 2090 1740 PRINT "YOU HAVE LANDED AT THE BASE." 1750 PRINT "EXCELLENT JOB, ";B$;"!" 1760 GOTO 2090 1770 PRINT "YOUR BURN RATE IS IN ERROR." 1780 IF RND(0)>.2 THEN 1120 1790 PRINT "YOUR SPACESHIP HAS BLOWN UP." 1800 PRINT "TOO BAD, ";B$;" . . . YOU JUST DIED." 1810 GOTO 2090 1820 IF V2>7 THEN 1970 1830 PRINT "FINE LANDING, ";B$ 1840 IF ABS(L)<.67 THEN 1910 1850 PRINT ", BUT TOO FAR FROM THE BASE." 1860 PRINT "DO YOU WANT TO BLAST OFF"; 1870 INPUT Q$ 1880 IF Q$="N" THEN 1670 1890 LET V1=V2=T=0 1900 GOTO 1050 1910 IF ABS(L)<.01 THEN 1940 1920 PRINT "WITHIN HIKING DISTANCE OF THE BASE." 1930 GOTO 1750 1940 PRINT "RIGHT AT THE BASE" 1950 PRINT "FANTASTIC LANDING, ";B$;"!" 1960 GOTO 2090 1970 LET P=100-(V2-7)*7 1980 PRINT "YOUR LANDING HAS CAUSED DAMAGE TO YOUR SHIP." 1990 IF ABS(L)<.01 THEN 2030 2000 IF ABS(L)<.67 THEN 1710 2010 PRINT "YOU CAN NOW ONLY BURN UP TO";P;" KG/SEC." 2020 GOTO 1860 2030 PRINT "YOU HAVE LANDED AT THE BASE." 2040 GOTO 1720 2050 PRINT "YOUR SHIP IS DAMAGED BEYOND REPAIR." 2060 IF ABS(L)<.01 THEN 2030 2070 IF ABS(L)<.67 THEN 1710 2080 GOTO 1660 2090 PRINT "DO YOU WANT TO TRY AGAIN"; 2100 INPUT Q$ 2110 IF Q$="Y" THEN 800 ELSE STOP 2120 LET O7=ATN(D/H1) 2130 LET L=L+O7*180/P1 2140 LET E7=COS(O7) 2150 LET B7=V3*(1/E7) 2160 LET C7=SIN(O7) 2170 LET A7=V4-B7*C7 2180 LET V2=A7*E7 2190 LET V1=B7+A7*C7 2200 RETURN 2210 PRINT 2220 PRINT "<*> TYPE ANY LETTER TO SEE MORE ---=>"; 2230 INPUT A$ 2240 PRINT 2250 RETURN 2260 END