!*! Updated on 10-Dec-90 at 12:42 PM by Paul Ciosek; edit time: 0:01:09
       SCALE = 4
       SIGNIFICANCE 11
       PRINT TAB(-1,0);"*** LUNAR LANDING SIMULATION - VER 1.0 ***"
       PRINT
       INPUT "DO YOU WANT INSTRUCTIONS (Y/N) ";A$
       IF A$="N" GOTO L1500
       PRINT
       PRINT "YOU ARE LANDING ON THE MOON AND HAVE TAKEN OVER MANUAL"
       PRINT "CONTROL 500 FEET ABOVE A GOOD LANDING SPOT."
       PRINT
       PRINT "HERE ARE THE RULES THAT GOVERN YOUR SPACE VEHICLE:"
       PRINT "(1) AFTER EACH SECOND, THE HEIGHT, VELOCITY, AND REMAINING"
       PRINT "    FUEL WILL BE REPORTED."
       PRINT "(2) AFTER THE REPORT, A '?' WILL BE DISPLAYED.  ENTER THE"
       PRINT "    NUMBER OF UNITS OF FUEL YOU WISH TO BURN DURING THE"
       PRINT "    NEXT SECOND.  EACH UNIT OF FUEL WILL SLOW YOUR DESCENT"
       PRINT "    BY 1 FT/SEC.  THE MOON'S GARVITY IS 5 FT/SEC."
       PRINT "(3) THE MAXIMUM THRUST OF YOU ENGINE IS 30 FT/SEC OR"
       PRINT "    30 UNITS 0F FUEL PER SECOND."
       PRINT "(4) WHEN YOU CONTACT THE LUNAR SURFACE, YOUR DESCENT ENGINE"
       PRINT "    WILL AUTOMATICALLY CUT OFF AND YOU WILL BE GIVEN A"
       PRINT "    REPORT OF YOUR LANDING SPEED AND REMAINING FUEL."
       PRINT "(5) IF YOU RUN OUT OF FUEL, THE '?' WILL NO LONGER APPEAR,"
       PRINT "    BUT YOUR SECOND BY SECOND REPORT WILL CONTINUE UNTIL"
       PRINT "    YOU CONTACT THE LUNAR SURFACE." :
L1500:  PRINT
       INPUT "TYPE 'RETURN' WHEN YOU ARE READY TO BEGIN";A$
       PRINT TAB(-1,0);
       OFS=0
       FC=0
       HSC=10
       FOR I=1 TO 24
       PRINT "I"
       NEXT I
       REM
       REM    INITIALIZE
       REM
       T=0 :
       H=500 : V=50 : F=150
L380:   GOSUB L504
       INPUT "NEXT BURN: ";B
       IF B<0 GOTO L499
       IF B>30 THEN B=30
       IF B>F THEN B=F
L430:   V1=V-B+5
       F=F-B
       H=H-.5*(V+V1)
       IF H<=0 GOTO L550
       T=T+1
       V=V1
       IF F>0 GOTO L380
       IF B=0 THEN GOSUB L504
L499:   B=0
       GOTO L430

       REM
       REM    ANNOTATE SCREEN
       REM
L504:   IF FC<24 THEN FC=FC+1
       PRINT TAB(-1,1);
       IF FC=1 GOTO L511
       FOR I=1 TO FC-1
       PRINT CHR$(10);
       NEXT I
L511:   J=INT(ABS(H/HSC))
       IF J<=0 THEN J=1
       IF J>79 THEN J=79
       IF H>195 THEN GOTO MOVE
       IF HSC=2.5 THEN GOTO MOVE
       IF F=0 THEN GOTO MOVE
       HSC=2.5
       PRINT "--------------- DISPLAY SCALE ENLARGED ----------------";

MOVE:   FLAG = 0
       IF H>195 GOTO L525
       IF HSC=2.5 GOTO L525
       IF F=0 GOTO L525
       HSC=2.5
       PRINT "--------------- DISPLAY SCALE ENLARGED ----------------";
       FLAG = -1
       RETURN
L525:   IF F<>0 OR OFS<>0 GOTO L529
       IF J>20 THEN PRINT "*** OUT OF FUEL";
       IF J<20 THEN PRINT TAB(40);"*** OUT OF FUEL";
       OFS=1
L529:   PRINT : PRINT "I";TAB(J);"*";
       PRINT TAB(-1,1);"#########################################################"
       PRINT TAB(-1,1);"SEC=";T;" FEET=";H;" SPEED=";V;" FUEL=";F;
       RETURN

L550:   PRINT TAB(23,1);
       IF V<=5 THEN PRINT "---------------------  TOUCHDOWN! --------------------  ";
       IF V>5 THEN PRINT "########################## SPLAT! #########################  ";
       END