1 'SHTL27.200 Modified by Curtis Karnow 73047,3120 5 GOTO 10 7 PRINT@488,""; 8 B$=INKEY$:IFB$=""THEN8ELSERETURN 10 SCREEN,0:CLS:PRINT@12,"SPACE SHUTTLE" 20 PRINT@170,"ull descent":PRINT@250,"

ractice final approach":PRINT@330,"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 85 LINE(96,64)-(146,120),1,BF 90 PRINT@350,"Speed";:PRINT@281,"Altitude";:PRINT@521,"Desc";:PRINT@561,"angle";:PRINT@310,"DME";:PRINT@372,"Trn";:PRINT@385,"Trn"; 100 PRINT@613,"Rnwy Dev:";:PRINT@441,"VSI:";:PRINT@510,"Spoilers";:PRINT@550,"Retracted";:PRINT@430,"Gear:up"; 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<-4THENTR=-4 190 IFTR>4THENTR=4 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 305 PRINT@622,INT(ABS(D1)); 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@356,INT(VM);:PRINT@565,AN; 322 DIST=10*DM/10:PRINT@315,USING"##.#";DIST;:PRINT@321,USING"###,###";INT(AL); 330 IF D1<0 THEN PRINT@629,"UR-W";ELSE PRINT@629,"UR-E"; 340 GOSUB 1200:GOSUB 1400:PRINT@298,HG; 350 PRINT@446,INT(DR); 360 IFG=1THENPRINT@435,"Down"; 370 IFS=1THENPRINT@550,"Deployed ";ELSEPRINT@550,"Retracted"; 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:RETURN'left out:PRINT@203," ";(came before rtn) 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 692 PRINT" To land:" 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" 770 PRINT"Stall speed is 180. Alarm sounds if" 775 PRINT"airspeed drops below 200.":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 1200 PRINT@414,CHR$(155);:PRINT@425,CHR$(154); 1210 PRINT@460,CHR$(133);:PRINT@302,CHR$(166); 1220 IF TR<0 THEN PRINT@412,ABS(TR);:PRINT@426," "; 1230 IF TR>0 THEN PRINT@426,TR;:PRINT@412," "; 1240 IF TR=0 THEN PRINT@426," ";:PRINT@412," "; 1250 RETURN 1400 '*** HSI ROUTINE ** 1401 Z$=CHR$(255):GOSUB1710:GOSUB1720:GOSUB1730:GOSUB1740:GOSUB1750:GOSUB1760 1410 Z$=CHR$(124)'runway indicia 1420 IF DIST=>0 GOTO 1500 ELSE GOTO 1600 1500 IF HG=>90 AND HG<270 THEN RN=1'rn is ahead 1510 IF HG=>270 OR HG<90 THEN RN=0'rn is behind 1520 IF RN=1 AND ABS(D1)<100 THEN GOTO 1700 1530 IF RN=0 AND ABS(D1)<100 THEN GOTO 1720 1540 IF (D1=>0 AND RN=1) THEN GOTO 1730 'top right 1550 IF (D1<0 AND RN=1)THENGOTO 1740 'top left 1560 IF (D1=>0 AND RN=0)THENGOTO 1760 'bott.left 1570 IF (D1<0 AND RN=0) THENGOTO 1750 'bott.right 1580 ' 1600 IF HG=>90 AND HG<270 THEN RN=0'rn is behind 1610 IF HG=>270 OR HG<90 THEN RN=1'rn is ahead 1620 IF RN=1 AND ABS(D1)<100 THEN GOTO 1720 1630 IF RN=0 AND ABS(D1)<100 THEN GOTO 1700 1640 IF (D1=>0 AND RN=1) THENGOTO 1740' top left 1650 IF (D1<0 AND RN=1)THENGOTO 1730'top right 1660 IF (D1=>0 AND RN=0)THENGOTO 1750'bot.right 1670 IF (D1<0 AND RN=0) THENGOTO 1760'bot.left 1680 ' 1700 REM Print HSI 1710 PRINT@380,Z$;:RETURN'ahead 1720 PRINT@540,Z$;:RETURN'behind 1730 PRINT@422,Z$;:RETURN'top right 1740 PRINT@418,Z$;:RETURN'top left 1750 PRINT@502,Z$;:RETURN'bott right 1760 PRINT@498,Z$;:RETURN'bott left 1800 END