0 REM FLTCMP.BA - 5/25/88 - Program to emulate the slide rule type flight "computer" 1 REM - Do not use if you haven't read FLTCMP.DO, available in the same data library you downloaded the program from. 2 REM - No warranties, express or implied, are made, including warranties of merchantability and fitness for a particular purpose. See FLTCMP.DO for information essential to proper operation 3 CLS: MAXFILES=2: CLEAR 3000: DIM S$(33),S(33): RV$=CHR$(27)+"p": NV$=CHR$(27)+"q": MN$=CHR$(13)+CHR$(27): ES$=" to Quit, to Continue": PI=4*ATN(1): DR=PI/180: RD=180/PI: ER$=SPACE$(34) 4 LA$="Lat Deg Min Var": LG$="Long Deg Min -E+W": ID$=CHR$(8)+CHR$(13)+CHR$(30)+CHR$(31) 5 ST$="Statute": NA$="Nautical": MI$=" Miles": K$=" Kilometers": HM$="How Many": NM$="Number": TI$="Time": SP$="Speed ": DS$="Distance": H$="Hours": M$="Minutes": F$="Fuel": G$="Gallons": AL$="Altitude ": AS$="Airspeed ": PR$="Pressure" 6 DN$="Density": T$="True": C$="Course ": HD$="Heading": W$="Weight": BL$="Balance": E$="Empty": VL$="Values": NG$="Navigation": PT$="Point": IT$="Ident": FR$="From: ": T2$="To: ": PS$="Please Standby...": FN$="NAVAID" 7 FOR Z=1 TO 32: READ S$(Z): NEXT 8 FOR Z=1 TO 32: READ S(Z): NEXT 9 PRINT@56,"FLTCMP.BA": PRINT@125,RV$;"Have you read FLTCMP.DO? Y/N";NV$ 10 GOSUB 285: ON INSTR("YyNn",IK$) GOTO 13,13,12,12 11 GOTO 10 12 CLS: FOR X=1 TO 10: BEEP: PRINT@126,RV$;"Do not use this program until": PRINT@167,"you have read FLTCMP.DO!!!";NV$: BEEP: PRINT@126,"Do not use this program until": PRINT@167, "you have read FLTCMP.DO!!!": NEXT X: END 13 CLS:S1=1:S2=7:PRINT@10,"FLTCMP.BA---MAIN MENU":GOSUB 261 14 CLS: ON S3 GOTO 16,45,61,98,128,158,180,299 15 GOTO 13 16 CLS: S1=8: S2=15: PRINT TAB(12);"CONVERSIONS MENU": GOSUB 261 17 CLS: ON S3-7 GOTO 19,21,23,30,32,34,36,43,13 18 GOTO 16 19 CLS: PRINT@16,CHR$(166);"F -> ";CHR$(166);"C": PRINT@120,HM$" ";CHR$(166);"F";: INPUT TF: TC=(TF-32)/1.8: TC=INT((TC+.05)*10)/10: PRINT@120,TF;CHR$(166);"F ="; TC;CHR$(166);"C ": GOSUB 254 20 GOTO 19 21 CLS: PRINT@4,ST$MI$" -> "NA$MI$: PRINT@120, HM$" "ST$MI$;: INPUT SM: NM=.8689762*SM: NM=INT((NM+.05)*10)/10: PRINT@120,SM;"Stat"MI$" =";NM;"Naut"MI$: GOSUB 254 22 GOTO 21 23 CLS: PRINT@9,MI$" ->"K$: PRINT@120,ST$" or "NA$MI$" (S/N)?"; 24 GOSUB 285: ON INSTR("SsNn",IK$) GOTO 26,26,26,26 25 GOTO 24 26 PRINT@120,SPACE$(39): PRINT@120,HM$MI$;: INPUT MI: IF IK$="N" OR IK$="n" THEN M1=MI: GOTO 27 ELSE M1=MI*.8689762 27 KM=1.852*M1: KM=INT((KM+.05)*10)/10: IF IK$="N" OR IK$="n" THEN PRINT@120, MI;NA$;: ELSE PRINT@120,MI;ST$; 28 PRINT MI$" =";KM;K$: GOSUB 254 29 GOTO 23 30 CLS: PRINT@14,"Mph -> Knots": PRINT@120,HM$" Mph";: INPUT SM: NM=.8689762*SM: NM=INT((NM+.05)*10)/10: PRINT@120, SM;"Mph =";NM;"Knots": GOSUB 254 31 GOTO 30 32 CLS: PRINT@16,CHR$(166);"C -> ";CHR$(166);"F": PRINT@120,HM$" ";CHR$(166);"C";: INPUT TC: TF=TC*1.8+32: PRINT@120, TC;CHR$(166);"C ="; TF;CHR$(166);"F ": GOSUB 254 33 GOTO 32 34 CLS: PRINT@4,NA$MI$" -> "ST$MI$: PRINT@120,HM$" "NA$MI$;: INPUT NM: SM=NM/.8689762: SM=INT((SM+.05)*10)/10: PRINT@120,NM;"Naut"MI$" =";SM;"Stat"MI$: GOSUB 254 35 GOTO 34 36 CLS: PRINT@9,K$" ->"MI$: PRINT@120,ST$" or "NA$MI$" (S/N)?"; 37 GOSUB 285: ON INSTR("SsNn",IK$) GOTO 39,39,39,39 38 GOTO 37 39 PRINT@120,SPACE$(39): PRINT@120,HM$K$;: INPUT KM: MI=KM/1.852: IF IK$="N" OR IK$="n" THEN 40 ELSE MI=MI/.8689762 40 MI=INT((MI+.05)*10)/10: PRINT@120,KM;K$" =";MI;: IF IK$="N" OR IK$="n" THEN PRINT NA$MI$ ELSE PRINT ST$MI$ 41 GOSUB 254 42 GOTO 36 43 CLS: PRINT@14,"Knots -> Mph": PRINT@120,HM$" Knots";: INPUT NM: SM=NM/.8689762: SM=INT((SM+.05)*10)/10: PRINT@120, NM;"Knots ="; SM;"Mph": GOSUB 254 44 GOTO 43 45 CLS: PRINT TAB(6);"Add/Subtract/Multiply/Divide": PRINT: PRINT "Enter first "NM$", then press operator (+ - * /), then enter second "NM$". Example 22 * 2 is 22 times 2.": PRINT: PRINT "Press any key to continue" 46 GOSUB 285 47 CLS: PRINT TAB(6);"Add/Subtract/Multiply/Divide" 48 PRINT@80,"Enter "NM$;" ";N1: PRINT@92,"";: INPUT N1: PRINT@93,SPACE$(22): PRINT@93,N1 49 PRINT@120,"Press Operator + - * /"; 50 GOSUB 285: ON INSTR("+-*/",IK$) GOTO 52,52,52,52 51 GOTO 50 52 PRINT@134,SPACE$(8): PRINT@134,IK$: PRINT@160,"Enter "NM$;: INPUT N2 53 ON INSTR("+-*/",IK$) GOTO 54,55,56,57 54 N1=N1+N2: PRINT "Total =";N1: GOTO 58 55 N1=N1-N2: PRINT "Remainder =";N1: GOTO 58 56 N1=N1*N2: PRINT "Product =";N1: GOTO 58 57 N1=N1/N2: PRINT "Quotient =";N1 58 PRINT@283,ES$; 59 GOSUB 285: ON INSTR(MN$,IK$) GOTO 47,13 60 GOTO 59 61 CLS: S1=16: S2=21: S=0: H=0: M=O: D=0: G=0: FR=0: PRINT TAB(10);TI$"/"SP$"/"DS$: GOSUB 261 62 ON S3-15 GOTO 64,70,76,81,87,93,13 63 GOTO 61 64 CLS: PRINT TAB(17);SP$: PRINT@80,DS$;D: PRINT@88,"";: INPUT D: PRINT@89,SPACE$(20): PRINT@89,D 65 PRINT@120,H$;H: PRINT@125,"";: INPUT H: PRINT@126, SPACE$(20): PRINT@126,H 66 PRINT@140,M$;M: PRINT@147,"";: INPUT M: PRINT@148, SPACE$(4): PRINT@148,M 67 H1=H+M/60: S=INT(((D/H1)+.05)*10)/10: PRINT@160,SP$" =";S;"Mph/Knots": PRINT@283,ES$; 68 GOSUB 285: ON INSTR(MN$,IK$) GOTO 64,61 69 GOTO 68 70 CLS: PRINT TAB(16);DS$: PRINT@80,SP$;S: PRINT@85,"";: INPUT S: PRINT@86,SPACE$(30): PRINT@86,S 71 PRINT@120,H$;H: PRINT@125,"";: INPUT H: PRINT@126, SPACE$(20): PRINT@126,H 72 PRINT@140,M$;M: PRINT@147,"";: INPUT M: PRINT@148, SPACE$(9): PRINT@148,M 73 H1=H+M/60: D=INT(((S*H1)+.05)*10)/10: PRINT@160,DS$" ="; D;MI$: PRINT@283,ES$; 74 GOSUB 285: ON INSTR(MN$,IK$) GOTO 70,61 75 GOTO 74 76 CLS: PRINT TAB(12);DS$"->"TI$: PRINT@80,DS$; D: PRINT@88,"";: INPUT D: PRINT@89,SPACE$(30): PRINT@89,D 77 PRINT@120,SP$;S: PRINT@125,"";: INPUT S: PRINT@126, SPACE$(33): PRINT@126,S 78 H1=D/S: H=INT(H1): M1=H1-H: M=INT((M1*60)+.5): PRINT@160,H; H$;M;M$: PRINT@283,ES$; 79 GOSUB 285: ON INSTR(MN$,IK$) GOTO 76,61 80 GOTO 79 81 CLS: PRINT@15,F$" Rate": PRINT@80,G$" Used ";G: PRINT@92,"";: INPUT G: PRINT@93,SPACE$(20): PRINT@93,G 82 PRINT@120,H$;H: PRINT@125,"";: INPUT H: PRINT@126, SPACE$(20): PRINT@126,H 83 PRINT@140,M$;M: PRINT@147,"";: INPUT M: PRINT@148, SPACE$(4): PRINT@148,M 84 H1=H+M/60: FR=INT(((G/H1)+.05)*10)/10: PRINT@160,F$" Rate =";FR;"gal./hour": PRINT@283,ES$; 85 GOSUB 285: ON INSTR(MN$,IK$) GOTO 81,61 86 GOTO 85 87 CLS: PRINT@15,F$" Used": PRINT@80,F$" Rate ";FR: PRINT@89,"";: INPUT FR: PRINT@90,SPACE$(29): PRINT@90,FR 88 PRINT@120,H$;H: PRINT@125,"";: INPUT H: PRINT@126, SPACE$(20): PRINT@126,H 89 PRINT@140,M$;M: PRINT@147,"";: INPUT M: PRINT@148, SPACE$(4): PRINT@148,M 90 H1=H+M/60: G=INT(((FR*H1)+.1)*10)/10: PRINT@160,F$" Used =";G;G$: PRINT@283,ES$; 91 GOSUB 285: ON INSTR(MN$,IK$) GOTO 87,61 92 GOTO 91 93 CLS: PRINT@14,F$" ->"TI$: PRINT@80,G$" Used ";G: PRINT@92,"";: INPUT G: PRINT@93,SPACE$(20): PRINT@93,G 94 PRINT@120,F$" Rate ";FR: PRINT@129,"";: INPUT FR: PRINT@130,SPACE$(9): PRINT@130,FR 95 H1=G/FR: H=INT(H1): M1=H1-H: M=INT((M1*60)+.5): PRINT@160, H;H$;M;M$: PRINT@283,ES$; 96 GOSUB 285: ON INSTR(MN$,IK$) GOTO 93,61 97 GOTO 96 98 CLS: S1=22: S2=25: PRINT@10,AL$" & "AS$: GOSUB 261 99 CLS: ON S3-21 GOTO 101,112,118,123 100 GOTO 98 101 CLS: PRINT@16,PR$" "AL$: PRINT@80,"Altimeter Setting ";AS: PRINT@97,"";: INPUT AS: PRINT@98,SPACE$(9): PRINT@98,AS 102 PRINT@120,AL$;AL: PRINT@128,"";: INPUT AL: PRINT@129,SPACE$(9): PRINT@129,AL 103 IF AS<28.5 THEN CF=((29.92-AS)*910)+46.8+(60*(28.5-AS)): GOTO 109 104 IF AS<29 THEN CF=((29.92-AS)*910)+22.8+(50*(29-AS)): GOTO 109 105 IF AS<29.3 THEN CF=((29.92-AS)*910)+13.8+(40*(29.3-AS)): GOTO 109 106 IF AS<29.7 THEN CF=((29.92-AS)*910)+.8+(30*(29.7-AS)): GOTO 109 107 IF AS<29.92 THEN CF=((29.92-AS)*910)+.8+(20*(29.9-AS)): GOTO 109 108 IF AS>=29.92 THEN CF=((29.92-AS)*910)-.2 109 PA=AL+CF: PRINT@200,PR$" "AL$" =";PA: PRINT@283,ES$; 110 GOSUB 285: ON INSTR(MN$,IK$) GOTO 101,98 111 GOTO 110 112 CLS: PRINT@12,DN$" "AL$: PRINT@80,PR$" "AL$;PA: PRINT@97,"";: INPUT PA: PRINT@98,PA 113 PRINT@120,"Temperature (";CHR$(166);"F) ";TF: PRINT@136,"";: INPUT TF: PRINT@137,SPACE$(9): PRINT@137,TF 114 TS=59-(3.5*PA/1000): DA=.9075*PA+66*(TF-TS)+256: DA=INT(DA+.5): TS=INT(TS+.5) 115 PRINT@160,DN$" "AL$" =";DA: PRINT "Std. Temp. ("; CHR$(166);"F) =";TS: PRINT@283,ES$; 116 GOSUB 285: ON INSTR(MN$,IK$) GOTO 112,98 117 GOTO 116 118 CLS: PRINT@14,T$" "AS$: PRINT@80,"Indicated "AS$;AI: PRINT@98,"";: INPUT AI: PRINT@99,SPACE$(9): PRINT@99,AI 119 PRINT@120,DN$" "AL$;DA: PRINT@136,"";: INPUT DA: PRINT@137,SPACE$(9): PRINT@137,DA 120 AT=AI*(1+(.017*(DA/1000))): AT=INT(AT+.5): PRINT@160,T$" "AS$"=";AT: PRINT@283,ES$; 121 GOSUB 285: ON INSTR(MN$,IK$) GOTO 118,98 122 GOTO 121 123 CLS: PRINT@14,"Mach "NM$: PRINT@80,T$" "AS$"(Knots) ";AT: PRINT@101,"";: INPUT AT: PRINT@102,SPACE$(9): PRINT@102,AT 124 PRINT "Temperature in ";CHR$(166);"F ";TF;: PRINT@137,"";: INPUT TF: PRINT@138,SPACE$(9): PRINT@138,TF 125 MN=AT/(700-((50-((TF-32)/1.8))*1.2)): MN=INT((MN+.005)*100)/100: PRINT "Mach "NM$" =";MN: PRINT@283,ES$; 126 GOSUB 285: ON INSTR(MN$,IK$) GOTO 123,98 127 GOTO 126 128 CLS: S1=26: S2=27: PRINT@14,"Wind & Drift": GOSUB 261 129 CLS: ON S3-25 GOTO 131,140 130 GOTO 128 131 CLS: PRINT@12,"Drift Correction" 132 PRINT@80,DS$" Flown ";DF: PRINT@94,"";: INPUT DF: PRINT@95,SPACE$(9): PRINT@95,DF 133 PRINT@120,DS$" Off "C$" ";;DO: PRINT@139,"";: INPUT DO: PRINT@140,SPACE$(9): PRINT@140,DO 134 PRINT@160,DS$" to fly ";DL: PRINT@175,"";: INPUT DL: PRINT@176,SPACE$(9): PRINT@176,DL 135 X=DO/DF: AP=ATN(X/SQR(-X*X+1)): AP=INT(AP*RD+.5) 136 Y=DO/DL: DC=ATN(Y/SQR(-Y*Y+1)): DC=INT(DC*RD+.5) 137 AH=AP+DC: PRINT@80,SPACE$(120): PRINT@80,"Angle to parallel";AP: PRINT "Drift Correction angle";DC: PRINT "Angle to intercept";AH: PRINT@283,ES$; 138 GOSUB 285: ON INSTR(MN$,IK$) GOTO 131,128 139 GOTO 138 140 CLS: PRINT@5,RV$;C$"/ "HD$" / Ground"SP$;NV$: PRINT T$" "C$;CT;TAB(20);T$" "AS$;AT 141 PRINT@51,"";: INPUT CT: PRINT@52,SPACE$(8): PRINT@52,CT: PRINT@73,"";: INPUT AT: PRINT@74,SPACE$(5): PRINT@74,AT 142 PRINT "Wind Direction ";WD;TAB(20);"Wind "SP$;WS 143 PRINT@94,"";: INPUT WD: PRINT@95,SPACE$(4): PRINT@95,WD: PRINT@110,"";: INPUT WS: PRINT@111,SPACE$(8): PRINT@111,WS 144 PRINT "Variat'n -E+W ";CV: PRINT@133,"";: INPUT CV: PRINT@135,SPACE$(9): PRINT@135,CV 145 MC=CT+CV: IF MC>360 THEN MC=MC-360 146 IF MC<0 THEN MC=MC+360 147 TR=DR*CT: WR=DR*WD: XX=WS*SIN(WR-TR)/AT: TH=TR+ATN(XX/SQR(-XX*XX+1)): TH=RD*TH: IF TH>360 THEN TH=TH-360 148 IF TH<0 THEN TH=TH+360 149 GS=WS*COS(WR-TR-PI)+SQR((WS*COS(WR-TR-PI))^2-(WS)^2+(AT)^2) 150 WC=CT-TH: MH=TH+CV: IF MH>360 THEN MH=MH-360 151 IF MH<0 THEN MH=MH+360 152 MC=INT(MC+.5): MH=INT(MH+.5): TH=INT(TH+.5): GS=INT(GS+.5) 153 PRINT@160,T$" "HD$" =";TH: PRINT@180,"Mag "C$" =";MC: PRINT "Mag "HD$" =";MH: PRINT@220,"Ground"SP$" =";GS 154 PRINT@240,RV$;"Deviation ";NV$;DV: PRINT@249,"";: INPUT DV: PRINT@250,SPACE$(9): PRINT@250,DV 155 CH=MH+DV: PRINT@260,"Comp. "HD$" =";CH: PRINT@283,RV$; ES$;NV$; 156 GOSUB 285: ON INSTR(MN$,IK$) GOTO 140,128 157 GOTO 156 158 CLS: PRINT@11,W$" & "BL$: PRINT@53,RV$;E$" "VL$;NV$: PRINT E$" "W$" ";EW: PRINT E$" Moment/X ";EM: PRINT "X = ";X:'Weight & Balance 159 PRINT@92,"";: INPUT EW: PRINT@93,SPACE$(9): PRINT@93,EW: PRINT@134,"";: INPUT EM: PRINT@135,SPACE$(9): PRINT@135,EM: PRINT@163,"";: INPUT X: PRINT@164,SPACE$(9): PRINT@164,X 160 CLS: PRINT@11,W$" & "BL$: PRINT@53,RV$;"Arm "VL$; NV$: PRINT "Front Seat ";AF: PRINT@100,"Rear Seat ";AR 161 PRINT "Baggage ";AB: PRINT@140,"Oil ";AO: PRINT "Main "F$;AM: PRINT@180,"Aux. "F$;AA 162 PRINT@90,"";: INPUT AF: PRINT@91,SPACE$(8): PRINT@91,AF 163 PRINT@109,"";: INPUT AR: PRINT@110,SPACE$(8): PRINT@110,AR 164 PRINT@127,"";: INPUT AB: PRINT@128,SPACE$(9): PRINT@128,AB 165 PRINT@143,"";: INPUT AO: PRINT@144,SPACE$(9): PRINT@144,AO 166 PRINT@169,"";: INPUT AM: PRINT@170,SPACE$(9): PRINT@170,AM 167 PRINT@189,"";: INPUT AA: PRINT@190,SPACE$(9): PRINT@190,AA 168 PRINT@53,RV$;W$" "VL$;NV$: PRINT@91,SPACE$(8): PRINT@91,WF: PRINT@90,"";: INPUT WF: PRINT@91,SPACE$(8): PRINT@91,WF 169 PRINT@110,SPACE$(8): PRINT@110,WR: PRINT@109,"";: INPUT WR: PRINT@110,SPACE$(8): PRINT@110,WR 170 PRINT@128,SPACE$(9): PRINT@128,WB: PRINT@127,"";: INPUT WB: PRINT@128,SPACE$(9): PRINT@128,WB 171 PRINT@140,SPACE$(19) 172 PRINT@160,SPACE$(39): PRINT@171,RV$;F$" & Oil "G$;NV$ 173 PRINT "Main Fuel Tanks ";MG: PRINT@215,"";: INPUT MG: PRINT@216,SPACE$(4): PRINT@216,MG 174 PRINT@220,"Aux Fuel Tanks ";AG: PRINT@234,"";: INPUT AG: PRINT@235,SPACE$(4): PRINT@235,AG 175 PRINT "Oil ";OG: PRINT@243,"";: INPUT OG: PRINT@244," ": PRINT@244,OG 176 WT=EW+WF+WR+WB+(MG*6)+(AG*6)+(OG*7.5): MT=((EM*X)+(AF*WF)+(AR*WR)+(AB*WB)+(AO*(OG*7.5))+(AM*(MG*6))+(AA*(AG*6)))/X 177 CLS: CLS: PRINT@11,W$" & "BL$: PRINT@80,"Total Loaded "W$" =";WT: PRINT@160,"Total Moment/";X;"=";MT: PRINT@240,"Center of Gravity ="; INT((((MT*X)/WT)+.05)*10)/10: PRINT@283,ES$; 178 GOSUB 285: ON INSTR(MN$,IK$) GOTO 158,13 179 GOTO 178 180 CLS:S1=28:S2=32:PRINT@15, NG$: PRINT@160,T$" "AS$" ";AT: PRINT@173,"";: INPUT AT 181 CLS: PRINT@15,NG$: PRINT@160,ER$: GOSUB 261: 'Nav Main Menu 182 ON S3-27 GOTO 184,191,225,191,191 183 GOTO 181 184 CLS: PRINT@7,PT$" to "PT$" "NG$:PRINT@80,FR$;LA$: PRINT@127,LG$: PRINT@200,T2$LA$: PRINT@247,LG$ 185 PRINT@96,D1: PRINT@105,M1: PRINT@115,V1: PRINT@136,D2:PRINT@145,M2: PRINT@216,D3:PRINT@225,M3:PRINT@235,V2: PRINT@256,D4:PRINT@265,M4 186 PRINT@95,"";: INPUT D1: PRINT@104, "";: INPUT M1: PRINT@114,"";: INPUT V1: PRINT@135,"";: INPUT D2: PRINT@144,"";: INPUT M2: PRINT@215,"";: INPUT D3: PRINT@224,"";:INPUT M3: PRINT@234,"";: INPUT V2: PRINT@255,"";: INPUT D4: PRINT@264, "";: INPUT M4 187 GOSUB 276 188 CLS: PRINT@7,PT$" to "PT$" "NG$: PRINT@80,"From: Lat";D1;CHR$(166);M1;"'":PRINT@100,"Long";D2;CHR$(166);M2;"'"1670 PRINT"To: Lat";D3;CHR$(166);M3;"'": PRINT@140,"Long";D4;CHR$(166);M4;"'": GOSUB 253 189 GOSUB 285: ON INSTR(MN$,IK$) GOTO 184,181 190 GOTO 189 191 CLS: PRINT@163,RV$;"Reading "FN$" "PS$NV$: GOSUB 270 192 ZD=0:ZZ=0:ZM=0:GZ=0:ZT=0 193 PRINT@160,ER$: ON S3-27 GOTO 184,194,225,205,216 194 CLS: PRINT@7,PT$" to "IT$" "NG$: PRINT@80,FR$LA$: PRINT@127,LG$: PRINT@200,T2$I2$ 195 PRINT@96,D1: PRINT@105,M1: PRINT@115,V1: PRINT@136,D2: PRINT@145,M2 196 PRINT@95,"";: INPUT D1: PRINT@104, "";: INPUT M1: PRINT@114,"";: INPUT V1 197 PRINT@135,"";: INPUT D2: PRINT@144,"";: INPUT M2 198 PRINT@205,"";: IP=205: GOSUB 227 199 IF I$="" THEN I$=I2$: GOTO 200 ELSE I2$=I$ 200 GOSUB 241: D3=D5: M3=M5: D4=D6: M4=M6 201 GOSUB 276 202 CLS: PRINT@7,PT$" to "IT$" "NG$: PRINT@80,"From: Lat";D1;CHR$(166);M1;"'";TAB(20);"Long";D2;CHR$(166);M2;"'": PRINT T2$I$: GOSUB 253 203 GOSUB 285: ON INSTR(MN$,IK$) GOTO 194,181 204 GOTO 203 205 CLS: PRINT@7, IT$" to "IT$" "NG$: PRINT@80,FR$I1$: PRINT@160,T2$I2$: 'ID to ID 206 PRINT@87,"";: IP=87: GOSUB 227: IF I$="XXXX" THEN I$=IX$ 207 IF I$="" THEN I$=I1$ ELSE I1$=I$ 208 GOSUB 241: D1=D5: M1=M5: D2=D6: M2=M6: V1=V5 209 PRINT@167,"";: IP=167: GOSUB 227: IF I$="XXXX" THEN I$=IX$ 210 IF I$="" THEN I$=I2$ ELSE I2$=I$ 211 GOSUB 241: D3=D5: M3=M5: D4=D6: M4=M6: V3=V5 212 GOSUB 276 213 CLS: PRINT@7, IT$" to "IT$" "NG$: PRINT@80,FR$I1$: PRINT@160,T2$;I2$: GOSUB 253: ' Print ID to ID 214 GOSUB 285: ON INSTR(MN$,IK$) GOTO 205,181 215 GOTO 214 216 CLS: PRINT@7, IT$" to "PT$" "NG$: PRINT@80,FR$I1$: PRINT@160,T2$LA$: PRINT@207,LG$: 'ID to Pt 217 PRINT@176,D3: PRINT@185,M3: PRINT@216,D4: PRINT@225,M4 218 PRINT@87,"": IP=87: GOSUB 227: IF I$="" THEN I$=I1$ ELSE I1$=I$ 219 GOSUB 241: D1=D5: M1=M5: V1=V5: D2=D6: M2=M6 220 PRINT@175,"";: INPUT D3: PRINT@184,"";:INPUT M3: PRINT@194,"";: INPUT V2: PRINT@215,"";: INPUT D4: PRINT@224, "";: INPUT M4 221 GOSUB 276 222 CLS: PRINT@7,IT$" to "PT$" "NG$: PRINT@80,FR$I$: PRINT "To: Lat";D3;CHR$(166);M3;"'";TAB(20);"Long"; D4;CHR$(166); M4;"'": GOSUB 253 223 GOSUB 285: ON INSTR(MN$,IK$) GOTO 216,181 224 GOTO 223 225 CLS: PRINT NG$" to Radio Beacon not yet written": PRINT: PRINT "Press Any Key to Continue": GOSUB 285 226 GOTO 181 227 N=0: I$="": NP=IP+35: 'Input IDs 228 PRINT@IP,"";: CALL 16969 229 GOSUB 285: ON INSTR(ID$,IK$) GOTO 233,236,239,237 230 IK=ASC(IK$): IF IK<48 THEN 229 ELSE IF IK>57 AND IK<65 THEN 229 ELSE IF IK>90 AND IK<97 THEN 229 ELSE IF IK >122 THEN 229 231 IF IK>96 THEN IK$=CHR$(ASC(IK$)-32) 232 PRINT@IP,IK$: I$=I$+IK$: IP=IP+1: IF LEN(I$)>=4 THEN 236 ELSE 228 233 IF I$="" THEN BEEP: GOTO 229 234 I$=LEFT$(I$,LEN(I$)-1): IP=IP-1 235 PRINT@NP,ER$;: PRINT@205," ";: PRINT@205,I$: GOTO 228 236 CALL 16974: RETURN 237 N=N+1: IF N>NN THEN N=1 238 IP=NP-35: PRINT@IP," ": PRINT@IP,A$(N): PRINT@NP,ER$;: PRINT@NP,B$(N);: I$=A$(N): IX$=B$(N): GOTO 228 239 N=N-1: IF N<1 THEN N=NN 240 IP=NP-35: PRINT@IP," ": PRINT@IP,A$(N): PRINT@NP,ER$;: PRINT@NP,B$(N): I$=A$(N): IX$=B$(N): GOTO 228 241 PRINT@282,"Reading "FN$" "PS$;: OPEN FN$ FOR INPUT AS 1: 'Read IDs 242 IF EOF(1) THEN 245 ELSE INPUT#1,A$,B$,P,O,I: IF LEN(I$)>4 THEN IF B$=I$ THEN 244 ELSE 242 243 IF A$=I$ THEN 244 ELSE 242 244 D5=INT(P): M5=INT(100*(P-D5)): D6=INT(O): M6=INT(100*(O-D6)): V5=I: CLOSE: RETURN 245 CLOSE: CLS: OPEN FN$ FOR APPEND AS 1: PRINT IT$" ";I$;" not recognized.": PRINT LA$: PRINT LG$: PRINT "Name" 246 PRINT@48,"";: INPUT D3: PRINT@57, "";: INPUT M3: PRINT@67,"";: INPUT V3 247 PRINT@88,"";: INPUT D4: PRINT@97,"";: INPUT M4: PRINT@124,"";: INPUT N$ 248 P$=RIGHT$(STR$(D3),LEN(STR$(D3))-1)+".": M3$=RIGHT$(STR$(M3),LEN(STR$(M3))-1): IF LEN(M3$)<2 THEN M3$="0"+M3$ 249 P$=P$+M3$: O$=RIGHT$(STR$(D4),LEN(STR$(D4))-1)+".": M4$=RIGHT$(STR$(M4),LEN(STR$(M4))-1):IF LEN(M4$)<2 THEN M4$="0"+M4$ 250 O$=O$+M4$ 251 IF V3<0 THEN V$=STR$(V3) ELSE V$=RIGHT$(STR$(V3),LEN(STR$(V3))-1) 252 PRINT#1,I$;",";N$;",";P$;",";O$; ",";V$: CLOSE: NN=NN+1: A$(NN)=I$: B$(NN)=N$: RETURN 253 PRINT@200,T$" "C$" =";TC; CHR$(166);TAB(20);"Mag "C$;MC;CHR$(166): PRINT"Dist. =";D;"n.m.";TAB(20);TI$" =";TT;":";TM: PRINT@283,ES$;: RETURN 254 PRINT@283,ES$; 255 GOSUB 285: ON INSTR(MN$,IK$) GOTO 257,16 256 GOTO 255 257 RETURN 258 REM 259 REM Menu Routine 260 REM 261 FOR Z=S1 TO S2: PRINT@S(Z),S$(Z): NEXT Z:S3=S1: PRINT@283,ES$; 262 PRINT@S(S3),RV$;S$(S3);NV$ 263 GOSUB 285: ON INSTR(MN$,IK$) GOTO 268,299 264 IK=ASC(IK$)-29: IFIK<0 THEN 263 ELSE ON IK GOTO 266,267 265 GOTO 263 266 PRINT@S(S3),S$(S3): S3=S3-1: IF S3S2 THEN S3=S1: GOTO 262 ELSE 262 268 RETURN 269 'List Airports & VORTACS 270 N=0:OPEN FN$ FOR INPUT AS 1 271 LINE INPUT#1,AA$:N=N+1:IF EOF(1) THEN 272 ELSE 271 272 IF DA<>0 THEN 274 ELSE DIM A$(N+10),B$(N+10): DA=1: CLOSE: CC$="": NN=0: OPEN FN$ FOR INPUT AS 1 273 INPUT#1,A$,B$,P,O,I: NN=NN+1: A$(NN)=A$: B$(NN)=B$: IF EOF(1) THEN 274 ELSE 273 274 CLOSE:RETURN 275 'Navigation Math 276 CLS: PRINT@131,PS$: B1=D1+M1/60: C1=D2+M2/60: B2=D3+M3/60: C2=D4+M4/60: K=0 277 T=TAN((45+(B1*.5))*DR): IF B1>B2 THEN K=180 278 IF B1360 THEN TC=TC-360:GOTO 280 281 IF TC<0 THEN TC=TC+360:GOTO 281 282 MC=INT(TC+V1): IF MC>360 THEN MC=MC-360 283 IF MC<0 THEN MC=MC+360 284 TC=INT(TC): U=COS(TC*DR): D=60*(B2-B1)/U: D=INT(D): TI=D/AT: ZD=ZD+D: ZT=ZT+TI: TT=INT(TI): TM=INT((TI-TT)*60): ZZ=INT(ZT): ZM=INT((ZT-ZZ)*60): GB=GR*TI: GZ=ZT*GR: RETURN 285 IK$=INKEY$:IF IK$=""THEN 285: 'Input Rtne 286 RETURN 287 DATA "Conversions","Std. Math","Time/Speed/Dist.","Alt & AS","Wind & Drift","Wt & Bal","Navigation" 288 DATA "Temp F->Temp C","Stat mi->Naut mi","Mi->Km","Mph->Knots","TempF<-TempC","Stat mi<-Naut mi","Mi<-Km","Mph<-Knots" 289 DATA "Speed","Distance","Distance -> Time","Fuel Rate","Fuel Used","Fuel -> Time" 290 DATA "Pressure Alt","Density Alt","True Airspeed","Mach Number" 291 DATA "Drift correction","Course / Heading / Groundspeed" 292 DATA "Point->Point","Point->Ident","->Radio Beacon","Ident->Ident","Ident->Point" 293 DATA 80,120,160,200,100,140,180 294 DATA 80,120,160,200,100,140,180,220 295 DATA 80,120,160,100,140,180 296 DATA 80,120,100,140 297 DATA 132,165 298 DATA 80,120,160,100,140 299 IF S1<>1 THEN 13 ELSE CLS:PRINT "End on Menu":CLEAR:MAXFILES=0:END