LOMEM = 768 1 DIM Z(40) 5 GOSUB 999 10 PRINT "LUNAR LANDING SIMULATION" 20 PRINT "CREATIVE COMPUTING MORRISTOWN, NJ" 30 PRINT:PRINT "ADAPTED TO APPLE-I BY COREY COHEN" 80 PRINT "----- ------- ----------": PRINT 100 INPUT "INSTRUCTIONS (Y OR N)",A$ 110 IF A$="N" THEN 390 160 PRINT 200 PRINT"YOU ARE LANDING ON THE MOON!!!" 210 PRINT"YOU ARE 1000 FT ABOVE YOUR LANDING SPOT." 215 PRINT"YOU HAVE DOWNWARD VELOCITY OF 50 FT/SEC." 220 PRINT"YOU HAVE 150 UNITS OF FUEL REMAIN." 226 PRINT 240 PRINT"(1) AFTER EACH SECOND, HEIGHT, VELOCITY, AND FUEL"; 250 PRINT"WILL BE REPORTED" 260 PRINT"(2) AT THE '?', ENTER THE NUMBER OF UNITS OF"; 270 PRINT" FUEL YOU WISH TO BURN DURING THE NEXT SECOND." 280 PRINT"(3) EACH UNIT OF FUEL WILL SLOW YOUR DESCENT BY 1 FOOT/SEC." 310 PRINT"(4) THE MAXIMUM THRUST IS 30 FEET/SEC"; 320 PRINT"OR 30 UNITS OF FUEL PER SECOND." 330 PRINT"(5) THE DECENT ENGINE WILL SHUTDOWN AUTOMATICALLY ON LUNAR CONTACT" 385 FOR I=1 TO 10000: NEXT I: 390 PRINT:PRINT"GOOD LUCK..." 420 PRINT:PRINT 430 FOR I=1 TO 3000: NEXT I 440 FOR I=1 TO 40:Z(I)=0:NEXT I 450 PRINT:FOR I=1 TO 24:PRINT:NEXT I 455 T=0:H=1000:V=50:F=150:Z4=1:B=0:Y2=-1:M=2 460 Y1=1:X1=40 465 FOR I=1 TO 5:PRINT:NEXT I 466 Z(Y1)=15-(H/66):IF Z(Y1)=0 THEN Z(Y1)=1 470 TAB(4):PRINT "":PRINT:Z4=Z4+1 471 PRINT "SEC";:TAB(6):PRINT "FEET";:TAB(16):PRINT "SPEED";:TAB(26):PRINT "FUEL" 472 TAB(2):PRINT T;:TAB(6):PRINT H;:TAB(18):PRINT V;:TAB(26):PRINT F 473 FOR I = 1 TO 39 474 IF I=Y1 THEN 476 475 PRINT "-";:GOTO 478 476 IF Z(I)>-1 THEN PRINT "+";:GOSUB 900 477 IF Z(I)<0 THEN PRINT ABS(Z(I)); 478 NEXT I:PRINT "" 480 IF Z(Y1)>M-1 THEN M=Z(Y1)+2 481 FOR Y=1 TO 15 482 IF Y>M THEN 498 487 PRINT "";:IF (Y1>40) THEN Y1=1 488 FOR X=1 TO 40:IF Z(X)<>Y THEN 490 489 TAB (X): PRINT "^";:B1=1 490 IF Z(X)=(Y-1) AND X=Y1 THEN GOTO 492 491 GOTO 497 492 TAB (X) 493 IF B>0 AND B<11 THEN PRINT "'"; 494 IF B>10 AND B<21 THEN PRINT "*"; 495 IF B>20 AND B<31 THEN PRINT "#"; 497 NEXT X 498 PRINT : NEXT Y 499 FOR I = 1 TO 40 500 TAB(I) 501 IF Z(I)>14 AND I=(T+1) THEN PRINT "%"; 502 IF Z(I)>14 AND I#(T+1) THEN PRINT "="; 503 IF Z(I)<1 THEN PRINT "-"; 504 IF Z(I)>0 AND Z(I)<15 THEN PRINT "="; 505 NEXT I:PRINT 506 Y1=Y1+1 507 INPUT B 510 IF B<0 THEN 650 520 IF B>30 THEN B=30 530 IF B>F THEN B=F 540 V1=V-B+5 560 F=F-B 570 H=H-(V+V1)/2 580 IF H<=0 THEN 670 590 T=T+1 600 V=V1 610 IF F>0 THEN 465 615 IF B=0 AND Y2>-1 THEN 630 620 PRINT"**** OUT OF FUEL ****":Y2=Y1 630 IF Y1>40 THEN Y1=1 631 IF Y2=0 THEN Y2=1 632 TAB (Y2): PRINT "^":Y2=Y2-1 633 IF (Z(Y1)<10) THEN GOSUB 900 635 Z(Y1)=H/66 650 B=0 660 GOTO 540 670 IF B<>0 THEN 672 671 GOSUB 910:GOTO 673 672 FOR I = 1 TO 10:PRINT:NEXT I 673 FOR I=1 TO 40:IF I=(Y2+1) THEN PRINT "#"; 674 IF I<>Y1 THEN 677 675 IF Y2=-1 AND V<>0 THEN PRINT "#"; 676 IF Y2=-1 AND V=0 THEN PRINT "^";:GOTO 677 677 PRINT "="; 678 NEXT I:PRINT 679 PRINT:TAB(8):PRINT"***** CONTACT *****":PRINT 680 H=H+(V1+V)/2 690 IF B=5 THEN 720 700 T1=V*V+H*(10-2*B) 701 O1=-1 702 O2=1 703 IF ABS(O2-O1) >1 THEN GOTO 705 704 GOTO 708 705 O1=O2 706 O2 = (O2+T1/O2)/2 707 GOTO 703 708 D=(-V+O2)/(5-B) 710 GOTO 730 720 D=H/V 730 V1=V+(5-B)*D 760 PRINT"TOUCHDOWN AT ";T+D;" SECONDS." 770 PRINT"LANDING VELOCITY= ";V1;" FEET/SEC." 780 PRINT F;" UNITS OF FUEL REMAINING." 790 IF V1<>0 THEN 810 800 PRINT"CONGRATULATIONS! A PERFECT LANDING!!" 805 PRINT"YOUR LICENSE WILL BE RENEWED.......LATER." 806 PRINT"YOUR SCORE IS ";(F*Z4) 810 IF ABS(V1)<2 THEN 840 820 PRINT"***** SORRY, BUT YOU BLEW IT!!!!" 830 PRINT"CONDOLENCES WILL BE SENT TO YOUR NEXT OF KIN." 835 PRINT"YOUR SCORE IS ";Z4 840 PRINT:PRINT:PRINT 850 INPUT "ANOTHER MISSION",A$ 860 IF A$="Y" THEN 390 870 PRINT: PRINT "CONTROL OUT.": PRINT 899 END 900 POKE 751,01:CALL 750:RETURN 910 POKE 751,10:CALL 750:RETURN 999 POKE 750,169:POKE 752,32:POKE 753,204:POKE 754,193:POKE 755,96:RETURN