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"