5 GOTO 10 7 LOCATE8,7:PRINT""; 8 B$=INKEY$:IFB$=""THEN8ELSERETURN 10 SCREEN,0:CLS:LOCATE12,0:PRINT"SPACE SHUTTLE":LOCATE7,2:PRINT"--- STS-27 Landing ---" 20 LOCATE10,4:PRINT"ull descent" 25 LOCATE10,5:PRINT"

ractice final approach" 30 LOCATE10,6:PRINT"nstructions" 40 A$=INPUT$(1) 50 M=INSTR(" FfPpIi",A$)\2 60 IFM=0THENBEEP:GOTO40 70 ONMGOSUB680,670,690:CLS 80 LINE(0,46)-(239,47),1,BF 90 LOCATE0,6:PRINTCHR$(27)+"p";:LOCATE1,6:PRINT"mph";:LOCATE6,6:PRINT"alt";:LOCATE12,6:PRINT"da"; 95 LOCATE16,6:PRINT"dme";:LOCATE20,6:PRINT"tr"; 100 LOCATE23,6:PRINT"hdg";:LOCATE27,6:PRINT"dist";:LOCATE33,6:PRINT"vs";:LOCATE37,6:PRINT"s"; 101 LOCATE38,6:PRINT"g";:LOCATE39,6:PRINTCHR$(27)+"q"; 102 LOCATE38,7:PRINT"^"; 110 V=880:V2=V:PI=3.141592654#:RE=15:Y2=14:Y4=14:Y1=14:Y3=14:RB=18 111 X1=120:X3=120:X2=114:X4=126:YL=24:YR=24:YM=24 120 FORI=1TO9 130 A$=INKEY$ 140 IFA$=CHR$(30)THENAN=AN-1 150 IFA$=CHR$(31)THENAN=AN+1 160 IFA$=CHR$(29)THENTR=TR-1 170 IFA$=CHR$(28)THENTR=TR+1 180 IFTR<-3THENTR=-3 190 IFTR>3THENTR=3 200 IFA$="G"ORA$="g"THENG=1 210 IFA$="S"ORA$="s"THENS=1 220 IFA$="C"ORA$="c"THENS=0 230 NEXTI 240 HG=HG+TR 250 IFHG>359THENGOSUB520 260 IFHG<0THENHG=HG+360 270 RA=PI*AN/180:AC=(3.22E+06*SIN(RA)-2.5*V*V-2.5*V*V*S-2.5*V*V*G)/100000! 275 V=V+AC:VM=V*15/22 280 VG=V*SIN(PI/2-RA):IFVM<200THENSOUND4697,10 290 IFVM<180THEN420 300 DR=V*SIN(RA):AL=AL-DR:IFAL<=0THEN430 310 RA=PI*HG/180:V1=VG*SIN(RA):D1=D1+V1:V2=VG*SIN(PI/2-RA):D2=D2+V2:DM=D2/5280 320 LOCATE0,7:PRINTINT(VM);:LOCATE11,7:PRINTAN; 322 DIST=10*DM/10:LOCATE15,7:PRINTUSING"##.#";DIST;:LOCATE4,7:PRINTUSING"######";INT(AL); 324 LOCATE20,7:PRINTTR;:LOCATE22,7:PRINTHG; 330 IF D1<0THENLOCATE31,6:PRINT"W";ELSELOCATE31,6:PRINT"E"; 340 LOCATE27,7:PRINTUSING"#####";INT(ABS(D1)); 350 LOCATE32,7:PRINTINT(DR); 360 IFG=1THENLOCATE38,9:PRINT"v"; 370 IFS=1THENLOCATE37,7:PRINT"*";ELSELOCATE37,7:PRINT" "; 380 IFF=1THEN500 381 IFSW=0THEN382ELSE395 382 LINE(0,YL)-(239,YR),0 383 IF AN>42THEN391 384 IF AN<-35THEN391 385 CH=24-AN/2:YL=CH+TR:YM=CH:YR=CH-TR 386 IF YRYM+4THENYR=YM+4 388 IF YLYM+4THENYL=YL+4 390 LINE(0,YL)-(239,YR):GOTO395 391 LINE(0,YL)-(239,YR),0:GOTO395 395 IFHG=180ANDABS(D1)<100ANDSW=0THENGOSUB615 400 IF HG=180ANDABS(D1)<100THENGOSUB860 410 GOTO120 420 LOCATE2,4:PRINT"Aircraft Stalled-CRASHED!":GOTO590 430 IFDR>7THEN530 440 IFDM>0THEN540 450 IFDM<-3THEN550 460 IFABS(D1)>10THEN560 470 IFG=0THEN570 480 IFHG<179ORHG>181THEN580 490 LOCATE2,4:PRINT"Touchdown!!!";:F=1:AN=0:AL=0:DR=0:TR=0 491 FORI=1TO4:SOUND400,1:SOUND600,1:SOUND999,2:NEXTI:FORI=1TO1500:NEXTI:GOSUB1040 492 LOCATE2,4:PRINT"Parachute out!":FORI=1TO3500:NEXTI:GOSUB1040:GOTO610 500 FORI=1TO450:NEXT 510 VM=V:FORJ=1TO5000:NEXT:GOTO610 520 HG=HG-360:LOCATE3,5:PRINT" ";:RETURN 530 LOCATE2,4:PRINT"Crashed-Sink rate > 7fps";:GOTO590 540 LOCATE2,4:PRINT"Crashed short of runway":GOTO590 550 LOCATE2,4:PRINT"Attempted to land beyond runway":GOTO590 560 LOCATE2,4:PRINT"missed runway";:GOTO590 570 LOCATE2,4:PRINT"Landed gear up";:GOTO590 580 LOCATE2,4:PRINT"Ran off runway";:GOTO590 585 LOCATE2,4:PRINT"Passed runway end";:GOTO590 590 SOUND4697,100 600 GOTO600 610 LOCATE2,4:PRINT"Stopped. Welcome home!";:GOTO590 615 LINE(0,YL)-(239,YR),0 620 LINE(0,8)-(2,8):FORI=1 TO23:READX6,Y6 630 DATA20,5,44,6,50,11,47,8,58,0,68,12,65,8,71,5,81,12,91,8,97,4 632 DATA111,13,126,13,147,6,150,6,171,10,164,13,170,10,190,1 634 DATA210,11,203,13,232,3,239,7 640 LINE-(X6,Y6):NEXTI 650 LINE(55,2)-(57,3):LINE-(59,2) 655 LINE(0,13)-(239,13) 660 LINE(188,3)-(191,4):LINE-(193,3):SW=1:RETURN 670 AN=0:D1=0:AL=10000:HG=180:D2=52800!:RETURN 680 AN=15:D1=-5280:AL=30000:HG=0:RETURN 690 CLS:PRINTTAB(8)"Land the Space Shuttle." 692 PRINT"Your craft is a glider and has no power." 694 PRINT"To land safely you must meet the following conditions:" 696 GOSUB7:CLS:PRINT 710 PRINT" 1. Heading (HG) must be 180 degrees" 720 PRINT" 2. Distance (Dist.) from runway" 730 PRINT" centerline must be less than 10" 740 PRINT" 3. Gear must be down" 750 PRINT" 4. Vertical speed (VSI) must be less than 7 fps" 760 GOSUB7 770 CLS:PRINT"Stall speed is 180. Alarm sounds if" 775 PRINT"airspeed drops below 200." 780 PRINT"You may take any course to runway." 790 PRINT"Landing area will come into view when you are on course." 800 PRINTTAB(15)"Good luck!":GOSUB7 820 GOTO10 860 DST=DM 870 IFDST>20THENGOSUB1000:GOSUB940:GOSUB990:RETURN 880 GOSUB1000:IFDST<0THENGOSUB1080:GOTO897 890 YB=9*LOG(DST):IFYB>24THENYB=24 895 IF YB<-8THENYB=-8 896 GOTO900 897 IFE<0THEN585 898 IFE<1THENXC=(X4-X3)/10:YC=(Y4-Y1)/10:X1=X1-XC:X3=X3+XC:Y1=Y1+YC:Y3=Y1 900 Y2=38-YB:Y4=38-YB 910 GOSUB940:X2=18+XB:X4=223-XB:GOSUB990:GOSUB1020:RETURNELSERETURN 940 X2=114:X4=126 950 H=AL*2:XB=10*LOG(H):RETURN 960 RETURN 990 LINE(X1,Y1)-(X2,Y2):LINE-(X4,Y4):LINE-(X3,Y3):LINE-(X1,Y1):RETURN 1000 LINE(X1,Y1)-(X2,Y2),0:LINE-(X4,Y4),0:LINE-(X3,Y3),0 1002 LINE-(X1,Y1),0:LINE(120,7)-(120,Y4),0:RETURN 1020 IFDM>5THENFORK=RETOY4STEP2:PSET(120,K):NEXTK:RETURN 1030 IFDM>.5ANDDM<1THEN1035 1031 IFDM<.5THEN1040ELSE1050 1035 LINE(120,Y3)-(120,Y4):FORK=Y3+1TOY4-1STEP7:LINE(120,K)-(120,K+1),0:NEXTK:RETURNELSERETURN 1040 LINE(120,Y3)-(120,Y4):FORK=RE+1TOY4-1STEP9:LINE(120,K)-(120,K+1),0:NEXTK:RE=RE+3:IFRE>RB+5THENRE=Y3:RETURNELSERETURN 1050 ONDSTGOSUB1060,1060,1070,1070:RETURN 1060 FA=5-INT(DST):LINE(120,Y3)-(120,Y4):FORK=RE+1TOY4-1STEPFA+2:PRESET(120,K):PRESET(120,K+1):NEXTK:RE=RE+1 1065 IFRE>RB+FATHENRE=Y3:RETURNELSERETURN 1070 FA=5-INT(DST):LINE(120,Y3)-(120,Y4):FORK=RE+1TOY4-1STEPFA+1:PRESET(120,K):NEXTK:RE=RE+1:IFRE>RB+FATHENRE=Y3:RETURNELSERETURN 1080 LOCATE1,2:PRINT"over runway" 1090 E=3+DST:LOCATE30,2:PRINT"end:";:LOCATE35,2:PRINTUSING"#.##";E;:RETURN 2000 REM Revision of SPSHTL.LEW (71706,1255) by Steve Sagman (72456,3325) 2010 REM to add graphic display. 2020 REM Requires LINE.CO from XA7. 2030 REM For further instructions, see SHTLDO.LEW in XA3.