1 REM SHTL27.100 5 GOTO 10 7 PRINT@288,""; 8 B$=INKEY$:IFB$=""THEN8ELSERETURN 10 SCREEN,0:CLS:PRINT@12,"SPACE SHUTTLE":PRINT@87,"--- STS-27 Landing ---" 20 PRINT@170,"ull descent" 25 PRINT@210,"

ractice final approach" 30 PRINT@250,"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 PRINT@240,CHR$(27)+"p";:PRINT@241,"mph";:PRINT@246,"alt";:PRINT@252,"da";:PRINT@256,"dme";:PRINT@260,"tr"; 100 PRINT@263,"hdg";:PRINT@267,"dist";:PRINT@273,"vs";:PRINT@277,"s";:PRINT@278,"g";:PRINT@279,CHR$(27)+"q"; 102 PRINT@318,"^"; 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=1TO12 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 PRINT@280,INT(VM);:PRINT@291,AN; 322 DIST=10*DM/10:PRINT@295,USING"##.#";DIST;:PRINT@284,USING"######";INT(AL); 324 PRINT@300,TR;:PRINT@302,HG; 330 IF D1<0THENPRINT@271,"W";ELSEPRINT@271,"E"; 340 PRINT@307,USING"#####";INT(ABS(D1)); 350 PRINT@312,INT(DR); 360 IFG=1THENPRINT@318,"v"; 370 IFS=1THENPRINT@317,"*";ELSEPRINT@317," "; 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 PRINT@162,"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 PRINT@162,"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 PRINT@162,"Parachute out!":FORI=1TO3500:NEXTI:GOSUB1040 500 FORI=1TO450:NEXTI 510 VM=V:FORJ=1TO5000:NEXT:GOTO610 520 HG=HG-360:PRINT@203," ";:RETURN 530 PRINT@162,"Crashed-Sink rate > 7fps";:GOTO590 540 PRINT@162,"Crashed short of runway":GOTO590 550 PRINT@162,"Attempted to land beyond runway":GOTO590 560 PRINT@162,"missed runway";:GOTO590 570 PRINT@162,"Landed gear up";:GOTO590 580 PRINT@162,"Ran off runway";:GOTO590 585 PRINT@162,"Passed runway end";:GOTO590 590 SOUND4697,100 600 GOTO600 610 PRINT@162,"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=1: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 PRINT@81,"over runway" 1090 E=3+DST:PRINT@110,"end:";:PRINT@115,USING"#.##";E;:RETURN 2000 REM Revision of SPSHTL.LEW (71706,1255) by Steve Sagman (72456,3325) 2010 REM to add graphic display. 2020 REM For further instructions, see SHTLDO.LEW in XA3. 2030 REM Special thanks to Sysop Dave Thomas for his help in 2040 REM translating NEC82 Basic to M100 Basic.