1 REM PROGRAM NAME JETSET 2 REM IFR FLITE SIMULATOR, BOEING 747 3 REM CREATED 6-28-81 BY GENE SZYMANSKI 4 REM REVISED 2-28-82 5 KEY OFF : DEF SEG=&H40 : POKE &H17,PEEK(&H17) OR 96 9 REM CONVERTED TO IBM PC BASIC ON 10-30-82 45 REM VOR STATION FREQS TABLE 46 DIM VF(15) 47 VF(0)=115.9 : VF(1)=113.8 : VF(2)=112.7 48 VF(3)=117.7 : VF(4)=117.8 : VF(5)=112.2 49 VF(6)=117.4 : VF(7)=115.5 : VF(8)=116.4 50 VF(9)=113.6 : VF(10)=116.9 : VF(11)=117! 51 VF(12)=112.3 : VF(13)=117.9 : VF(14)=115.7 52 VF(15)=112.8 62 REM ILS CONSTANTS FOR AIRPORTS 63 DIM VG(15,1) 64 VG(0,0)=238 : VG(0,1)=28 66 VG(2,0)=240 : VG(2,1)=30 69 VG(5,0)=90 : VG(5,1)=217 71 VG(7,0)=299 : VG(7,1)=164 72 VG(8,0)=166 : VG(8,1)=42 79 VG(15,0)=341 : VG(15,1)=75 100 REM VOR STATION COORDINATES TABLE 101 DIM VP(15,1) 102 VP(0,0)=40.633 : VP(0,1)=73.773 103 VP(1,0)=40.202 : VP(1,1)=74.495 104 VP(2,0)=42.358 : VP(2,1)=70.99301 105 VP(3,0)=41.282 : VP(3,1)=70.027 106 VP(4,0)=42.74301 : VP(4,1)=73.802 107 VP(5,0)=46.41201 : VP(5,1)=84.315 108 VP(6,0)=38.35 : VP(6,1)=81.77001 109 VP(7,0)=40.917 : VP(7,1)=77.99301 110 VP(8,0)=42.928 : VP(8,1)=78.64701 111 VP(9,0)=41.358 : VP(9,1)=82.162 112 VP(10,0)=42.96701 : VP(10,1)=83.74201 113 VP(11,0)=44.555 : VP(11,1)=88.19501 114 VP(12,0)=41.547 : VP(12,1)=88.318 115 VP(13,0)=39.495 : VP(13,1)=76.97801 116 VP(14,0)=42.048 : VP(14,1)=83.458 117 VP(15,0)=39.637 : VP(15,1)=75.303 155 DATA FUEL,LBS,%,VHF,MHZ,THRUST,MAX,IDLE,REV 160 DATA PITCH," +"," -",DEG,FLAPS,UP,DWN,WHEELS,UP,MID,DOWN 165 DATA COMPASS,AIRSPEED,KTS," VERT",SPEED,FPM 170 DATA ALTITUDE,FEET,CLOCK 10000 REM BEGIN TAKEOFF MODULE HERE 10020 CLS : CLEAR ,,1000: RANDOMIZE (VAL(MID$(TIME$,7,2))*10) 10025 KR=57.2958 10030 DIM XM(13),WM(13) 10031 DIM P$(31) 10035 DATA 37,35,32,30,27,25,22,20,17,15,12,10,7,5 10040 DATA 6,11,16,21,26,31,36,41,46,51,56,61,66,71 10041 FOR I=0 TO 28:READ P$(I):NEXT 10045 FOR I=0 TO 13:READ XM(I):NEXT 10050 FOR I=0 TO 13:READ WM(I):NEXT 10055 M$(1)="_":M$(2)="_":M$(3)="_" 10060 DIM XE(13),WE(13) 10065 K1=29:K2=23 10070 FOR I=0 TO 13 10075 XE(I)=K1:WE(I)=K2 10080 K1=K1-2:K2=K2+4 10085 NEXT I 10090 IO=40 10095 RN=RND(0) 10100 RS=1:IF RN<.5 THEN RS=-1 10105 W1=75:IF RS=-1 THEN W1=255 10110 W2=INT(20*RND(1)+1) :W3=RS*W2 10115 DIM XL(14),XR(14) 10120 J=31:K=49 10125 FOR I=0 TO 14 10130 XL(I)=J:XR(I)=K 10135 J=J-2:K=K+2 10140 NEXT I 10145 DATA FUEL,LBS,%,VHF,MHZ,THRUST,MAX,IDLE,REV 10150 DATA PITCH," +"," -",DEG,FLAPS,UP,DOWN,WHEELS,UP,MID,DOWN 10155 DATA COMPASS,AIRSPEED,KTS," VERT",SPEED,FPM 10160 DATA ALTITUDE,FEET,CLOCK,BRAKE,SET,REL 10170 FOR I=0 TO 31:READ P$(I):NEXT I 10175 DIM S$(25) 10180 FOR I=1 TO 25:S$(I)=SPACE$(I):NEXT 10185 FOR I=0 TO 9:F(I)=0:NEXT 10190 REM INIT VARIABLES FOR TAKEOFF MODE 10195 FU=200000!:FP=0:CC=75:ZZ=0:RC=0:AL=0 10200 MZ=77:TR=6:FL=2:FA=0:WH=13:IX=40:HY=9:BR=11:BK=11 10205 AB=0 10215 LOCATE 9,18:PRINT"UNITED 312 CLEARED AS FILED" 10217 PRINT:PRINT 10218 PRINT" SURFACE WINDS VARIABLE, GUSTING TO 15." 10219 PRINT" MINIMUM CEILING CONDITIONS ARE IN EFFECT." 10230 PRINT" SKY CONDITIONS AT 20,000 SCATTERED." 10235 PRINT" AT 30,000 BROKEN." 10240 PRINT:PRINT 10245 PRINT"UPON TAKEOFF, MAINTAIN HEADING 075 TO 3000, THEN PROCEED AS FILED." 10248 PRINT:PRINT:PRINT" STAND BY FOR TAKEOFF CLEARANCE" 10255 TQ=7000:GOSUB 11535 10260 CLS 10265 LOCATE 11,18:PRINT"UNITED 312":PRINT:PRINT 10270 PRINT"YOU ARE CLEARED FOR TAKEOFF AT 0800 HOURS" 10275 TQ=3000:GOSUB 11535 10280 CLS 10285 TIME$="07:59:00":CLS 10290 TV$=TIME$:GOSUB 11555 :TL=TD 10295 GOSUB 10330 10300 GOSUB 10410 10305 GOSUB 10480 10310 PRINT "";:GOSUB 10615 10315 K$=INKEY$:IF LEN(K$)=0 GOTO 10325 10320 GOSUB 10790 10325 GOTO 10945 10330 REM DISPLAY PANEL HEADERS ONLY 10335 LOCATE 1,4:PRINT P$(0);S$(4);P$(5);S$(3);P$(9);S$(3);S$(6);S$(3);P$(20) 10340 LOCATE 11,60:PRINT P$(13);S$(3);P$(16);S$(2);P$(29) 10345 LOCATE 12,62:PRINT P$(14);S$(6);P$(14);S$(6);P$(30) 10350 LOCATE 14,62:PRINT P$(15);S$(4);P$(15);S$(4);P$(31) 10352 IF F(9)=1 GOTO 10405 10355 LOCATE 2,14:PRINT P$(6);S$(6);P$(10);S$(6) 10360 LOCATE 2,69:PRINT P$(28) 10365 LOCATE 3,2:PRINT P$(1);S$(4);P$(2);S$(21);S$(3);S$(13);P$(23) 10370 LOCATE 4,23:PRINT P$(11);S$(13);P$(21);S$(2);P$(24);S$(2);P$(26) 10375 LOCATE 5,1:PRINT P$(3) 10380 LOCATE 6,40:PRINT P$(22);S$(6);P$(25);S$(5);P$(27) 10385 LOCATE 7,1:PRINT P$(4);S$(10);P$(7);S$(3);P$(12);S$(7) 10390 LOCATE 8,14:PRINT P$(8) 10395 FOR Y=2 TO 8:LOCATE Y,13:PRINT CHR$(196):NEXT 10400 FOR Y=2 TO 4:LOCATE Y,22:PRINT CHR$(196):NEXT 10405 RETURN 10410 REM DISPLAY HORIZON LINE 10415 IF F(9)=0 GOTO 10430 10420 LOCATE 10,1:PRINT SPACE$(80); 10425 IF HY=20 GOTO 10440 10430 LOCATE (HY+1),1:PRINT STRING$(80,"_") 10435 RETURN 10440 OH=9:HY=10 10445 FOR I=HY TO 22 10450 LOCATE (OH+1),1:PRINT SPACE$(80); 10455 LOCATE (I+1),1:PRINT STRING$(80,"_"); 10460 OH=I 10465 NEXT I 10470 LOCATE 24,(IO+1):PRINT" "; 10475 RETURN 10480 REM DISPLAY RUNWAY 10485 IF F(4)=1 GOTO 10525 10490 S=10:X=29 10495 FOR Y=11 TO 23 10500 LOCATE Y,(X+1):PRINT".";SPACE$(S);" ";SPACE$(S);"."; 10505 X=X-2:S=S+2 10510 NEXT 10515 S$=S$(13) 10520 RETURN 10525 REM PRINTS RUNWAY GRAPHICS 10530 IF N>3 GOTO 10600 10535 LOCATE (OY+1),(OX+1):PRINT SPACE$(WM); 10540 LOCATE (NY+1),(NX+1):PRINT MK$; 10545 OY=NY:OX=NX 10550 WM=FW 10555 RETURN 10560 REM ENTRY WHEN SHIP IN FINAL ZONE 10565 LOCATE (OY+1),(OX+1):PRINT SPACE$(WM):IF F(9)=1 THEN RETURN 10570 FOR I=11 TO (NY-1+1) 10575 LOCATE I,(XE(J)+1):PRINT SPACE$(WE(J)) 10580 NEXT I 10585 IF N>4 THEN RETURN 10590 LOCATE (NY+1),(NX+1):PRINT MK$; 10595 RETURN 10600 IF F(2)=1 GOTO 10560 ELSE F(2)=1 10605 FOR I=11 TO 14:LOCATE I,60:PRINT SPACE$(21):NEXT 10610 GOTO 10560 10615 REM DISPLAY INSTRUMENT READINGS 10620 YP=1:XP=0:F$="######":V1=FU:GOSUB 11600 10625 YP=1:XP=7:F$="###":V1=FP:GOSUB 11600 10630 YP=1:XP=39:V1=CC:GOSUB 11600 10635 YP=4:XP=39:V1=ZZ:GOSUB 11600 10640 YP=4:XP=46:F$="######":V1=RC:GOSUB 11600 10645 YP=4:XP=55:F$="##,###":V1=AL:GOSUB 11600 10650 YP=5:XP=0:F$="###":V1=MZ:GOSUB 11600 10655 REM DISPLAY THRUST 10660 FOR I=2 TO 8 10665 LOCATE I,12:COLOR 0,7:PRINT" " 10670 NEXT 10675 LOCATE (TR+1),12:PRINT">"; 10680 REM DISPLAY PITCH 10685 FOR I=2 TO 4:LOCATE I,21:COLOR 0,7:PRINT" ":NEXT 10690 LOCATE (FL+1),21:PRINT">" 10695 F$="+###" 10700 YP=5:XP=20:V1=FA:GOSUB 11600 10705 REM DISPLAY FLAPS 10710 IF F(2)=1 GOTO 10760 10715 FOR I=12 TO 14:LOCATE I,60:COLOR 0,7:PRINT" ":NEXT 10720 LOCATE (BR+1),60:PRINT">" 10725 REM WHEELS 10730 FOR I=12 TO 14:LOCATE I,68:COLOR 0,7:PRINT" ":NEXT 10735 LOCATE (WH+1),68:PRINT">" 10740 REM BRAKES 10745 FOR I=12 TO 14:LOCATE I,76:COLOR 0,7:PRINT" ":NEXT 10750 LOCATE (BK+1),76:PRINT">" 10755 COLOR 7,0 10760 REM DISPLAY RUNWAY ALIGNMENT INDEX 10765 IF F(9)=1 THEN RETURN 10770 LOCATE 24,(IO+1):PRINT" "; 10775 LOCATE 24,(IX+1):PRINT CHR$(24); 10780 IO=IX 10785 RETURN 10790 REM KEY POLL SUBRTN 10795 IF K$="F" THEN KK=1:GOTO 10820 10800 IF K$="," OR K$="." THEN KK=2:GOTO 10820 10805 IF K$="B" THEN KK=3:GOTO 10820 10810 IF K$="8" OR K$="2" THEN KK=4:GOTO 10820 10815 IF K$="L" THEN KK=5:GOTO 10820 10817 IF K$="W" THEN KK=6:GOTO 10820 10818 IF K$="S" THEN KK=7:GOTO 10820 10820 ON KK GOSUB 10830,10845,10865,10880,10925,10941,10826 10825 RETURN 10826 REM THRUST KEY 10827 IF F(7)=1 AND BR=11 THEN TR=4 10829 RETURN 10830 REM THRUST KEY (INCREASE) 10831 IF F(7)=1 THEN RETURN 10835 IF F(0)=0 THEN RETURN 10840 F(1)=1:TR=1:RETURN 10845 REM RUDDER KEYS 10846 IF F(7)=1 THEN RETURN 10850 IF ZZ<=50 THEN RETURN 10855 IF K$="," THEN CC=CC-1 ELSE CC=CC+1 10860 RETURN 10865 REM BRAKES 10870 IF F(0)=1 THEN RETURN 10875 F(0)=1:BK=13:RETURN 10880 REM PITCH 10881 IF F(7)=1 THEN RETURN 10885 IF ZZ<=50 THEN RETURN 10890 FD=-10:IF K$=CHR$(50) THEN FD=10 10895 FA=FA+FD 10900 IF FA>60 THEN FA=60 10905 IF FA<-60 THEN FA=-60 10910 IF FA>0 THEN FL=1:RETURN 10915 IF FA=0 THEN FL=2:RETURN 10920 FL=3:RETURN 10925 REM FLAPS 10926 IF F(7)=1 AND WH=11 THEN BR=11:RETURN 10930 IF F(3)=1 THEN RETURN 10935 IF F(3)=0 THEN F(3)=1:BR=13: RETURN 10940 RETURN 10941 REM WHEELS 10942 IF F(7)=1 THEN WH=11 10944 RETURN 10945 REM SITUATION UPDATE ROUTINE 10950 TV$=TIME$:GOSUB 11555:TJ=TD-TL:TL=TD:LOCATE 1,67 :PRINT TV$ 10955 IF F(9)=1 GOTO 12000 10960 IF F(0)=1 GOTO 10970 10965 GOSUB 11130:GOTO 10310 10970 IF F(4)=1 GOTO 10990 10975 F(4)=1 10980 XX=0:YY=0 10985 TX=TD:V0=0:N=1:OY=23:OX=5:WM=71 10990 REM 10995 A=(118-18*TR)*.04028 11000 GOSUB 11190 11005 IF AL>0 GOTO 11060 11010 IF YY>10500 OR ABS(XX)>100 GOTO 11390 11015 IF FA<=0 GOTO 11100 11020 IF ZZ<150 GOTO 11385 11025 IF FA>10 GOTO 11385 11030 IF F(3)=0 GOTO 11100 11035 AL=25 11040 GOSUB 11130 11045 GOSUB 11150 11050 GOSUB 11300 11055 GOTO 10305 11060 F(9)=1 11065 GOSUB 11130 11070 GOSUB 11150 11075 GOSUB 11170 11080 FOR I=11 TO 23:LOCATE I,1:PRINT SPACE$(80);:NEXT 11085 HY=20 11090 GOSUB 10410 11095 GOTO 11115 11100 GOSUB 11130 11105 GOSUB 11300 11110 GOTO 10305 11115 REM NOW DO DEPARTURE PROCEDURES 11120 GOTO 10310 11130 REM UPDATE FUEL 11135 FU=FU-40*TJ 11140 FP=FU/3120 11145 RETURN 11150 REM UPDATE RATE OF CLIMB 11155 RC=ZZ*SIN(ABS(FA/57.3))*1.693*60 11160 IF FA<0 THEN RC=-1*RC 11165 RETURN 11170 REM UPDATE ALT 11175 AL=AL+TJ*RC/60 11180 IF AL<=0 THEN AL=0 11185 RETURN 11190 REM EQUATIONS OF MOTION 11195 T=TJ 11200 V=V0+A*T 11205 VB=(V+V0)/2:V0=V 11210 S=VB*T 11215 IF TD<(TX+18) GOTO 11235 11220 TX=TD 11225 WB=RS*INT(2*RND(1)+1) 11230 CC=CC+WB 11235 DA=(CC-75)/57.3 11240 DY=S*COS(ABS(DA)) 11245 DX=S*SIN(ABS(DA)) 11250 IF DA<0 THEN DX=-1*DX 11255 YY=YY+DY 11260 XX=XX+DX 11265 ZZ=V/1.69278 11270 IF ZZ>20 THEN ZZ=ZZ+WS 11275 IX=40+FIX(XX*7/20):IF IX>79 THEN IX=79 11280 IF IX<0 THEN IX=0 11285 ZP=FIX(YY-2500*(N-1)) 11290 IF ZP>2500 THEN N=N+1:GOTO 11285 11295 RETURN 11300 REM VARIABLES FOR RUNWAY GRAPHICS 11305 MP=FIX(10+(13*ZP)/2500) 11310 IF N>3 GOTO 11350 11315 NY=MP 11320 J=NY-10 11325 NX=XM(J) 11330 FW=WM(J) 11335 S$=SPACE$(J) 11340 MK$=M$(N)+S$(J)+"_"+S$(J)+"_"+S$(J)+"_"+S$(J)+"_"+S$(J)+"_" 11345 RETURN 11350 REM IN ZONE 4-MARKER IS RUNWAYS EDGE 11355 NY=MP 11360 J=NY-10 11365 NX=XE(J) 11370 IF N>4 THEN RETURN 11375 MK$=STRING$(WE(J),"_") 11380 RETURN 11385 AB=1:GOTO 11415 11390 AB=2:IF YY<10500 GOTO 11415 11395 FOR I=11 TO 23 11400 LOCATE I,1:PRINT SPACE$(80); 11405 NEXT I 11410 GOTO 11415 11415 REM ABORT 11420 FOR I=11 TO 23 11425 LOCATE I,1:COLOR 0,7:PRINT SPACE$(80); 11430 NEXT I 11435 LOCATE 11,30:PRINT"*** TAKEOFF FAILED***":PRINT:PRINT 11440 ON AB GOSUB 11455,11480 11445 LOCATE 20,35:COLOR 7,0:PRINT"END OF PROGRAM"; 11450 END 11455 PRINT" YOU PULLED BACK ON THE STICK AT TOO SLOW A SPEED, OR YOU" 11460 PRINT" PULLED BACK THE STICK TOO FAR WHEN AT PROPER SPEED." 11465 PRINT" AS A RESULT THE TAIL END OF THE FUSELAGE SCRAPED THE RUNWAY" 11470 PRINT" AND THE AIRCRAFT SPUN OUT OF CONTROL." 11475 RETURN 11480 IF YY>10500 GOTO 11505 11485 PRINT" YOU FAILED TO STAY WITHIN THE RUNWAY BOUNDARIES." 11490 PRINT" AS A RESULT YOU VEERED OFF THE RUNWAY AND COLLIDED WITH" 11495 PRINT" THE RUNWAY LIGHTS." 11500 RETURN 11505 PRINT" YOU RAN OUT OF RUNWAY. AS A RESULT YOU ROLLED INTO THE " 11510 PRINT" MARSHLANDS LOCATED";FIX(YY)-10500;"FEET PAST THE END OF THE RUNWAY." 11515 IF F(3)=1 THEN RETURN 11520 PRINT:PRINT:PRINT" YOU FORGOT TO LOWER THE FLAPS." 11525 PRINT" AS A RESULT THE AIRCRAFT COULD NOT DEVELOP SUFFICIENT LIFT." 11530 RETURN 11535 REM TIME DELAY PAD 11540 FOR I=1 TO TQ 11545 NEXT I 11550 RETURN 11555 REM CONVERT RTC TO TIME OF DAY IN SECONDS ABSOLUTE 11560 J=7 11565 FOR I=0 TO 2 11570 TC$(I)=MID$(TV$,J,2) 11575 J=J-3 11580 TC(I)=VAL(TC$(I)) 11585 TD=(3600*TC(2))+(60*TC(1))+TC(0) 11590 NEXT I 11595 RETURN 11600 REM PLOTS VARIABLE ON REVERSE BACKGROUND 11605 LOCATE (YP+1),(XP+1): COLOR 0,7 : PRINT ""; 11610 PRINT USING F$;V1; 11615 PRINT "" : COLOR 7,0 11620 RETURN 12000 REM DEPARTURE ROUTINE 12010 IF F(7)=1 GOTO 12025 ELSE F(7)=1 12015 GOSUB 10340 12020 F(2)=0 12025 IF WH<>11 GOTO 12040 ELSE ZZ=ZZ+5 12030 IF BR<>11 GOTO 12040 ELSE ZZ=ZZ+5 12035 IF TR=4 AND AL>1800 THEN CHAIN"OJETCRUZ" ELSE GOTO 12090 12040 IF AL<1200 GOTO 12090 12042 LOCATE 13,1:PRINT"********** FLIGHT ABORTED **********" 12044 PRINT:PRINT 12046 PRINT"YOU FAILED TO PERFORM CRUCIAL TRIM MANEUVERS FOLLOWING LIFTOFF" 12048 PRINT"THE PROPER TRIM SEQUENCE,WHICH MUST BE COMPLETED BELOW 1200 FEET, IS AS FOLLOWS:" 12050 PRINT" 1-RAISE LANDING GEAR" 12052 PRINT" 2-RETRACT FLAPS" 12054 PRINT" 3-REDUCE THRUST" 12056 PRINT 12058 PRINT" ---------- END OF PROGRAM ---------- " 12060 END 12090 GOSUB 11130 12092 GOSUB 11150 12094 GOSUB 11170 12099 GOTO 10310 13000 REM END OF LISTING