image of READY prompt

Wang2200.org

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"