Listing of file='MOONBASE' on disk='vmedia/more_games.wvd.zip'
# Sector 910, program filename = 'MOONBASE' 0010 REM MOONBASE : LOAD DC T#6,"GAMES" 0020 INPUT "DO YOU NEED INSTRUCTIONS",A$ : IF A$="NO" THEN 160 0030 PRINT "THIS IS A LUNAR LANDING SIMULATION. THE OBJECT" 0040 PRINT "IS TO LAND YOUR CRAFT SAFELY ON THE MOON'S SURFACE." 0050 PRINT "THE THRUST AND ROTATION OF THE SHIP ARE ENTERED VIA" 0060 PRINT "THE KEYBOARD FUNCTION KEYS. KEY 0 IS 0 THRUST, KEY 1" 0070 PRINT "IS 25 UNITS OF THRUST, KEY 2 IS 50 UNITS OF THRUST" 0080 PRINT "AND SO ON UP TO KEY 14(350UNITS). KEY 16 ROTATES" 0090 PRINT "THE SHIP IN A CLOCKWISE DIRECTION AT A RATE OF ONE" 0100 PRINT "DEGREE PER SECOND. KEY 17 STOPS ROTATION AND KEY" 0110 PRINT "18 ROTATES THE SHIP IN THE OPPOSITE DIRECTION." 0120 PRINT "FINALLY, KEY 15 PROVIDES A GRAPH OF FUEL USAGE PER" 0130 PRINT "UNIT TIME. SHIP BEGINS WITH ITS ENGINES FACING" 0140 PRINT "ITS DIRECTION OF TRAVEL, OR 180 DEGREES." 0150 PRINT "**************GOOD LUCK!!************************" 0160 DIM A$(15,3)64 0170 FOR I=1 TO 15 0180 A$(I,1)="* " 0190 A$(I,2)=" " 0200 CONVERT 15-I TO STR(A$(I,2),1,2),(##) 0210 NEXT I 0220 STR(A$(1,1),39,6)="VECTOR" 0230 STR(A$(2,1),22,5)="Y VEL" 0240 STR(A$(2,1),32,5)="X VEL" 0250 STR(A$(2,1),42,3)="ALT" 0260 STR(A$(2,1),50,5)="RANGE" 0270 STR(A$(6,1),51,6)="THRUST" 0280 STR(A$(6,1),58,3)="ROT" 0290 STR(A$(4,1),40,4)="FUEL" 0300 STR(A$(4,1),51,4)="TIME" 0310 STR(A$(5,1),54,1)=":" : STR(A$(1,1),24,1)=":" : STR(A$(1,1),34,1)=":" 0320 STR(A$(1,1),2,1)="^" 0330 STR(A$(1,2),30,16)="FUEL CONSUMPTION" 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 INPUT "TIMING(REALTIME=1)",T1 0440 PRINT HEX(03); 0450 H1=H 0460 KEYIN B$,470,1110 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 V1=0 THEN 750 0740 T4=(Y*5280)/V1 0750 IF INT(V0)>1 THEN 770 0760 T5=X*5280 : GOTO 780 0770 T5=(X*5280)/V0 0780 IF Y<=0 THEN 1230 0790 T2=T2+T1 0800 IF T2<15 THEN 870 0810 T2=0 0820 G2=15-INT((G1-F)/300) 0830 IF G2>=1 THEN 850 0840 G2=1 0850 STR(A$(G2,2),I1,1)="*" 0860 G1=F : I1=I1+1/2 0870 T=T+T1 0880 IF V0<>0 THEN 890 : Q=0 : GOTO 930 0890 IF (V1/V0)<>0 THEN 900 : Q=90 : GOTO 930 0900 Q=180-INT(ARCTAN(V1/V0)) 0910 IF Q<=180 THEN 930 0920 Q=Q-180 0930 CONVERT Q TO STR(A$(1,1),46,3),(###) 0940 CONVERT INT(T4/60) TO STR(A$(1,1),19,5),(#####) : CONVERT INT(T4-INT(T4/60)*60) TO STR(A$(1,1),25,2),(##) 0950 CONVERT INT(T5/60) TO STR(A$(1,1),29,5),(#####) : CONVERT INT(T5-INT(T5/60)*60) TO STR(A$(1,1),35,2),(##) 0960 CONVERT F TO STR(A$(5,1),40,5),(#####) 0970 CONVERT V1 TO STR(A$(3,1),20,8),(-####.##) 0980 CONVERT V0 TO STR(A$(3,1),30,8),(-####.##) 0990 CONVERT Y TO STR(A$(3,1),40,7),(-###.##) 1000 CONVERT X TO STR(A$(3,1),49,7),(-###.##) 1010 CONVERT INT(T/60) TO STR(A$(5,1),51,3),(###) 1020 CONVERT INT(T-INT(T/60)*60) TO STR(A$(5,1),55,2),(##) 1030 CONVERT H TO STR(A$(7,1),51,4),(####) 1040 R=R-360*INT(R/360) 1050 CONVERT R TO STR(A$(7,1),57,4),(###) 1060 PRINT HEX(01); 1070 FOR I=1 TO 15 : PRINT A$(I,J) : NEXT I 1080 IF J=1 THEN 460 1090 PRINT HEX(01); 1100 GOTO 460 1110 N=VAL(B$) 1120 IF N<>15 THEN 1140 1130 J=2 : C=1 : PRINT HEX(03); : GOTO 1070 1140 IF N>18 THEN 460 1150 IF C=0 THEN 1180 1160 PRINT HEX(03); 1170 J=1 : C=0 1180 IF N<16 THEN 1210 1190 P=N-17 1200 GOTO 460 1210 H=25*N 1220 GOTO 460 1230 IF ABS(V1)>30 THEN 1300 1240 IF ABS(V0)>10 THEN 1300 1250 IF R<80 THEN 1290 1260 IF R>100 THEN 1290 1270 PRINT "CONGRATULATIONS-SAFE LANDING AT ";X;" MILES" 1280 STOP 1290 PRINT "DANGER SHIP IS TOPPLING!!" 1300 PRINT "DANGER IMPACT-->";X;" MILES"