image of READY prompt

Wang2200.org

Listing of file='LANDER' on disk='vmedia/gamesall.wvd.zip'

# Sector 270, program filename = 'LANDER'
0010 REM WRITTEN AT SOLOWORKS-UNIVERSITY OF PITTSBURGH
0020 REM JAMES BERMAN/MODIFIED BY TBO 10/23/74
0030 SELECT PRINT 005
   : PRINT HEX(03)
0040 PRINT ,"LUNAR LANDER"
0050 PRINT "THE OBJECT IS TO LAND YOUR CRAFT SAFELY ON THE MOON'S SURFACE."
0055 PRINT "YOU CONTROL THE 'LANDER' BY:"
0056 PRINT "KEY + TO INCREASE THRUST"
0057 PRINT "KEY - TO DECREASE THRUST"
0058 PRINT "KEY S.F.'0 TO ROTATE RIGHT ONE DEGREE PER SECOND"
0059 PRINT "KEY S.F.'1 TO STOP ROTATION"
0060 PRINT "KEY S.F.'2 TO ROTATE LEFT ONE DEGREE PER SECOND"
0140 PRINT "'LANDER' BEGINS WITH ITS ENGINES FACING THE DIRECTION OF TRAVEL."
0160 PRINT "**************GOOD LUCK!!************************"
0170 DIM A$(15,3)64,B$1
0180 FOR I=1 TO 15
0190 A$(I,1)="*                                                "
0200 A$(I,2)="                                                 "
0210 CONVERT 15-I TO STR(A$(I,2),1,2),(##)
0220 NEXT I
0230 REM V1
   : STR(A$(2,1),22,5)="Y VEL"
0240 REM V0
   : STR(A$(2,1),32,5)="X VEL"
0250 REM Y
   : STR(A$(2,1),42,3)="ALT"
0260 REM X
   : STR(A$(2,1),50,5)="RANGE"
0270 REM H
   : STR(A$(7,1),51,6)="THRUST"
0280 REM R
   : STR(A$(7,1),58,3)="ROT"
0290 REM F
   : STR(A$(4,1),40,4)="FUEL"
0300 REM T
   : STR(A$(4,1),51,4)="TIME"
0310 STR(A$(5,1),54,1)=":"
0320 STR(A$(1,1),2,1)="^"
0330 STR(A$(1,2),30,16)="FUEL CONSUMPTION"
0331 STR(A$(10,1),30)="S.F.0-2 CONTROL ROTATION"
0332 STR(A$(11,1),30)="+ AND - CONTROL THRUST"
0333 STR(A$(12,1),30)="S.F.'15 SHOWS FUEL SITUATION"
0340 SELECT D
0350 SELECT PRINT 005(72)
0360 X=140*RND(1)+130
0370 Z=X
0380 STR(A$(15,1),INT(X/4.22),1)="X"
0390 DEFFNA(X)=ABS(COS(X*7.162E-02)*SIN(X*6.366E-02))
0400 Y1=70
   : L,J=1
   : I1=3
   : R=180
0410 V0=3000
   : V1,T,T2,H=0
   : G1,F=50000
0420 Y=Y1-FNA(X)
0430 T1=1
   : INPUT "TIMING(REALTIME=1)",T1
0440 PRINT HEX(03);
0450 H1=H
0460 KEYIN B$,980,990
0470 IF H*T1<F THEN 510
0480 H=F
   : F=0
0490 STR(A$(8,1),9,11)="OUT OF FUEL"
0500 GOTO 540
0510 R=R+SGN(P)*T1
0520 F=F-T1*ABS(P)
0530 F=F-H*T1
0540 B=(H*100*T1)/(23000+F*.3)*32.2*COS(R)
0550 X=X-(T1*(V0+B*T1/2))/5280
0560 V0=V0+T1*B
0570 A=(H*100*T1)/(23000+F*.3)*SIN(R)
0580 G=1.6E+05/(1000+Y)^2
0590 A2=(G-A)*32.2
0600 D=T1*(V1+A2*T1/2)/5280
0610 D1=D1+D
0620 D3=ABS(X-Z)
0630 IF ABS(D1)<5.4 THEN 700
0640 L=L+SGN(D1)
0650 IF ABS(X-Z)<270 THEN 680
0660 STR(A$(L,1),63,1)="+"
0670 GOTO 690
0680 STR(A$(L,1),ABS(INT((X-Z)/4.22)),1)="^"
0690 D1=0
0700 Y1=Y1-D
0710 V1=V1+A2*T1
0720 Y=Y1-FNA(X*57)
0730 IF Y<=0 THEN 1100
0740 T2=T2+T1
0750 IF T2<15 THEN 820
0760 T2=0
0770 G2=15-INT((G1-F)/300)
0780 IF G2>=1 THEN 800
0790 G2=1
0800 STR(A$(G2,2),I1,1)="*"
0810 G1=F
   : I1=I1+1
0820 T=T+T1
0830 CONVERT F TO STR(A$(5,1),40,5),(#####)
0840 CONVERT V1 TO STR(A$(3,1),20,8),(-####.##)
0850 CONVERT V0 TO STR(A$(3,1),30,8),(-####.##)
0860 CONVERT Y TO STR(A$(3,1),40,7),(-###.##)
0870 CONVERT X TO STR(A$(3,1),49,7),(-###.##)
0880 CONVERT INT(T/60) TO STR(A$(5,1),51,3),(###)
0890 CONVERT INT(T-INT(T/60)*60) TO STR(A$(5,1),55,2),(##)
0900 CONVERT H TO STR(A$(8,1),51,4),(####)
0910 R=R-360*INT(R/360)
0920 CONVERT R TO STR(A$(8,1),57,4),(###)
0930 PRINT HEX(01);
0940 FOR I=1 TO 15
   : PRINT A$(I,J)
   : NEXT I
0950 IF J=1 THEN 460
0960 PRINT HEX(01);
0970 GOTO 460
0980 IF B$<>"+"THEN 981
   : N=N+1
   : GOTO 982
0981 IF B$<>"-"THEN 460
   : N=N-1
0982 IF C=0THEN 984
   : PRINT HEX(03);
   : J=1
   : C=0
0984 H=25*N
   : GOTO 460
0990 IF B$<>HEX(0F)THEN 1000
   : J=2
   : C=1
   : PRINT HEX(03);
   : GOTO 940
1000 P=VAL(B$)-1
   : GOTO 460
1100 IF ABS(V1)>15 THEN 1170
1110 IF ABS(V0)>30 THEN 1170
1120 IF R<80 THEN 1160
1130 IF R>100 THEN 1160
1140 PRINT "SAFE LANDING-->";X;" MILES"
1150 STOP
1160 PRINT "DANGER SHIP IS TOPPLING!!"
1170 PRINT "DANGER IMPACT-->";X;" MILES"