X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Fbasic%2FROCKET.BA;fp=sw%2Fsrc%2Fbasic%2FROCKET.BA;h=cb130afd87c50b99c78a79601f6622182aa218d5;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/basic/ROCKET.BA b/sw/src/basic/ROCKET.BA new file mode 100644 index 0000000..cb130af --- /dev/null +++ b/sw/src/basic/ROCKET.BA @@ -0,0 +1,39 @@ +2 PRINT "THIS IS A COMPUTER SIMULATION OF AN APOLLO LUNAR" +3 PRINT "LANDING CAPSULE." \ PRINT \ PRINT +4 PRINT "THE ON-BOARD COMPUTER HAS FAILED (IT WASN'T MADE BY" +5 PRINT "NCR) SO YOU HAVE TO LAND THE CAPSULE MANUALLY" +6 PRINT \ PRINT "SET BURN RATE OF RETRO ROCKETS TO ANY VALUE BETWEEN" +7 PRINT "0 (FREE FALL) AND 200 (MAXIMUM BURN) POUNDS PER SECOND" +8 PRINT "SET NEW BURN RATE EVERY 10 SECONDS." \ PRINT +9 PRINT "CAPSULE WEIGHT 32,500 LBS; FUEL WEIGHT 16,500 LBS" +10 PRINT \ PRINT \ PRINT "GOOD LUCK!!!" +11 L=0 +13 PRINT \ PRINT "SEC","MI + FT","MPH","LB FUEL","BURN RATE" \ PRINT +15 A=120 \ V=1 \ M=33000 \ N=16500 \ G=1.00000E-03 \ Z=1.8 +21 PRINT L,INT(A);INT(5280*(A-INT(A))),3600*V,M-N, \ INPUT K \ T=10 +31 IF M-N<1.00000E-03 THEN 41 \ IF T<1.00000E-03 THEN 21 +32 S=T \ IF M>=N+S*K THEN 35 +33 S=(M-N)/K +35 GOSUB 91 \ IF I<=0 THEN 71 \ IF V<=0 THEN 38 \ IF J<0 THEN 81 +38 GOSUB 61 \ GO TO 31 +41 PRINT "FUEL OUT AT";L;"SEC"\S=(-V+SQR(V*V+2*A*G))/G\V=V+G*S\L=L+S +51 W=3600*V \ PRINT "ON MOON AT";L;"SEC - IMPAACT VELOCITY";W;"MPH" +52 IF W>1.2 THEN 53 \ PRINT "PERFECT LANDING! (LUCKY)" \ GO TO 96 +53 IF W>10 THEN 56 \ PRINT "GOOD LANDING (COULD BE BETTER)" \ GO TO 96 +56 IF W>60 THEN 58 \ PRINT "CRAGT DAMAGE.....YOU'RE STRANDED HERE UNTIL" +57 PRINT "A RESCUE PARTY ARRIVES. HOPE YOU HAVE ENOUGH OXYGEN!" \ GO TO 96 +58 PRINT "SORRY, BUT THERE WERE NO SURVIVORS...YOU BLEW IT!" +59 PRINT "IN FACT, YOU BLASTED A NEW LUNAR CRATER";W*2777;"FT DEEP" +60 GO TO 96 +61 L=L+S \ T=T-S \ M=M-S*K \ A=I \ V=J \ RETURN +71 IF S<5.00000E-03 THEN 51 \ D=V+SQR(V*V+2*A*(G-Z*K/M)) \ S=2*A/D +73 GOSUB 91 \ GOSUB 61 \ GO TO 71 +81 W=(1-M*G/(Z*K))/2 \ S=M*V/(Z*K*(W+SQR(W*W+Y/Z)))+.05 \ GOSUB 91 +83 IF I<=0 THEN 71 \ GOSUB 61 \ IF J>0 THEN 31 \ IF Y>0 THEN 81 \ GO TO 31 +91 Q=S*K/M \ J=V+G*S+Z*(-Q-Q*Q/2-Q^3/3-Q^4/4-Q^5/5) +94 I=A-G*S*S/2-V*S+Z*S*(Q/2+Q^2/6+Q^3/12+Q^4/20+Q^5/30) +95 RETURN +96 PRINT \ PRINT \ PRINT \ PRINT "TRY AGAIN??"; +97 INPUT A$ +98 IF A$="Y" THEN 6 +99 END