Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LUNAR1

LUNAR1.m

Go to the documentation of this file.
  1. LUNAR1 ;PROGRAM MOON
  1. 100 ;MAIN DRIVER
  1. S %LN=1 X %TC
  1. W *7,"ATTENTION APOLLO!",!
  1. W "FAILURE IN MAIN COMPUTER DESCENT MODULE...",!
  1. W "MODULE WILL HAVE TO BE LANDED UNDER MANUAL CONTROL",!
  1. W "YOU MAY ADJUST THE RATE OF BURN BETWEEN 0 AND 100 kg/s",!
  1. W "AND THE DIRECTIONAL BURN BETWEEN -100 AND +100 kg/s",!
  1. W "POSITIVE BURNS MAKE THE MODULE TRAVEL TO THE RIGHT",!,*7
  1. D 300 R !,"DO YOU WANT TO TRY AGAIN ? ",A S PA=0 S:A="Y" PA=1
  1. Q
  1. 300 ;DESCENT STAGE
  1. R !,"TYPE 'RETURN' WHEN YOU ARE READY",A W !,"OK",*7 H 1 D 600
  1. S H=20000,X=34,V=1000,F=4800,T=0,G=16400,M=6000
  1. S CR=0,D=0,DI="->",XV=200,%LN=1,%CO=1 X %TP
  1. W "TIME(s) HEIGHT(m) VELOCITY(m/s) FUEL(kg) BURN(kg/s) DIRECTION (kg/s)",!
  1. 314 W ?2,T,?8,H,?21,V," + ",XV,DI,?40,F
  1. R ?50,"?",B:5,?57,"?",BH:5," "
  1. D:(B>100)!(B<0) 500 S BI=BH D:BH>100!(BH<0) 2000
  1. F K=1:1:5 D 400,800 G:+CR=1 327 G:H'>0 321 G:F'>0 371
  1. D 700 S T=T+5 G 314
  1. 321 S H=-1000 D 700 W *7,!!,"TOUCHDOWN AT ",T+K," seconds",!,"LANDING VELOCITY ",V,"m/s",!
  1. W "HORIZONTAL ",XV,"m/s",!,"FUEL ",F,"kg",!
  1. G:(V>8)!(XV>2) 325 W *7,*7,*7,"CONGRATULATIONS ON A SAFE LANDING !",! Q
  1. 325 G:V>20 327 W "WOULD YOU PLEASE CLEAN BUZZ ALDRIN OFF THE WALLS!",! Q
  1. 327 W "YOU HAVE ACHEIVED IMMORTALITY - THEY ARE GOING TO NAME THE CRATER AFTER YOU !",! Q
  1. 371 S %LN=1,%CO=1 X %TP W "TIME(s) HEIGHT(m) VELOCITY(m/s) ",?50,"** OUT OF FUEL ***",!,*7,*7
  1. 381 F J=1:1:5 S B=0 D 400,800 G:+CR=1 327 D 700 G:H'>0 321
  1. S T=T+5,%LN=1,%CO=78 X %TP W ! W ?2,T,?8,H,?21,V," + ",XV,DI G 381
  1. Q
  1. 400 S B=B-.25+($P($H,",",2)#6/10) I B<0 S B=0
  1. I B>F S B=F
  1. S H=H-V
  1. S C=H\1000+100
  1. S V=V+$J(G/(C*C)-(P*B/M),0,2)
  1. S M=M-B,F=F-B
  1. Q
  1. 500 ;ILLEGAL BURN
  1. S:B<0 B=0 S:B>100 B=100
  1. Q
  1. 600 ;DISPLAY BACKGROUND
  1. S %LN=1 X %TC
  1. S NO=1
  1. S %LN=24 X %TC
  1. F Z=1:1:80 W "_"
  1. F Y=1:1:10 I $N(^MON(+NO,+Y,+-1))>0 F X=34:1:109 I $D(^(+X)) S %LN=25-Y,%CO=X-31 X %TP W ^(+X)
  1. S Y=38,X=34 X $P($T(720)," ",2,99) S W=X,Z=38
  1. Q
  1. 700 ;DISPLAY LUNAR MODULE
  1. S Y=54-(H\1000) S:Y>55 Y=55 S:Y<38 Y=38 I Y=Z,X=W G 725
  1. S %LN=Z-33,%CO=W-30 X %TP W " " S %LN=Z-32,%CO=W-31 X %TP W " " S %LN=Z-31,%CO=W-31 X %TP W " "
  1. 720 S %LN=Y-33,%CO=X-30 X %TP W "_" S %LN=Y-32,%CO=X-31 X %TP W "(#)" S %LN=Y-31,%CO=X-31 X %TP W "/-\"
  1. 725 S Z=Y,W=X S %LN=1,%CO=1 X %TP W !
  1. Q
  1. 800 I BI>F S BH=$J(BH/BI*F,0,2),BI=F
  1. S XV=XV+$J(P-100*BH/M+($P($H,",",2)#5/3)-.5,0,2) S DI="->" S:XV<0 DI="<-" S M=M-BI,F=F-BI
  1. S D=D+XV,X=D\1000+34,X2=X-34 S:X<34 X=34 S:X>109 X=109
  1. ;Q:H>5000
  1. I H<0 S H=0
  1. I $D(^MON(NO,H\1000+1,X+1)) D 900
  1. Q
  1. 900 S %LN=Y-31,%CO=X-31 X %TP W "\M/"
  1. S %LN=%LN-1 X %TP W "<@>"
  1. S %LN=%LN-1 X %TP W "/W\"
  1. S %LN=1,%CO=1 X %TP,%TCL
  1. S %LN=2 X %TP,%TCL
  1. W *7,*7,*7,!!,"CRASH LANDING ON MOON...NO SURVIVORS",!!
  1. S H=0,CR=1
  1. Q
  1. 2000 ;DIRECTIONAL BURN CORRECTION
  1. S:BH<0 BI=-BI S:BH>100 BH=100,BI=100 S:BH<-100 BI=100,BH=-100
  1. Q