660 ACH=0:ADH=6:GOSUB 100:LOCATE 1,1:PRINT" ":PRINT TAB(14) "IDENT LATITUDE LONGITUDE VARIATION":L=LEN(NA$):IF L=2 THEN CW=16 ELSE IF L=5 THEN CW=14 ELSE CW=15
661 IF Z6030=1 THEN 665 ELSE LOCATE 4,CW:PRINT NA$ TAB(25);:IF LD%=0 AND LM>=0 THEN PRINT "N"; ELSE IF LD%=0 AND LM<0 THEN PRINT"S"; ELSE IF LD%>0 THEN PRINT"N"; ELSE PRINT"S";
665 LOCATE 4,1:PRINT SPACE$(78):LOCATE 4,CW:PRINT NA$ TAB(25);:IF LX%=0 AND LY>=0 THEN PRINT "N"; ELSE IF LX%=0 AND LY<0 THEN PRINT"S"; ELSE IF LX%>0 THEN PRINT"N"; ELSE PRINT"S";
670 INPUT" DD MM.M : ",N$:IF N$="" THEN X$="":RETURN
672 Y672=INSTR(N$," "):IF Y672=0 THEN X$=N$:Y$="":RETURN ELSE X$=LEFT$(N$,Y672-1):Y$=RIGHT$(N$,LEN(N$)-Y672):RETURN
690 GOSUB 90:LOCATE 14,24:PRINT"A RECORD BY THE NAME OF ";:GOSUB 697:LOCATE 15,24:PRINT"WAS NOT FOUND IN THE DISK FILES.":RETURN
695 ACH=16:GOSUB 100:LOCATE 17,24:PRINT"YOU WILL BE ASKED TO INPUT THE":LOCATE 18,24:PRINT"APPROPRIATE INFORMATION, WHICH WILL":LOCATE 19,24:PRINT"THEN BE ENTERED INTO YOUR FILES.":LOCATE 21,29:ROW%=21:GOSUB 275:RETURN
1130 IF Z1130=0 THEN GOSUB 800:TOPTITLE$=ROP$:GOSUB 855:Z1130=1
1140 GOSUB 98:COLOR 15,0:LOCATE 24,24:PRINT"PUSH P, A, F, D, M, or Q:";:N$=INPUT$(1):COLOR 7,0:IF N$="" THEN 1140 ELSE IF N$="M" OR N$="m" THEN 9100 ELSE IF N$="Q" OR N$="q" THEN GOSUB 70:GOTO 1110
1150 IF N$="P" OR N$="p" THEN KIND=1:GOTO 1500 ELSE IF N$="A" OR N$="a" THEN KIND=2:GOTO 1500 ELSE IF N$="F" OR N$="f" THEN 9500 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 1120 ELSE 1140
1500 GOSUB 90:LOCATE 13,24:PRINT"PLEASE CHOOSE THE TYPE OF FILES":LOCATE 14,24:PRINT"YOU WANT TO WORK WITH.":LOCATE 16,24:PRINT"A-AIRPORTS" TAB(38) "V-VOR/RADIO AIDS"
1510 IF KIND=2 THEN LOCATE 18,30:PRINT"X-INTERSECTIONS":GOSUB 700:GOSUB 710:GOTO 1700 ELSE GOSUB 700:GOSUB 710:GOTO 1600
1600 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT A, V, D, S, or Q: ",N$:COLOR 7,0:IF N$="" THEN 1110 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 1500
1610 IF N$="A" OR N$="a" THEN TYPE=1 ELSE IF N$="V" OR N$="v" THEN TYPE=2 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 710:GOTO 1600 ELSE 1600
1620 GOTO 2000
1700 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT A, V, X, D, S, or Q: ",N$:COLOR 7,0:IF N$="" THEN 1110 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 1500
1710 IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 710:GOTO 1700
1720 IF N$="A" OR N$="A" THEN TYPE=1:INFO$="ADDARPT" ELSE IF N$="V" OR N$="v" THEN TYPE=2:INFO$="ADDVOR" ELSE IF N$="X" OR N$="x" THEN TYPE=3:INFO$="XINTER" ELSE 1700
1730 GOTO 3000
2000 ERNO=2000:GOSUB 740:LOCATE 15,24:PRINT"INPUT THE IDENTIFIER (NAME) OF":LOCATE 16,24:PRINT"THE RECORD YOU WANT TO VIEW.":LOCATE 19,24:GOSUB 760
2010 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT IDENT, <RET>, S, or Q: ",N$:COLOR 7,0::IF N$="" THEN GOSUB 800:GOSUB 855:GOTO 1500
2020 IF LEN(N$)<>3 THEN 2030 ELSE FOR C=1 TO 3:CN1=ASC(MID$(N$,C,1)):IF CN1<65 OR CN1>90 THEN 2010 ELSE NEXT C:NA$=N$:GOTO 2200
2030 GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 2000 ELSE 2010
2200 IF TYPE=2 THEN 2210 ELSE INFO$="ARPTS":IF NA$>="AAP" AND NA$=<"YUM" THEN 2225 ELSE 2900
2210 IF NA$>="ABB" AND NA$=<"DYR" THEN INFO$="VOR1" ELSE IF NA$>="EAR" AND NA$<="LDN" THEN INFO$="VOR2" ELSE IF NA$>="LEB" AND NA$<="PXV" THEN INFO$="VOR3" ELSE IF NA$>="PYE" AND NA$<="ZZV" THEN INFO$="VOR4" ELSE 2900
2225 INFO$="\QFP4DIR\QFP"+INFO$:GOSUB 790:GOSUB 792:GOSUB 85:OPEN INFO$ AS #1 LEN=16:FIELD #1, 3 AS XIDENT$, 5 AS XLAT$, 6 AS XLONG$, 2 AS XVAR$:LIML%=1:LIMU%=256
2230 IF LIML%>LIMU% THEN CLOSE #1:GOSUB 82:GOTO 2900
2240 LIMX%=INT((LIML%+LIMU%)/2):GET #1,LIMX%:IF NA$<XIDENT$ THEN LIMU%=LIMX%-1:GOTO 2230 ELSE IF NA$>XIDENT$ THEN LIML%=LIMX%+1:GOTO 2230
3020 FOR C=1 TO 336:IF EOF(1) THEN 3030 ELSE INPUT #1,IDENT$(C),LAT(C),LONG(C),VAR(C):IF IDENT$(C)="" THEN 3030 ELSE CTZ=CTZ+1:NEXT C
3030 CLOSE #1:CZ=1:GOSUB 900
3100 GOSUB 750:LOCATE 13,24:PRINT"TO DISPLAY A CHECKPOINT, INPUT THE":LOCATE 14,24:PRINT"IDENTIFIER (NAME) OR THE NUMBER.":LOCATE 16,24:PRINT"TO VIEW THE NEXT SET OF POINTS,"
3110 LOCATE 17,24:PRINT"PUSH <RETURN> OR 'F' FOR FORWARD.":LOCATE 19,24:PRINT"TO REVIEW THE LAST DISPLAYED SET":LOCATE 20,24:PRINT"OF POINTS, INPUT 'B' FOR BACKWARDS.":GOSUB 275
3120 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT IDENT, #, <RET>, F, B, S, or Q: ",N$:COLOR 7,0:IF N$="F" OR N$="f" OR N$="" THEN CZ=CZ+56:GOSUB 900:GOTO 3120 ELSE IF N$="B" OR N$="B" THEN CZ=CZ-56:GOSUB 900:GOTO 3120
3130 N=VAL(N$):IF N>=1 AND N<=CTZ THEN 3900 ELSE NA$=N$:L=LEN(NA$):IF TYPE=1 AND (L>=3 AND L<=4) THEN 3150 ELSE IF TYPE=2 AND (L>=2 AND L<=3) THEN 3150 ELSE IF TYPE=3 AND L=5 THEN 3150
3140 GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 3100 ELSE 3120
3150 IF TYPE>1 THEN 3160 ELSE FOR C=1 TO L:CN1=ASC(MID$(NA$,C,1)):IF CN1<48 OR (CN1>57 AND CN1<65) OR CN1>90 THEN 3120 ELSE NEXT C:GOTO 3200
3160 FOR C=1 TO L:CN1=ASC(MID$(NA$,C,1)):IF CN1<65 OR CN1>90 THEN 3120 ELSE NEXT C
3200 FOR C=1 TO CTZ:IF IDENT$(C)=NA$ THEN CNN=C:LAT=LAT(C):LONG=LONG(C):GOSUB 650:VAR=VAR(C)-49:GOTO 4000 ELSE NEXT C
3210 GOSUB 780:LOCATE 19,24:PRINT"DO YOU WANT TO ENTER THIS RECORD":LOCATE 20,24:PRINT"AND STORE IT IN THE DISK FILES?":GOSUB 275
3220 GOSUB 98:LOCATE 24,29:INPUT;"INPUT (Y/N), S or Q: ",N$:GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 3120 ELSE IF N$="Y" OR N$="y" THEN CNN=C:Z3220=1:GOTO 6000 ELSE IF N$="N" OR N$="n" THEN 3100 ELSE 3220
4000 GOSUB 660:GOSUB 90:LOCATE 14,24:PRINT"C - CHANGE ANY OF THE DISPLAYED":LOCATE 15,28:PRINT"INFORMATION.":LOCATE 17,24:PRINT"E - ERASE THE RECORD FROM THE":LOCATE 18,28:PRINT"DISK FILE."
4010 LOCATE 20,24:PRINT"<RETURN> - RETURN TO THE LAST MENU":GOSUB 275
4020 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT C, E, <RET>, S, or Q: ",N$:COLOR 7,0:IF N$="" THEN 4100 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 4000
4030 IF N$="C" OR N$="c" THEN 6000 ELSE IF N$="E" OR N$="e" THEN 5000 ELSE 4020
4100 IF KIND=2 THEN GOSUB 90:GOSUB 900:GOTO 3100 ELSE 2000
5000 GOSUB 720:GOSUB 730:LOCATE 17,24:PRINT"IS THIS THE RECORD THAT YOU WANT":LOCATE 18,24:PRINT"TO ERASE FROM THE DISK FILES?":GOSUB 275
5010 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT (Y/N), S or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN 5000 ELSE IF N$="N" OR N$="n" THEN 8000 ELSE IF N$="Y" OR N$="y" THEN 5020 ELSE 5010
5020 GOSUB 600:LOCATE 16,24:PRINT" DELETE THIS INFORMATION FROM ":LOCATE 17,24:PRINT" THE DISK FILES? ":COLOR 7,0:GOSUB 275
5030 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT (Y/N), S, or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN 5000 ELSE IF N$="N" OR N$="n" THEN 8000 ELSE IF N$="Y" OR N$="y" THEN 5040 ELSE 5030
5040 GOSUB 790:GOSUB 794:ON KIND GOTO 5500,5200
5200 FOR C=CNN TO CTZ:CP=C+1:IDENT$(C)=IDENT$(CP):LAT(C)=LAT(CP):LONG(C)=LONG(CP):VAR(C)=VAR(CP):NEXT C:CTZ=CTZ-1
5300 OPEN INFO$ FOR OUTPUT AS #1:FOR C=1 TO CTZ:WRITE #1,IDENT$(C),LAT(C),LONG(C),VAR(C):IF IDENT$(C)="" THEN 5310 ELSE NEXT C
5310 CLOSE #1:GOTO 8000
5500 GOSUB 85:OPEN INFO$ AS #1 LEN=16:FIELD #1, 3 AS XIDENT$, 5 AS XLAT$, 6 AS XLONG$, 2 AS XVAR$
6000 GOSUB 720:LOCATE 14,20:PRINT"ENTER THE LATITUDE, THEN THE LONGITUDE.":LOCATE 15,20:PRINT"SEPARATE THE DEGREES & MINUTES WITH A SPACE."
6010 LOCATE 17,20:PRINT"LATITUDE (+N/-S) ";:GOSUB 670:IF X$="" THEN 4000 ELSE LX%=VAL(X$):LY=VAL(Y$):IF ABS(LX%)>89 THEN 6000 ELSE IF LY>59.9 THEN 6000 ELSE IF LX%<>0 AND LY<0 THEN 6000 ELSE IF LX%=0 AND LY=0 THEN 6000
6020 ACH=18:GOSUB 100:LOCATE 19,20:PRINT"LONGITUDE (+W/-E) ";:GOSUB 670:IF X$="" THEN 4000 ELSE GX%=VAL(X$):GY=VAL(Y$):IF ABS(GX%)>179 THEN 6020 ELSE IF GY>59.9 THEN 6020 ELSE IF GX%<>0 AND GY<0 THEN 6020 ELSE IF GX%=0 AND GY=0 THEN 6020
6030 ACH=20:GOSUB 100:LOCATE 21,28:INPUT"VARIATION (+W/-E) : ",N$:IF N$="" THEN 4000 ELSE VX=VAL(N$):IF ABS(VX)>49 THEN 6030 ELSE Z6030=1:GOSUB 660:Z6030=0
6040 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"IS THIS CORRECT? (Y/N): ",N$:COLOR 7,0:IF N$="Y" OR N$="y" THEN 6050 ELSE IF N$="N" OR N$="N" THEN 6000 ELSE 6040
6050 GOSUB 600:PRINT" ":LOCATE 16,24:PRINT" SAVE THIS INFORMATION";:IF Z3220=1 THEN PRINT"? " ELSE PRINT" AND WRITE ":LOCATE 17,24:PRINT" OVER THE DATA IN THE DISK FILES? "
6055 COLOR 7,0:GOSUB 275
6060 GOSUB 98:COLOR 15,0:LOCATE 24,28:INPUT;"INPUT (Y/N), S, or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN 6050 ELSE IF N$="N" OR N$="n" THEN 8000 ELSE IF N$="Y" OR N$="y" THEN 6070 ELSE 6060
6070 VAR=VX:GOSUB 790:GOSUB 794:IF LD%<0 THEN 6075 ELSE LAT=LX%*1000+LY*10:GOTO 6080
6075 LAT=LX%*1000-LY*10
6080 IF GX%<0 THEN 6085 ELSE LONG=GX%*1000+GY*10:GOTO 6100
10099 GOTO 20000 ' ************** CHANGE LINE TO: GOTO 9000 **************
10100 IF ERNO=9050 THEN 10190 ELSE GOSUB 100:COLOR 0,7:LOCATE 12,26:PRINT" THERE IS A PROBLEM WITH YOUR ":LOCATE 14,28:PRINT" DISK OR THE DISK DRIVE. "
10110 LOCATE 17,26:PRINT" PLEASE CORRECT THE SITUATION ":LOCATE 19,30:PRINT" BEFORE YOU CONTINUE. ":COLOR 7,0:GOSUB 990:GOSUB 980:DRV%=R(1):GOSUB 82
10120 IF ERR=57 THEN RESUME 9000
10125 IF ERNO=800 THEN DRV%=1:GOSUB 82:RESUME 1110
10190 CLS:PRINT"FATAL DISK ERROR!!":PRINT:PRINT"PROGRAM HALTED!!!!":GOSUB 990:END ' ********** CHANGE TO *** COLOR 7,0:CLEAR:SYSTEM **************************
10199 GOTO 9000
10200 IF ERNO=3000 THEN GOSUB 960:GOSUB 980:RESUME 1110
10210 IF ERNO=800 THEN RESUME 799
10299 GOTO 20000 ' ************** CHANGE LINE TO: GOTO 9000 **************
10300 GOSUB 100:COLOR 0,7:LOCATE 12,26:PRINT" THE PROBLEM IS THAT YOUR 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:GOSUB 80:GOTO 9000
10500 IF ERNO=800 THEN RESUME 805
10599 GOTO 20000 ' ************** CHANGE LINE TO: 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 82:IF ERNO=799 THEN Z10710=1:RESUME 800 ELSE GOTO 9000
20000 COLOR 7,0:PRINT J$;J$;J$;J$;:CLS:PRINT "ERR LINE :";ERL;" ERROR NO ";ERR:KEY ON:RESUME 20010 : ' ************ REMOVE THIS LINE ***************
20010 STOP:END ' ************* REMOVE THIS LINE ***************