1 REM NAV PROG VERSION 4.3 5 REM BY LANCE QUINN 04/22/83 10 CLEAR2000:DEFSNGA-Z:PI=3.141592654 22 MAXFILES=2:RV$=CHR$(27)+"p":NV$=CHR$(27)+"q" 30 P1$="#####.":P2$="#####.#":P3$="#####.##":P4$="#####.###":P5$="$$#####.##" 32 ES$=SPACE$(40) 34 CLS:PRINT@46,"NAVIGATION PROG VERSION 4.3":PRINT@204,"READING NAVAID.DO PLEASE STANDBY..." 35 PRINT@124,RV$;" MAKE ENTRIES IN UPPER CASE ONLY ";NV$; 36 GOSUB8000 40 DIMVA(60) 100 REM INPUT ROUTINE 110 NN$="N10CD":AS=165:GR=16:GOTO132 120 INPUT"TYPE YOUR N#";NN$:INPUT"TRUE AIRSPEED (KNOTS)";AS:INPUT"FUEL BURN/HOUR";GR 132 CLS:PRINT@126,"N10CD 165 KNOTS 16 GPH":PRINT@207,"PRESS ENTER TO CONTINUE";:BEEP:INPUTYN$ 1000 REM SET ARRAYS 1001 CLS:PRINT@120,RV$;" ENTER PRICE OF GAS PER GALLON $";NV$;:BEEP:INPUTTP:IFTP<1ORTP>2.5GOTO1001 1002 CLS 1010 PRINT@0,RV$;" ENTER DEPARTURE IDENT ";NV$;:BEEP:INPUTZZ$:IFLEN(ZZ$)<>3THENGOSUB6000 1012 OT$=ZZ$ 1015 GOSUB1500 1020 A1$=LA$:B1=LA:C1=LG:VA(0)=VA 1030 BX=B1:GOSUB4000:B1=BX:BX=C1:GOSUB4000:C1=BX 1100 GOTO1101:PRINT@240,"ENTER NEXT IDENT ";:INPUTZZ$:IFLEN(ZZ$)<>3THENGOSUB6000 1101 GOSUB12000:IFLEN(ZZ$)<>3THENGOSUB6000 1105 GOSUB1500 1107 V=V+1:VA(V)=VA 1110 A2$=LA$:B2=LA:C2=LG 1120 BX=B2:GOSUB4000:B2=BX:BX=C2:GOSUB4000:C2=BX 1200 GOSUB7000 1450 GOTO2000 1500 REM LOOK UP IDENTS 1510 OPEN"NAVAID.DO"FORINPUTAS1 1520 INPUT#1,LA$,CI$,LA,LG,VA 1540 IFZZ$=LA$GOTO1580 1550 IFEOF(1)THENCLOSE:GOTO6000 1560 GOTO1520 1580 CLOSE:RETURN 2000 REM FORMAT SCREEN 2001 CLS 2020 PRINT@0,"TAKE OFF:";TAB(10);OT$;" FROM: ";TAB(22);A1$;TAB(30);"TO:";TAB(34);A2$ 2030 PRINT@40,RV$;" TC MC DISTANCE TIME FUEL " 2035 MC=INT(TC+VA(V-1)) 2037 IFMC>360THENMC=MC-360:IFMC<0THENMC=MC+360 2040 PRINT@80,NV$;INT(TC);TAB(5);INT(MC);TAB(10);D;TAB(20);TT;":";TM;TAB(30)USINGP2$;GB 2047 PRINT@120,RV$;" TOTAL ";NV$;TAB(10);ZD;TAB(20);ZZ;":";ZM;TAB(30)USINGP2$;GZ 2048 PRINT@229,RV$;USINGP5$;(GZ*TP) 2055 A1$=A2$:B1=B2:C1=C2 2060 GOTO1100 4000 REM CONVERT DMS TO DECIMAL 4010 F=FIX(BX):BX=F+((BX-F)*100/60):RETURN 5000 A$=INKEY$:IFA$=""THEN5000ELSERETURN 6000 CLS:REM APPEND TO NAV.DO 6010 OPEN"NAVAID.DO"FORAPPENDAS1 6012 CLS:PRINTRV$;"****** IDENT NOT RECOGNIZED ******";NV$ 6015 BEEP:PRINT@80,"ENTER CITY NAME ";:INPUTCI$ 6020 BEEP:PRINT@120,"ENTER IDENTIFIER";:INPUTLA$:IFLEN(LA$)<>3THEN6020 6025 BEEP:INPUT"LATITUDE";LA:BEEP:INPUT"LONGITUDE";LG:BEEP:INPUT"VARIATION";VA 6030 PRINT#1,LA$;",";CI$;",";LA;LG;VA 6040 ZZ$=LA$ 6050 CLOSE:RETURN 7000 REM MATH 7005 PI=3.14157:K2=.01745329:K=0 7010 T=TAN((45+(B1*.5))*K2) 7030 IFB1>B2THENK=180 7040 IFB1360THENTC=TC-360 7120 IFTC<0THENTC=TC+360 7200 IFTC>360THENTC=TC-360 7300 U=COS(TC*.01745329) 7310 D=60*(B2-B1)/U 7320 D=INT(D):TI=D/AS 7325 ZD=ZD+D:ZT=ZT+TI 7330 TM=TI-INT(TI):TT=INT(TI):TM=INT(TM*60) 7340 ZM=ZT-INT(ZT):ZZ=INT(ZT):ZM=INT(ZM*60) 7400 GB=GR*TI:GZ=ZT*GR 7405 REM GB=INT(GB*10)/10:GZ=INT(GZ*10)/10 7500 RETURN 8000 REM LIST AIRPORTS 8100 OPEN"NAVAID.DO"FORINPUTAS1 8110 LINEINPUT#1,AA$ 8115 N=N+1 8120 IFEOF(1)THEN8130 8125 GOTO8110 8130 DIMA$(N):DIMB$(N) 8135 CLOSE 8200 CC$="":NN=0:OPEN"NAVAID.DO"FORINPUTAS2 8201 INPUT#2,A$,B$,P,O,I 8202 NN=NN+1 8203 A$(NN)=A$:B$(NN)=B$ 8204 IFEOF(2)THEN8300 8205 GOTO8201 8300 CLOSE:RETURN 12000 REM ENTRY ROUTINE 12001 ZZ$="":CC$="":PP$="" 12005 BEEP:PRINT@280,RV$;" ENTER IDENT OR SCROLL CURSOR ";NV$;" "; 12006 PP$="" 12010 PP$=INKEY$:IFPP$=""THEN12010 12012 IFPP$=CHR$(30)THEN13010 12014 IFPP$=CHR$(31)THEN13020 12025 IFPP$=CHR$(13)THEN12100 12030 IFPP$=CHR$(8)THEN12035 12031 IFPP$=CHR$(63)THEN15000 12032 IFPP$>CHR$(90)ORPP$(N-1)THENX=0 14000 PRINT@200," ID CITY ";:PRINT@240,SPACE$(25); 14010 PRINT@240,A$(X);" ";B$(X);:GOTO12010 15000 FORBE=1TO10:SOUND3000,4:SOUND2100,4:SOUND1500,4:NEXTBE:GOTO1 19999 END