660 COLOR 7,0:LOCATE 24,70:PRINT"(";:COLOR 15,0::PRINT"D";:COLOR 7,0:PRINT"RIVE " DRIVE$ ")";:RETURN
670 INPUT" DD MM.M : ",N$:GOTO 672
671 INPUT" DDD MM.M : ",N$
672 X$="":ADG=0:IF LEFT$(N$,1)="*" THEN GOTO 680 ELSE IF N$="" THEN RETURN
675 Y675=INSTR(N$," "):IF Y675=0 THEN X$=N$:Y$="":RETURN ELSE X$=LEFT$(N$,Y675-1):Y$=RIGHT$(N$,LEN(N$)-Y675):RETURN
680 IF LEN(N$)<4 OR LEN(N$)>5 THEN 685 ELSE NA$=RIGHT$(N$,3):FOR C%=1 TO 3:N%=ASC(MID$(NA$,C%,1)):IF N%<48 OR (N%>57 AND N%<65) OR N%>90 THEN 685 ELSE NEXT C%:ADG=1:RETURN
685 ADG=2:RETURN
690 GOSUB 100:COLOR 7,0:LOCATE 12,20:PRINT"ENTER THE LATITUDE, THEN THE LONGITUDE.":LOCATE 13,20:PRINT"SEPARATE THE DEGREES & MINUTES WITH A SPACE."
692 LOCATE 14,20:COLOR 0,7:PRINT" OR ";:COLOR 7,0:PRINT" ENTER AN * AND THE 3 LETTER ";:COLOR 15,0:PRINT"AIRPORT";:COLOR 7,0:LOCATE 15,20:PRINT"IDENTIFIER FOR THE LATITUDE. (ex: *XYZ)":RETURN
1800 GOSUB 100:PRINT B$;B$;B$;B$;:LOCATE 14,24:PRINT"FOR SUBTRACTION, TIME #1 MUST BE":LOCATE 17,24:PRINT"GREATER THAN OR EQUAL TO TIME #2!":COLOR 23,0:GOSUB 200:COLOR 7,0:GOTO 9200
2205 IF M<2 THEN 2240 ELSE IF M<10 THEN M=M/10 ELSE IF M<100 THEN M=M/100 ELSE IF M<1000 THEN M=M/1000 ELSE IF M<10000 THEN M=M/10000 ELSE IF M>999 THEN 2000
2235 LOCATE 13,41:PRINT SPACE$(20):LOCATE 13,41:PRINT M
4100 COLOR 0,7:LOCATE 12,1:PRINT MM$(0):COLOR 7,0:ACH=13:GOSUB 100:LOCATE 13,20:PRINT"ENTER THE NUMBER AND THE UNIT LETTER(S)":LOCATE 14,20:PRINT"OF THAT NUMBER. NEXT, ENTER THE UNIT"
4105 LOCATE 15,20:PRINT"LETTER(S) YOU WANT TO CONVERT TO. FOR":LOCATE 16,20:PRINT"MULTIPLE PROBLEMS, ENTER AN * TO USE":LOCATE 17,20:PRINT"THE PREVIOUS ANSWER AS AN INPUT.":SAME=0:SAME$=""
4130 ACH=18:GOSUB 100:COLOR 15,0:LOCATE 20,25:PRINT"ENTER NUMBER ";:COLOR 0,7:PRINT" AND ";:COLOR 15,0:INPUT" UNIT(S): ",N$:IF N$="" THEN 9100
4135 IF N$="*" THEN X=SAME:X$=SAME$:GOTO 4190 ELSE SAME=0:SAME$=""
4140 N1$=RIGHT$(N$,1):N1=ASC(N1$):IF N1<67 OR N1>86 THEN 4130
4150 X$=RIGHT$(N$,2):N2=ASC(X$):IF N2<65 OR N2>77 THEN X$=N1$
4160 N=FRE(N):Y=0:IF X$="M" THEN 9100
4170 IF X$="Q" THEN GOSUB 90:GOTO 4100
4180 X=VAL(N$)
4190 IF SAME=0 THEN IF X$="F" THEN 4340 ELSE IF X$="C" THEN 4340
4200 IF X=0 THEN 4130
4210 LOCATE 22,25:INPUT"ENTER THE UNIT(S) YOU WANT: ",Y$:IF N$="M" THEN 9100
4230 IF X$="S" THEN GOSUB 405 ELSE IF X$="N" THEN GOSUB 408 ELSE IF X$="KM" THEN GOSUB 416 ELSE IF X$="FT" THEN GOSUB 424 ELSE IF X$="MT" THEN 460 ELSE IF X$="G" AND Y$="L" THEN Y=X*GL ELSE IF X$="L" AND Y$="G" THEN Y=X/GL
4300 IF X$="AV" THEN GOSUB 432 ELSE IF X$="P" THEN GOSUB 438 ELSE IF X$="KG" THEN 452 ELSE IF X$="JP" THEN GOSUB 446
4340 IF X$="F" THEN Y$="C":GOSUB 240:GOTO 4370 ELSE IF X$="C" THEN Y$="F":Y=(X*1.8)+32:GOTO 4370
4360 IF Y=0 THEN 4130
4370 ACH=18:GOSUB 100:LOCATE 20,23:PRINT X X$ TAB(36) "EQUALS";:IF ABS(Y)<1 THEN Y=FN TM(Y)
4380 IF ABS(Y) <10 AND ABS(Y) >= 1 THEN Y=FN TT(Y) ELSE IF ABS(Y) <100 AND ABS(Y)>=10 THEN Y=FN TH(Y) ELSE IF ABS(Y) <1000 AND ABS(Y)>=100 THEN Y=FN RO(Y) ELSE IF ABS(Y) <10000 AND ABS(Y)>=1000 THEN Y=FN RH(Y) ELSE IF ABS(Y)>=10000 THEN Y=FN RT(Y)
4420 PRINT TAB(45) Y Y$:SAME=Y:SAME$=Y$:GOSUB 200:IF N$="M" THEN 9100 ELSE IF NOQT=1 THEN NOQT=0:GOTO 4100
6022 L(7)=GD%:L(8)=GM:IF ABS(L(7))>179 THEN 6020 ELSE IF L(8)>59.9 THEN 6020 ELSE IF L(7)=0 AND L(8)=0 THEN 6020 ELSE IF NOARPT=1 THEN GOTO 6920
6030 ACH=LORO-1:GOSUB 100:GOSUB 660:COLOR 15,0:LOCATE LORO,20:PRINT"LAT END (+N/-S) ";:GOSUB 670:GOSUB 590:IF ADG=1 THEN LAST=1:GOTO 6600 ELSE IF ADG=2 THEN 6030 ELSE IF X$="" THEN 9200
6032 L(2)=LD%:M(2)=LM:IF ABS(L(2))>89 THEN 6030 ELSE IF M(2)>59.9 THEN 6030 ELSE IF L(2)=0 AND M(2)=0 THEN 6030
6042 G(2)=GD%:H(2)=GM:IF ABS(G(2))>179 THEN 6040 ELSE IF H(2)>59.5 THEN 6040 ELSE IF G(2)=0 AND H(2)=0 THEN 6040 ELSE IF NOARPT=1 THEN GOTO 6920
6050 IF NOARPT=1 THEN 6950 ELSE L(1)=L(5):M(1)=L(6):G(1)=L(7):H(1)=L(8)
6060 FOR J=1 TO 2:IF M(J)<0 THEN 6000 ELSE IF H(J)<0 THEN 6000 ELSE IF L(J)<0 THEN M(J)= -M(J)
6090 L(J)=(M(J)/60)+L(J):QA(J)=L(J):L(J)=L(J)*RD:IF G(J)<0 THEN H(J)= -H(J)
6100 G(J)=(H(J)/60)+G(J):B(J)=G(J):NEXT J
6110 G(0)=(B(1)-B(2))*RD:QA(0)=QA(2)-QA(1):B(0)=B(2)-B(1):IF QA(1)=QA(2) THEN QA(1)=QA(1)+RF
6115 IF (L(1)=L(2) AND M(1)=M(2)) AND (G(1)=G(2) AND H(1)=H(2)) THEN GOSUB 100:LOCATE 15,24:PRINT"STARTING AND ENDING POINTS ARE EQUAL":GOSUB 200:GOTO 6000
6120 GOSUB 100:LV=11:GOSUB 540:COLOR 7,0:LOCATE 14,29:PRINT"1 - GREAT CIRCLE":LOCATE 15,29:PRINT"2 - RHUMB LINE":LOCATE 16,29:PRINT"3 - CHANGE END POINT":LOCATE 17,29:PRINT"4 - NEW PROBLEM":GOSUB 580
6150 COLOR 15,0:LOCATE LV,53:INPUT" ",N$:IF N$="" THEN 6150 ELSE GOSUB 82:IF ASC(N$)=13 THEN 9200
6155 LAST=0:ON N GOTO 6170,6490,6165,6000:GOTO 6120
6160 GOTO 6120
6165 LAST=1:LORO=18:GOSUB 690:GOTO 6030
6170 IF (L(1)=L(2) AND M(1)=M(2)) AND (G(1)=G(2) AND H(1)=H(2)) THEN GOSUB 100:LOCATE 15,24:PRINT"STARTING AND ENDING POINTS ARE EQUAL":GOSUB 200:GOTO 6120
6175 D1=(SIN(L(1))*SIN(L(2)))+(COS(L(1))*COS(L(2))*COS(ABS(G(0)))):D2=FN IC(D1):D=D2*60*DG:IF Y6545=1 THEN RETURN
6177 IF Y6490=1 THEN RETURN
6180 FOR J=1 TO 2
6190 C(J)=(SIN(G(0))*COS(L(J)))/(SIN(D2))
6200 IF ABS (C(J))>=1 THEN L(J)=L(J)+.001:GOTO 6190
6670 IF EOF(1) THEN 6685 ELSE CTZ%=CTZ%+1:INPUT #1,IDENT$,LAT$,LONG$,VAR$:IF NA$=IDENT$ THEN LAT=VAL(LAT$):LD%=FIX(LAT/1000):LM=FN RT((LAT-(LD%*1000))/10):LONG=VAL(LONG$):GD%=FIX(LONG/1000):GM=FN RT((LONG-(GD%*1000))/10):CLOSE #1:GOTO 6700
6680 IF CTZ%<315 THEN 6670
6685 CLOSE #1:GOTO 6900
6700 IF LAST=1 THEN 6800 ELSE LOCATE 17,50:PRINT LD%;LM;TAB(64);NA$:GOSUB 695:LOCATE 19,41:PRINT "DD MM.M :";GD%;:T3=GM:GOSUB 800:PRINT P$:L(5)=LD%:L(6)=LM:L(7)=GD%:L(8)=GM:GOTO 6030
6800 LOCATE LORO,50:PRINT LD%;LM;TAB(64);NA$:GOSUB 697:LOCATE LORO+2,41:PRINT "DD MM.M :";GD%;:T3=GM:GOSUB 800:PRINT P$:L(2)=LD%:M(2)=LM:G(2)=GD%:H(2)=GM:LOCATE 24,24:PRINT"(PUSH ANY KEY TO CONTINUE.)";:NN$=INPUT$(1):GOTO 6050
6900 BEEP:COLOR 15,0:LOCATE 24,5:PRINT"THE AIRPORT YOU SELECTED (";NA$;"),WAS NOT FOUND IN ANY OF THE DISK FILES! ";:FOR ZZ=1 TO 1500:NEXT ZZ
6905 BEEP:LOCATE 24,1:PRINT"THE INFORMATION YOU ENTER FOR ";:COLOR 7,0:PRINT NA$;:COLOR 15,0:PRINT" WILL AUTOMATICALLY BE SAVED. (PUSH ANY KEY.)";:N$=INPUT$(1):NOARPT=1:IF LAST=1 THEN 6030 ELSE 6007
6920 ACH=23:GOSUB 100:LOCATE 24,1:INPUT;"ENTER THE VARIATION (+W/-E): ",N$:VARX%=INT(VAL(N$))
6925 LOCATE 24,78:PRINT" ";:LOCATE 24,37:PRINT"ARE THESE NUMBERS CORRECT? (Y/N), M, or Q:";:N$=INPUT$(1):IF N$="N" OR N$="n" THEN 6930 ELSE IF N$="Y" OR N$="y" THEN 6950 ELSE GOSUB 82:IF NOQT=1 THEN GOSUB 690:GOTO 6930
6927 GOTO 6925
6930 IF LAST=1 THEN 6030 ELSE 6007
6950 IF LD%<0 THEN 6953 ELSE LAT=LD%*1000+LM*10:GOTO 6955
6953 LAT=LD%*1000-LM*10
6955 IF GD%<0 THEN 6977 ELSE LONG=GD%*1000+GM*10:GOTO 6958
6957 LONG=GD%*1000+LM*10
6958 VAR=VARX%+49
6960 ERNO=6960:OPEN INFO$ FOR APPEND AS #1:WRITE #1,NA$,LAT,LONG,VAR:CLOSE #1:RESET:NOARPT=0:IF LAST=1 THEN 6050 ELSE 6030
7000 IF A(1)>180 AND A(2) >M(2) THEN 7006
7002 IF A(1)<=180 AND A(2)<M(2) THEN 7006
7004 A(0)=ABS(A(1)-M(2)):RETURN
7006 A(0)=ABS(A(2)-M(1)):RETURN
7010 A=SQR(B*B+C*C-(2*B*C*COS(A(0)*RD))):IF A=0 THEN A=.001
9235 COLOR 15,0:N=X-47:NN=N:Z2=0:ON N GOTO 4000,1500,2500,1000,2000,9250,6000,7100,3000,9400
9250 ERNO=9250:GOSUB 850:LOCATE 15,21:PRINT" W E I G H T & B A L A N C E ":GOSUB 860
9255 DRV%=1:GOSUB 72:F$="\QFP4DIR\QFP4W&B"
9260 RUN F$
9270 FOR X=1 TO 1500: NEXT X:GOTO 9200
9400 ERNO=9400:GOSUB 850:LOCATE 15,21:PRINT" F L I G H T P L A N N I N G ":GOSUB 860
9405 DRV%=1:GOSUB 72:F$="\QFP4DIR\QFPFPLAN"
9410 RUN F$
9420 FOR X=1 TO 1500: NEXT X:GOTO 9200
9900 CLS:COLOR 7,0:CLEAR:SYSTEM
10000 IF ERR=53 AND ERNO=9055 THEN 10190
10005 IF ERR=53 THEN 10200
10010 IF ERR=70 THEN 10600
10020 IF ERR=61 THEN 10300
10030 IF ERR=67 OR ERR=75 OR ERR=76 THEN 10700
10050 IF ERR>52 THEN 10100
10099 GOTO 9000
10100 CLOSE:IF ERNO=9055 THEN 10190 ELSE IF NODRV=1 THEN 10190 ELSE GOSUB 100:COLOR 0,7:LOCATE 12,24:PRINT" THERE IS A PROBLEM WITH YOUR ":LOCATE 14,26:PRINT" DISK OR THE DISK DRIVE! "
10110 LOCATE 17,24:PRINT" PLEASE CORRECT THE SITUATION ":LOCATE 19,28:PRINT" BEFORE YOU CONTINUE. ":COLOR 7,0:GOSUB 990:GOSUB 200:IF ERNO=6960 OR ERNO=9250 OR ERNO=9400 THEN 10120 ELSE RESUME 9200
10120 IF NODRV=0 THEN NODRV=1:DRV%=1:GOSUB 72:RESUME 9200
10190 CLS:PRINT"FATAL DISK ERROR!!":PRINT:PRINT"PROGRAM HALTED!!!!":GOSUB 990:COLOR 7,0:CLEAR:SYSTEM
10200 IF ERNO=6000 THEN RESUME 6900 ELSE GOSUB 100:COLOR 0,7:LOCATE 12,24:PRINT" THE PROGRAM YOU HAVE SELECTED ":LOCATE 14,24:PRINT" WAS NOT FOUND ON THE DISK. ":GOTO 10110
10300 GOSUB 100:COLOR 0,7:LOCATE 12,26:PRINT" THE PROBLEM IS THAT YOU DISK ":LOCATE 14,28:PRINT" IS COMPLETELY FILLED UP. "
10310 LOCATE 17,26:PRINT" PLEASE CHECK THE MANUAL FOR ":LOCATE 19,30:PRINT" A POSSIBLE SOLUTION. ":COLOR 7,0:GOSUB 990:GOSUB 980:DRV%=1:GOSUB 72:GOTO 9000
10600 GOSUB 100:COLOR 0,7:LOCATE 13,24:PRINT" THE DISK IS WRITE PROTECTED! ":COLOR 7,0:IF NODRV=1 THEN 10630
10610 COLOR 0,7:LOCATE 16,24:PRINT" YOU WILL HAVE ONE MORE ATTEMPT ":LOCATE 18,26:PRINT" AT SAVING THIS INFORMATION ":LOCATE 20,29:PRINT" BEFORE IT IS ERASED! ":COLOR 7,0
10620 NODRV=1:GOSUB 990:GOSUB 980:RESUME
10630 GOSUB 990:DRV%=1:GOSUB 72:GOTO 9000
10700 GOSUB 100:COLOR 0,7:LOCATE 13,22:PRINT" THERE IS A PROBLEM WITH THE DISK!! ":LOCATE 16,26:PRINT" THE DISK DOES NOT HAVE THE ":LOCATE 18,24:PRINT" SUB-DIRECTORY \QFP4DIR ON IT, "
10710 LOCATE 20,26:PRINT" OR IT HAS TOO MANY FILES. ":COLOR 7,0:GOSUB 990:GOSUB 980:DRV%=1:GOSUB 72:GOTO 9200