home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / QFP4.ZIP / QFPFPLAN.BAS < prev    next >
Encoding:
BASIC Source File  |  1988-03-03  |  54.0 KB  |  564 lines

  1. 0 '        ********************************
  2. 1 '        *             QFP-4            *
  3. 2 '        *              BY              *
  4. 3 '        *                              *
  5. 4 '        *       Michael M. Brogan      *
  6. 5 '        *      Copyright 1987 1988     *
  7. 6 '        *      All rights Reserved     *
  8. 7 '        *                              *
  9. 8 '        *  version 1.2   Flt Planning  *
  10. 9 '        * see share ware in QFP4.BAS   *
  11. 10 '       ********************************
  12. 11 GOTO 9000
  13. 50 N=FRE(ZZZ):N=VAL(N$):IF LEFT$(N$,1)="Q" OR LEFT$(N$,1)="q" THEN 70
  14. 55 IF LEFT$(N$,1)="S" OR LEFT$(N$,1)="s" THEN DRV%=1:GOSUB 82:GOTO 9000 ELSE RETURN
  15. 70 NOQT=0:GOSUB 100:COLOR 0,7:LOCATE 15,24:PRINT"  DO  YOU  WISH  TO  QUIT?  (Y/N)  ",:COLOR 7,0
  16. 72 X$=INKEY$:IF X$="" THEN 72 ELSE IF X$="Y" OR X$="y" THEN 9900 ELSE NOQT=1:RETURN
  17. 80 DRV%=DRV%+1:IF DRV%>AR(0) THEN DRV%=1
  18. 82 ANO=33:AAH=14:ADL=AR(DRV%):OTHER=1:GOSUB 100:ANO=33:AAH=25:OTHER=1:GOSUB 100:DRIVE$=CHR$(AAL+65)+":":GOSUB 105:RETURN
  19. 85 XDRV%=DRV%:DRV%=1:GOSUB 82:DRV%=XDRV%:RETURN
  20. 86 ACH=20:GOTO 100
  21. 87 ACH=21:GOTO 100
  22. 88 ACH=18:GOTO 100
  23. 90 ACH=12:GOTO 100
  24. 91 ACH=11:GOTO 100
  25. 92 ACH=22:GOTO 100
  26. 93 ACH=13:GOTO 100
  27. 94 ACH=14:GOTO 100
  28. 95 ACH=15:GOTO 100
  29. 97 ACH=17:GOTO 100
  30. 98 ACH=23:GOTO 100
  31. 99 ACH=19
  32. 100 CALL AD!(ACK$,ARD,ANO,AAH,AAL,ABH,ABL,ACH,ACL,ADH,ADL):IF OTHER=1 THEN OTHER=0:RETURN
  33. 105 ARD=225:ANO=16:AAH=6:AAL=0:ABH=0:ACH=10:ACL=1:ADH=23:ADL=80:RETURN
  34. 150 GOSUB 100:COLOR 0,7:LOCATE 12,32:PRINT" L O A D I N G ":RETURN
  35. 152 LOCATE 17,32:PRINT" P R O G R A M "
  36. 154 LOCATE RW,33:PRINT" P L E A S E ":LOCATE RW+2,31:PRINT" S T A N D - B Y ":RETURN
  37. 200 LOCATE 25,1:PRINT STRING$(79,32);:LOCATE 25,19:RETURN
  38. 210 P$=STR$(P):P$=RIGHT$(P$,LEN(P$)-1):IF LEN(P$)=2 THEN P$="0"+P$:RETURN ELSE IF LEN(P$)=1 THEN P$="00"+P$:RETURN ELSE RETURN
  39. 220 GOSUB 91:LOCATE 13,24:PRINT"USE THESE LETTERS FOR THE TYPE:":GOSUB 280:RETURN
  40. 230 GOSUB 92:LOCATE 24,24:COLOR 15,0:PRINT"IS THIS CORRECT? (Y/N):  ";:COLOR 7,0:N$=INPUT$(1):RETURN
  41. 240 IF X$=CHR$(13) THEN CT%=1:RETURN
  42. 245 IF X$<>"A" AND X$<>"V" AND X$<>"X" AND X$<>"L" AND X$<>"E" AND X$<>"S" THEN CT%=2:RETURN ELSE CT%=3:RETURN
  43. 250 LOCATE 24,1:PRINT SPACE$(79);:LOCATE 24,24:PRINT"(PUSH  <RETURN>  FOR SUBMENU)";:RETURN
  44. 260 ACH=14:ADH=20:GOSUB 100:RETURN
  45. 270 GOSUB 90:LOCATE 14,24:PRINT"INPUT THE NUMBER THAT CORRESPONDS":LOCATE 15,24:PRINT"TO THE FLIGHT PLAN LIST YOU WISH TO":LOCATE 16,24:PRINT X270$:LOCATE 18,24:PRINT"D - DEFAULT CHANGED TO NEXT DRIVE"
  46. 275 COLOR 7,0:LOCATE ROW%,29:PRINT"S - SUBMENU" TAB(44) "Q - QUIT":ROW%=20:RETURN
  47. 277 GOSUB 87:LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")":RETURN
  48. 280 GOSUB 95:LOCATE 15,29:PRINT"A  AIRPORT":LOCATE 16,29:PRINT"V  VOR/RADIO AID":LOCATE 17,29:PRINT"X  INTERSECTION":LOCATE 18,29:PRINT"L  LAT/LONG"::LOCATE 19,29:PRINT"S  RETURN TO SUBMENU":RETURN
  49. 290 LOCATE 16,24:PRINT"IT MUST BE AT LEAST 2 CHARACTERS":LOCATE 17,24:PRINT"LONG AND IT MAY BE UP TO 5":LOCATE 18,24:PRINT"CHARACTERS IN LENGTH."
  50. 292 GOSUB 99:GOSUB 250:LOCATE 21,31:COLOR 15,0:INPUT"ENTER:  ",CL$:COLOR 7,0:GOSUB 700:IF CT%=1 THEN RETURN
  51. 294 CX%=LEN(CL$):IF CX%<2 OR CX%>5 THEN 292
  52. 295 GOSUB 710:IF CT%=2 THEN 292
  53. 297 GOSUB 230:IF N$="N" OR N$="n" THEN 292 ELSE RETURN
  54. 300 GOSUB 90:LOCATE 14,24:PRINT"IS THIS THE NUMBER YOU WANT TO USE":LOCATE 15,24:PRINT"FOR THE " X300$ "?":COLOR 15,0:LOCATE 17,32:RETURN
  55. 310 GOSUB 95:LOCATE 16,29:PRINT"WIND DIRECTION:";:RETURN
  56. 315 GOSUB 97:LOCATE 18,29:PRINT"WIND  VELOCITY:";:RETURN
  57. 320 PRINT TAB(24) "INPUT THE FOLLOWING INFORMATION:":RETURN
  58. 325 LOCATE 14,2:COLOR 0,7:PRINT" AVERAGE WINDS ";:COLOR 7,0:RETURN
  59. 330 GOSUB 90:LOCATE 14,2:PRINT"#" X% " ";:GOSUB 697:GOSUB 320:RETURN
  60. 340 LOCATE 21,24:PRINT"D-NEXT DRIVE    S-SUBMENU    Q-QUIT":RETURN
  61. 350 ROCNUM%=FIX(((CRUALT-DP%)/5000)+.9999):IF ROCNUM%<1 THEN ROCNUM%=1
  62. 352 IF ROCNUM% MOD 2=0 THEN 365
  63. 360 MIDNUM=ROCNUM%/2+.5:FOR XR%=1 TO ROCNUM%:IF XR%<MIDNUM THEN ROC%(XR%+1)=ROC%*(1+((MIDNUM-XR%)*.1)) ELSE IF XR%>MIDNUM THEN ROC%(XR%+1)=ROC%*(1-((XR%-MIDNUM)*.1)) ELSE ROC%(XR%+1)=ROC%
  64. 362 NEXT XR%:RETURN
  65. 365 MIDNUM=ROCNUM%/2:FOR XR%=1 TO ROCNUM%:IF XR%<MIDNUM THEN ROC%(XR%+1)=ROC%*(1+((MIDNUM-XR%)*.1+.05)) ELSE ROC%(XR%+1)=ROC%*(1-((XR%-MIDNUM)*.1+.05))
  66. 367 NEXT XR%:RETURN
  67. 380 LOCATE 20,29:PRINT"E  END-OF-LIST":RETURN
  68. 390 ACH=0:ADH=6:GOSUB 100:COLOR 0,7:LOCATE 1,1:PRINT TOPTITLE$;:COLOR 7,0:RETURN
  69. 400 LPRINT TAB(13);:IF LD1%(X%)=0 THEN 403 ELSE LPRINT"N "; ELSE LPRINT"S ";
  70. 402 GOTO 405
  71. 403 IF LM1(X%)>=0 THEN LPRINT"N "; ELSE LPRINT"S ";
  72. 405 LPRINT USING"##";ABS(LD1%(X%));:G=ABS(LM1(X%)):GOTO 412
  73. 410 P=ABS(GD1%(X%)):GOSUB 210:LPRINT TAB(13);:IF (GD1%(X%)>=0 AND GM1(X%)>=0) THEN LPRINT "W"; ELSE IF (GD1%(X)=0 AND GM1(X%)<0) THEN LPRINT "E"; ELSE IF GD1%(X%)>0 THEN LPRINT"W"; ELSE LPRINT"E";
  74. 411 LPRINT P$;:G=ABS(GM1(X%))
  75. 412 G$=STR$(G):IF LEN(G$)>4 THEN G=FN RT(G+.1):G$=STR$(G)
  76. 413 G$=RIGHT$(G$,LEN(G$)-1):G1$=STR$(INT(G)):G1$=RIGHT$(G1$,LEN(G1$)-1):IF LEN(G1$)=2 THEN 417
  77. 414 IF LEN(G1$)=1 AND G>=1 THEN G$="0"+G$:GOTO 417
  78. 415 IF G=0 THEN G$="00.0":GOTO 419
  79. 416 G$="00"+G$
  80. 417 G1$=RIGHT$(G$,2):IF LEFT$(G1$,1)="." THEN 419
  81. 418 G$=G$+".0"
  82. 419 IF VM%=1 THEN RETURN ELSE LPRINT" ";G$;:RETURN
  83. 420 HR=0
  84. 422 IF MM>=60 THEN HR=HR+1:MM=MM-60:GOTO 422 ELSE MM$=STR$(MM):MM$=RIGHT$(MM$,LEN(MM$)-1):IF LEN(MM$)=1 THEN MM$="0"+MM$
  85. 425 IF VM%=1 THEN 427 ELSE LPRINT USING"###";HR;:LPRINT":";MM$;" ";:RETURN
  86. 427 PRINT USING"###";HR;:PRINT":";MM$;" ";:RETURN
  87. 430 IF BR>=100 THEN LPRINT USING"#####";FB:RETURN ELSE LPRINT USING"###.#";FB:RETURN
  88. 450 P=ABS(LD1%(X%)):GOSUB 210:PRINT TAB(13);:IF LD1%(X%)=0 THEN 453 ELSE IF LD1%(X%)>0 THEN PRINT"N "; ELSE PRINT"S ";
  89. 452 GOTO 455
  90. 453 IF LM1(X%)>=0 THEN PRINT"N "; ELSE PRINT"S ";
  91. 455 PRINT USING"##";ABS(LD1%(X%));:G=ABS(LM1(X%)):GOTO 465
  92. 460 P=ABS(GD1%(X%)):GOSUB 210:PRINT TAB(14);:IF GD1%(X%)=0 THEN 463 ELSE IF GD1%(X%)>0 THEN PRINT"W"; ELSE PRINT"E";
  93. 462 GOTO 464
  94. 463 IF GM1(X%)>=0 THEN PRINT"W"; ELSE PRINT"E";
  95. 464 PRINT P$;:G=ABS(GM1(X%))
  96. 465 GOSUB 412:PRINT" ";G$;:RETURN
  97. 470 C%=0:ACH=3:GOSUB 100:LOCATE 4,1:RETURN
  98. 480 IF BR>=100 THEN PRINT USING"#####";FB:RETURN ELSE PRINT USING"###.#";FB:RETURN
  99. 490 IF IAS%<=TAS% THEN RETURN ELSE GOSUB 90:LOCATE 16,24:COLOR 0,7:BEEP:PRINT" THE CLIMB IAS MUST BE LESS THAN  ":LOCATE 17,24:PRINT" OR EQUAL TO THE CRUISE TAS.      ":COLOR 7,0:GOSUB 980:RETURN
  100. 495 GOSUB 90:COLOR 0,7:BEEP:LOCATE 14,26:PRINT" TO COMPUTE A CLIMB PROFILE, ":LOCATE 16,24:PRINT" YOU MUST INPUT THE ALTITUDES!! ":LOCATE 19,25:PRINT" OR, FOR NO CLIMB INFORMATION "
  101. 497 LOCATE 21,23:PRINT" CHANGE THE RATE-OF-CLIMB TO ZERO. ":COLOR 7,0:GOSUB 980:RETURN
  102. 500 IF WD<=0 THEN WD=WD+360 ELSE IF WD>360 THEN WD=WD-360
  103. 505 IF WD<=0 OR WD>360 THEN 500 ELSE W1=WD+180:IF W1>360 THEN W1=W1-360:RETURN ELSE RETURN
  104. 510 TX=WV*SIN(XA*RD)/VT:M=(FN IS(TX))*DG:XA=ABS(180-XA-M):GS=SQR(VT*VT+WV*WV-(2*VT*WV*COS(XA*RD))):IF XA1>180 THEN 525
  105. 515 IF M1>XA1 AND M1<XA2 THEN M=-M
  106. 520 WD=XA1-M:GOTO 535
  107. 525 IF M1<XA1 AND M1>XA2 THEN M=-M
  108. 530 WD=XA1+M
  109. 535 GOSUB 505:WD=WD+VR:GOSUB 505:MH=FN R(WD):RETURN
  110. 600 ERNO=600:OPEN LISTS$ FOR INPUT AS #1:INPUT #1,Y%,FP%:FOR X%=1 TO Y%:INPUT #1,TY$(X%),NA$(X%):NEXT X%:IF Z5240=1 OR Z5255=1 THEN 605 ELSE INPUT #1,VT1%,IAS%,ROC%
  111. 605 CLOSE #1:LG$=NA$(Y%):GOSUB 900:GOSUB 903:GOSUB 906:GOSUB 910:Z600=1:GOSUB 6958:GOSUB 6968:GOSUB 6978:Z600=0:RETURN
  112. 650 LD%(X%)=FIX(LAT/1000):LM(X%)=FN RT((LAT-(LD%(X%)*1000))/10):GD%(X%)=FIX(LONG/1000):GM(X%)=FN RT((LONG-(GD%(X%)*1000))/10)
  113. 652 IF LD%(X%)=0 THEN 654 ELSE IF LD%(X%)<0 THEN LM(X%)=ABS(LM(X%))
  114. 654 IF GD%(X%)=0 THEN 656 ELSE IF GD%(X%)<0 THEN GM(X%)=ABS(GM(X%))
  115. 656 RETURN
  116. 669 INPUT"DDD MM.M : ",N$:GOTO 671
  117. 670 INPUT" DD MM.M : ",N$
  118. 671 IF N$="" THEN X$="":RETURN
  119. 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
  120. 680 COLOR 7,0:LOCATE 23,24:PRINT"IF THE VELOCITY IS NOT IN KNOTS, ADD":LOCATE 24,24:PRINT"AN 'S' TO THE END OF THE NUMBER.";:RETURN
  121. 685 N=VAL(N$):IF RIGHT$(N$,1)="S" OR RIGHT$(N$,1)="s" THEN N=N/NS:RETURN ELSE RETURN
  122. 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
  123. 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
  124. 697 COLOR 0,7:PRINT" " TY$(X%) " " NA$(X%) " ";:COLOR 7,0:RETURN
  125. 700 CT%=0:IF CL$="" THEN CT%=1:RETURN ELSE RETURN
  126. 710 N=FRE(ZZZ):CT%=0:FOR C%=1 TO CX%:N%=ASC(MID$(CL$,C%,1)):IF N%<48 OR N%>90 THEN 716
  127. 712 IF N%>57 AND N%<65 THEN 716
  128. 714 NEXT C%:RETURN
  129. 716 CT%=2:RETURN
  130. 720 GOSUB 100:LOCATE 11,31:PRINT"ADD - A - LIST":RETURN
  131. 725 GOSUB 100:LOCATE 11,32:PRINT"FLIGHT  PLANNING":RETURN
  132. 730 LOCATE 16,1:COLOR 15,0:PRINT TAB(40-(INT(LEN(S2$(N))/2))) S2$(N):COLOR 7,0:PRNTP$=S2$(N):RETURN
  133. 740 GOSUB 100:LOCATE 11,32:PRINT"ERASE - A - LIST":RETURN
  134. 760 GOSUB 100:LOCATE 11,31:PRINT"CHANGE - A - LIST":RETURN
  135. 780 LOCATE 24,29:PRINT SPACE$(49);:LOCATE 24,29:COLOR 15,0:INPUT;"NAME: ",CL$:COLOR 7,0:RETURN
  136. 790 GOSUB 90:RW=14:COLOR 15,0:GOSUB 154:RETURN
  137. 792 LOCATE 19,26:PRINT"THE PROGRAM IS SEARCHING FOR":LOCATE 21,26:PRINT"THE APPROPRIATE INFORMATION.":COLOR 7,0:RETURN
  138. 794 LOCATE 19,26:PRINT"THE PROGRAM IS SAVING THE":LOCATE 21,26:PRINT"INFORMATION IN THE DISK FILES.":COLOR 7,0:RETURN
  139. 799 ERNO=799:OPEN TITLE$ FOR OUTPUT AS #1:YTERR%=0:WRITE #1,YTERR%:CLOSE #1
  140. 800 ERNO=800:ERASE S1$,S2$,T1$,T2$:DIM S1$(33),S2$(33),T1$(34),T2$(34):OPEN TITLE$ FOR INPUT AS #1: INPUT #1,YT%:IF YT%>33 THEN YT%=33
  141. 805 IF YT%=0 THEN CLOSE #1:RETURN
  142. 810 FOR X%=1 TO YT%:INPUT #1,S1$(X%),S2$(X%): NEXT X%: CLOSE #1:RETURN
  143. 855 GOSUB 390:IF YT%=0 THEN 857 ELSE SCT%=YT%:IF YT%>19 THEN 860 ELSE GOSUB 880:RETURN
  144. 857 LOCATE 3,5:PRINT"N O N E":RETURN
  145. 860 RW%=2:FOR X%=1 TO 5:RW%=RW%+1:LOCATE RW%,1:PRINT X% S2$(X%):NEXT X%
  146. 863 CLM%=16:XX1%=6:XX2%=6:GOSUB 866:CLM%=32:XX1%=13:GOSUB 866:CLM%=48:XX1%=20:GOSUB 866:IF SCT%+1=X% THEN RETURN ELSE CLM%=64:XX1%=27:GOSUB 866:RETURN
  147. 866 RW%=1:FOR X%=XX1% TO (XX1%+XX2%):IF S2$(X%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X%<10 THEN PRINT " ";
  148. 869 GOSUB 895:RW%=RW%+1:NEXT X%:RETURN
  149. 871 RW%=RW%+1:NEXT X%:RETURN
  150. 880 RW%=1:IF YT%<3 THEN XY%=YT% ELSE XY%=3
  151. 881 FOR X%=1 TO XY%:RW%=RW%+2:IF S2$(X%)="" THEN RETURN ELSE LOCATE RW%,1:PRINT X% S2$(X%):NEXT X%:IF YT%<=3 THEN RETURN
  152. 883 IF SCT%>11 THEN 886 ELSE CLM%=32:XX%=4:GOSUB 889:CLM%=64:XX%=8:GOSUB 889:RETURN
  153. 886 CLM%=16:XX%=4:GOSUB 889:CLM%=32:XX%=8:GOSUB 889:CLM%=48:XX%=12:GOSUB 889:IF SCT%+1=X% THEN RETURN ELSE CLM%=64:XX%=16:GOSUB 889:RETURN
  154. 889 RW%=1:FOR X%=XX% TO (XX%+3):IF S2$(X%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X%<10 THEN PRINT " ";
  155. 892 GOSUB 895:RW%=RW%+2:NEXT X%:RETURN
  156. 895 IF LEN(S2$(X%))>12 THEN 897 ELSE PRINT X% S2$(X%):RETURN
  157. 897 N$=LEFT$(S2$(X%),10):N1$=RIGHT$(S2$(X%),2):N$=N$+N1$:PRINT X% N$:RETURN
  158. 900 ACH=0:ADH=6:GOSUB 100:COLOR 0,7:LOCATE 1,1:PRINT"FROM:";:COLOR 7,0:PRINT " " NA$(1):RETURN
  159. 903 COLOR 0,7:LOCATE 2,1:PRINT" TO :";:COLOR 7,0:PRINT " " LG$:RETURN
  160. 906 COLOR 0,7:LOCATE 3,2:PRINT" NUMB:";:COLOR 7,0:PRINT FP%:RETURN
  161. 910 IF Z6000=1 OR Y%>14 THEN 930 ELSE RW%=3:FOR X9%=1 TO 2:RW%=RW%+2:IF NA$(X9%)="" THEN RETURN ELSE LOCATE RW%,1:PRINT X9% " " TY$(X9%) " " NA$(X9%):NEXT X9%:IF X9%=Y%+1 THEN RETURN ELSE IF Y%>6 THEN 920 ELSE CLM%=32:XX%=3:GOSUB 924:RETURN
  162. 920 CLM%=16:XX%=3:GOSUB 924:IF NA$(X9%)="" THEN RETURN ELSE CLM%=32:XX%=7:GOSUB 924:IF NA$(X9%)="" THEN RETURN ELSE CLM%=48:XX%=11:GOSUB 924:RETURN
  163. 924 RW%=1:FOR X9%=XX% TO (XX%+3):IF NA$(X9%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X9%<10 THEN PRINT " ";
  164. 926 PRINT X9% " " TY$(X9%) " " NA$(X9%):RW%=RW%+2:NEXT X9%:RETURN
  165. 930 RW%=4:FOR X9%=1 TO 3:RW%=RW%+1:IF NA$(X9%)="" THEN RETURN ELSE LOCATE RW%,1:PRINT X9% " " TY$(X9%) " " NA$(X9%):NEXT X9%
  166. 932 CLM%=16:XX%=4:GOSUB 934:IF NA$(X9%)="" THEN RETURN ELSE CLM%=32:XX%=11:GOSUB 934:IF NA$(X9%)="" THEN RETURN ELSE CLM%=48:XX%=18:GOSUB 934:RETURN
  167. 934 RW%=1:FOR X9%=XX% TO (XX%+6):IF NA$(X9%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X9%<10 THEN PRINT " ";
  168. 936 PRINT X9% " " TY$(X9%) " " NA$(X9%):RW%=RW%+1:NEXT X9%:RETURN
  169. 950 GOSUB 93:LOCATE 14,24:COLOR 15,0:PRINT"ENTER THE NUMBER OF YOUR LIST.":COLOR 7,0:LOCATE 16,24:PRINT"YOU MAY HAVE UP TO 9 DIFFERENT":LOCATE 17,24:PRINT"FLIGHT PLAN LISTS BETWEEN THE":LOCATE 18,24:PRINT"SAME TWO POINTS."
  170. 955 CT%=0:ACH=20:GOSUB 100:GOSUB 250:COLOR 15,0:LOCATE 21,31:INPUT"ENTER: ",N$:COLOR 7,0:IF N$="" THEN CT%=1:RETURN ELSE N=VAL(N$):IF N<1 OR N>9 THEN 955 ELSE FP%=INT(VAL(N$)):GOSUB 230:IF N$="N" OR N$="n" THEN 955 ELSE RETURN
  171. 960 IF ASC(X$)>96 AND ASC(X$)<123 THEN 963 ELSE RETURN
  172. 963 GOSUB 86:COLOR 0,7:LOCATE 21,24:PRINT" YOU MUST USE CAPITAL LETTERS ":LOCATE 22,22:PRINT" PLEASE PUSH THE 'CAPS LOCK' KEY NOW.":GOSUB 980:COLOR 7,0:RETURN
  173. 970 GOSUB 100:COLOR 0,7:LOCATE 10,1:PRINT MM$(9):COLOR 7,0:RETURN
  174. 980 COLOR 15,0:LOCATE 24,24:PRINT"(PUSH  ANY  KEY  TO  CONTINUE)";:COLOR 7,0:N$=INPUT$(1):RETURN
  175. 990 FOR PP=1 TO 6:BEEP:FOR PEP=1 TO 170:NEXT PEP,PP:RETURN
  176. 1000 CLS:CT=9:Z1125=0:GOSUB 9130
  177. 1110 GOSUB 970:LOCATE 11,24:PRINT"F - FLIGHT PLANNING":LOCATE 13,24:PRINT"A - ADD A FLIGHT PLAN LIST":LOCATE 15,24:PRINT"E - ERASE LIST    C - CHANGE LIST":LOCATE 17,24:PRINT"U - UTILITY DISK FILE PROGRAM"
  178. 1120 IF Z10710=1 THEN Z10710=0:GOTO 1110
  179. 1122 LOCATE 19,24:PRINT"D-NEXT DRIVE   M-MAIN MENU   Q-QUIT":LOCATE 21,32:PRINT"(DRIVE " DRIVE$ ")"
  180. 1125 IF Z1125=0 THEN TITLE$="\QFP4DIR\FPMST"
  181. 1126 IF Z1125=0 THEN GOSUB 800:TOPTITLE$=ROP$:GOSUB 855:Z1125=1
  182. 1130 GOSUB 98:COLOR 15,0:LOCATE 24,24:PRINT"PUSH  F, A, E, C, U, D, M, or Q:  ";:N$=INPUT$(1):COLOR 7,0:IF N$="" THEN 1130
  183. 1140 IF N$="F" OR N$="f" THEN 2000 ELSE IF N$="A" OR N$="a" THEN 6000 ELSE IF N$="E" OR N$="e" THEN 7000 ELSE IF N$="C" OR N$="c" THEN 7500 ELSE IF N$="U" OR N$="u" THEN 9500
  184. 1150 IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 1120 ELSE IF N$="M" OR N$="m" THEN 9100 ELSE IF N$="Q" OR N$="q" THEN GOSUB 70:IF NOQT=1 THEN 1110
  185. 1160 GOTO 1130
  186. 2000 ERNO2=2000:IF YT%=0 THEN Z1125=1:GOTO 1000 ELSE GOSUB 725:X270$="USE.":GOSUB 270
  187. 2010 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT%=1 THEN 2015 ELSE PRINT"-";YT%;
  188. 2015 PRINT", D,";:INPUT;" S, or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOSUB 270:GOTO 2010 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 2000
  189. 2020 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN LISTS$="\QFP4DIR\"+S1$(N):GOSUB 600:GOTO 2030 ELSE Z1125=1:GOTO 1110
  190. 2030 GOSUB 90:LOCATE 14,24:PRINT"IS THIS THE LIST YOU WISH TO USE?":GOSUB 730:COLOR 7,0:GOSUB 275:GOSUB 277
  191. 2035 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  Y/N, S or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE NN=N:GOSUB 50:N=NN:IF NOQT=1 THEN GOSUB 725:GOTO 2030
  192. 2037 IF N$="N" OR N$="n" THEN 9000 ELSE IF N$="Y" OR N$="y" THEN 2050 ELSE IF N$="" THEN 2050 ELSE 2035
  193. 2050 X%=0:CY%=0
  194. 2055 GOSUB 790:GOSUB 792
  195. 2056 X%=X%+1:NAX$=NA$(X%):IF X%>Y% THEN X%=0:GOTO 2400
  196. 2060 IF (TY$(X%)="A" OR TY$(X%)="V") AND LEN(NA$(X%))=3 THEN 2200 ELSE IF TY$(X%)="L" THEN 2100 ELSE 2300
  197. 2100 GOSUB 90:LOCATE 13,2:PRINT"RECORD: ";:GOSUB 697:LOCATE 14,20:PRINT"ENTER THE LATITUDE, THEN THE LONGITUDE.":LOCATE 15,20:PRINT"SEPARATE THE DEGREES & MINUTES WITH A SPACE."
  198. 2110 LOCATE 17,20:PRINT"LATITUDE  (+N/-S) ";:GOSUB 670:IF X$="" THEN 2340 ELSE LD%(X%)=VAL(X$):LM(X%)=VAL(Y$):IF ABS(LD%(X%))>89 THEN 2100 ELSE IF LM(X%)>59.9 THEN 2100 ELSE IF LD%(X%)<>0 AND LM(X%)<0 THEN 2100
  199. 2115 IF LD%(X%)=0 AND LM(X%)=0 THEN 2100
  200. 2120 GOSUB 88:LOCATE 19,20:PRINT"LONGITUDE (+W/-E) ";:GOSUB 669:IF X$="" THEN 2340 ELSE GD%(X%)=VAL(X$):GM(X%)=VAL(Y$):IF ABS(GD%(X%))>179 THEN 2120 ELSE IF GM(X%)>59.9 THEN 2120 ELSE IF GD%(X%)<>0 AND GM(X%)<0 THEN 2120
  201. 2125 IF GD%(X%)=0 AND GM(X%)=0 THEN 2120
  202. 2130 GOSUB 86:LOCATE 21,28:INPUT"VARIATION  (+W/-E) : ",N$:IF N$="" THEN 2340 ELSE VAR%(X%)=VAL(N$):IF ABS(VAR%(X%))>49 THEN 2130
  203. 2140 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 2150 ELSE IF N$="" THEN 2150 ELSE IF N$="N" OR N$="n" THEN 2100 ELSE 2140
  204. 2150 IF TY$(X%)="L" THEN 2055 ELSE 2370
  205. 2200 IF TY$(X%)="V" THEN 2210 ELSE INFO$="QFPARPTS":IF NAX$>="AAP" AND NAX$<="YUM" THEN 2220 ELSE 2300
  206. 2210 IF NAX$>="ABB" AND NAX$=<"EAR" THEN INFO$="QFPVOR1" ELSE IF NAX$>="EAT" AND NAX$<="LDN" THEN INFO$="QFPVOR2" ELSE IF NAX$>="LEB" AND NAX$<="PXV" THEN INFO$="QFPVOR3" ELSE IF NAX$>="PYE" AND NAX$<="ZZV" THEN INFO$="QFPVOR4" ELSE 230
  207. 2220 INFO$="\QFP4DIR\"+INFO$: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
  208. 2230 IF LIML%>LIMU% THEN CLOSE #1:GOSUB 82:GOTO 2300
  209. 2240 LIMX%=INT((LIML%+LIMU%)/2):GET #1,LIMX%:IF NAX$<XIDENT$ THEN LIMU%=LIMX%-1:GOTO 2230 ELSE IF NAX$>XIDENT$ THEN LIML%=LIMX%+1:GOTO 2230
  210. 2245 LAT=CVS(XLAT$):LONG=CVS(XLONG$):IF LAT=0 AND LONG=0 THEN CLOSE #1:GOSUB 82:GOTO 2300
  211. 2250 GOSUB 650:VAR%(X%)=VAL(XVAR$)-30:CLOSE #1:GOSUB 82:GOTO 2056
  212. 2300 ERNO=2300:CTZ%=0:IF TY$(X%)="V" THEN INFO$="ADDVOR":GOTO 2310 ELSE IF TY$(X%)="A" THEN INFO$="ADDARPT":GOTO 2310 ELSE INFO$="XINTER"
  213. 2310 INFO$="\QFP4DIR\"+INFO$:OPEN INFO$ FOR INPUT AS #1
  214. 2320 CTZ%=CTZ%+1:IF EOF(1) THEN CLOSE #1:GOTO 2340 ELSE INPUT #1,IDENT$,LAT,LONG,VAR:IF NAX$=IDENT$ THEN GOSUB 650:VAR%(X%)=VAR-49:CLOSE #1:GOTO 2056
  215. 2330 IF CTZ%<336 THEN 2320 ELSE CLOSE #1:IF CTZ%>=336 THEN 2500
  216. 2340 GOSUB 690:GOSUB 695
  217. 2350 GOSUB 98:LOCATE 24,29:INPUT;"TYPE <RETURN>, S, or Q:  ",N$:IF N$="" THEN 2100 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 2340 ELSE 2350
  218. 2370 GOSUB 790:GOSUB 794:IF LD%(X%)<0 THEN 2373 ELSE LAT=LD%(X%)*1000+LM(X%)*10:GOTO 2375
  219. 2373 LAT=LD%(X%)*1000-LM(X%)*10
  220. 2375 IF GD%(X%)<0 THEN 2377 ELSE LONG=GD%(X%)*1000+GM(X%)*10:GOTO 2378
  221. 2377 LONG=GD%(X%)*1000-GM(X%)*10
  222. 2378 VAR=VAR%(X%)+49
  223. 2380 ERNO=2380:OPEN INFO$ FOR APPEND AS #1:WRITE #1,NAX$,LAT,LONG,VAR:CLOSE #1:GOTO 2055
  224. 2400 FOR X%=1 TO Y%:IF LD%(X%)<0 THEN LM(X%)=-LM(X%)
  225. 2410 XA(X%)=(LM(X%)/60)+LD%(X%):IF GD%(X%)<0 THEN GM(X%)=-GM(X%)
  226. 2420 B(X%)=(GM(X%)/60)+GD%(X%):NEXT X%:GOTO 3000
  227. 2500 BEEP:GOSUB 90:IF TY$(X%)="V" THEN XXX$="VOR" ELSE IF TY$(X%)="A" THEN XXX$="AIRPORT" ELSE XXX$="INTERSECTION"
  228. 2510 LOCATE 14,24:PRINT"THE ADDITIONAL ";XXX$;" DISK FILE":LOCATE 15,24:PRINT"IS FULL WITH 336 RECORDS.":LOCATE 17,24:PRINT"IF YOU WISH TO ADD ANY NEW RECORDS":LOCATE 18,24:PRINT"TO THIS FILE, IT WILL FIRST BE"
  229. 2520 LOCATE 19,24:PRINT"NECESSARY TO DELETE ONE OR MORE":LOCATE 20,24:PRINT"RECORDS BY USING THE ";:COLOR 0,7:PRINT" UTILITY ":COLOR 7,0:LOCATE 21,24:PRINT"OPTION WHEN AT THE SUBMENU.":BEEP:GOSUB 980:GOTO 9000
  230. 3000 YS%=Y%:Z3000=1:IF VT1%=0 THEN GOSUB 6950:IF VT1%=0 THEN 3000 ELSE 3100
  231. 3010 X300$="CRUISE TRUE AIRSPEED":GOSUB 300:PRINT"TAS: " VT1% "KTS"
  232. 3020 GOSUB 86:GOSUB 275:COLOR 15,0:LOCATE 23,29:INPUT"INPUT  (Y/N), S or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 3010 ELSE IF N$="N" OR N$="n" THEN VT1%=0:GOSUB 6950:IF VT1%=0 THEN 3000
  233. 3100 TAS%=VT1%:IF IAS%=0 THEN GOSUB 6960:IF IAS%=0 THEN 3100 ELSE 3200
  234. 3110 X300$="CLIMB INCIDATED AIRSPEED":GOSUB 300:PRINT"CLIMB IAS: " IAS% "KTS"
  235. 3120 GOSUB 86:GOSUB 275:COLOR 15,0:LOCATE 23,29:INPUT"INPUT  (Y/N), S or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 3110 ELSE IF N$="N" OR N$="n" THEN IAS%=0:GOSUB 6960:IF IAS%=0 THEN 3100
  236. 3200 GOSUB 490:IF IAS%>TAS% THEN 3100
  237. 3210 X300$="RATE-OF-CLIMB":GOSUB 300:PRINT"ROC: " ROC% "FPM"
  238. 3220 GOSUB 86:GOSUB 275:COLOR 15,0:LOCATE 23,29:INPUT"INPUT  (Y/N), S or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 3210 ELSE IF N$="N" OR N$="n" THEN ROC%=0:GOSUB 6970:IF ROC%=0 THEN 3200
  239. 3300 IF ROC%=0 THEN 3400
  240. 3305 GOSUB 90:LOCATE 13,24:PRINT"ENTER THE ALTITUDE(S) FOR THIS FLIGHT.":LOCATE 15,24:PRINT"IF YOU ENTER ONLY ONE NUMBER, IT":LOCATE 16,24:PRINT"WILL BE USED AS THE CRUISE ALT AND":LOCATE 17,24:PRINT"THE DEPARTURE ALT WILL BE SEA LEVEL."
  241. 3310 LOCATE 19,24:PRINT"TO ENTER BOTH A DEPARTURE ALT AND A":LOCATE 20,24:PRINT"CRUSIE ALT, ";:COLOR 15,0:PRINT"SEPARATE";:COLOR 7,0:PRINT" THE NUMBERS"
  242. 3315 LOCATE 21,24:PRINT"WITH A ";:COLOR 15,0:PRINT"SPACE";:COLOR 7,0:PRINT".  ALL ALTITUDES MUST":LOCATE 22,24:PRINT"BE BETWEEN  -1,000  AND  60,000."
  243. 3320 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT  ALTITUDE(S), S, or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 3300 ELSE IF N$="" THEN 3320
  244. 3330 GOSUB 672:IF N$="0" THEN 3380 ELSE IF Y$="" THEN DEPALT=0:CRUALT=N:GOTO 3340 ELSE IF VAL(X$)=0 THEN 3320 ELSE DEPALT=VAL(X$):CRUALT=VAL(Y$):GOTO 3340
  245. 3340 IF (DEPALT+999)>CRUALT THEN 3370 ELSE IF DEPALT<-1000 OR CRUALT>60000! THEN 3300
  246. 3350 GOSUB 94:LOCATE 16,29:PRINT"CRUISING  ALTITUDE: " CRUALT:LOCATE 18,29:PRINT"DEPARTURE ALTITUDE: ";:IF DEPALT=0 THEN PRINT " SEA LEVEL" ELSE PRINT DEPALT
  247. 3360 GOSUB 230:IF N$="N" OR N$="n" THEN 3300 ELSE IF DEPALT<0 THEN DEPALT=0:GOTO 3390 ELSE 3390
  248. 3370 GOSUB 90:LOCATE 15,24:COLOR 0,7:BEEP:PRINT" THE DEPARTURE ALTITUDE MUST BE   ":LOCATE 16,24:PRINT" AT LEAST 1000 FEET LESS THAN THE ":LOCATE 17,24:PRINT" CRUISING ALTITUDE! ":COLOR 7,0:GOSUB 980:GOTO 3300
  249. 3380 GOSUB 90:LOCATE 15,24:PRINT"YOU INPUT A CRUSIE ALT OF ZERO.":LOCATE 17,24:PRINT"A CLIMB PROFILE WILL NOT BE ":LOCATE 18,24:PRINT"COMPUTED FOR THIS FLIGHT PLAN.":CRUALT=0:GOTO 3360
  250. 3390 IF Z5260=1 THEN RETURN
  251. 3400 Z3000=0:GOSUB 90:LOCATE 14,24:PRINT"ENTER THE NUMBER FOR THE AVERAGE":LOCATE 15,24:PRINT"CRUISE FUEL BURN IN EITHER POUNDS":LOCATE 16,24:PRINT"OR GALLONS.":LOCATE 18,24:PRINT"FOR NO FUEL BURN COMPUTATION,"
  252. 3410 LOCATE 19,24:PRINT"ENTER A ZERO (0)."
  253. 3420 GOSUB 87:LOCATE 22,29:COLOR 15,0:INPUT"INPUT BURN/HR:  ",N$:COLOR 7,0:IF N$="" THEN 3420 ELSE BR=FN RT(VAL(N$)):IF BR<0 OR BR>25001 THEN 3420 ELSE GOSUB 230:IF N$="N" OR N$="n" THEN 3420 ELSE IF Z5260=1 THEN RETURN
  254. 3500 GOSUB 90:LOCATE 14,24:PRINT"A - AVERAGE WIND FOR THE ENTIRE":LOCATE 15,28:PRINT"FLIGHT PLAN LIST.":LOCATE 17,24:PRINT"D - DIFFERENT WINDS FOR EACH":LOCATE 18,28:PRINT"POINT IN THE FLIGHT PLAN.":GOSUB 275
  255. 3510 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  A, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 3500 ELSE IF N$="A" OR N$="a" THEN 3600 ELSE IF N$="D" OR N$="d" THEN 3800 ELSE 3510
  256. 3600 GOSUB 90:GOSUB 325:GOSUB 320:IF Z3650=1 THEN RETURN
  257. 3610 COLOR 15,0:GOSUB 310:INPUT" ",N$:COLOR 7,0:IF N$="" AND Z3800=1 THEN RETURN ELSE WD=FN R(VAL(N$)):IF WD<-360 OR WD>1440 THEN 3610 ELSE GOSUB 500:P=WD:GOSUB 210
  258. 3620 COLOR 15,0:GOSUB 315:GOSUB 680:COLOR 15,0:LOCATE 18,44:INPUT" ",N$:COLOR 7,0:GOSUB 685:WV=FN R(N):IF WV>=IAS% OR WV>TAS% OR WV>250 THEN 3630 ELSE IF WV<1 THEN WV=1:GOTO 3640 ELSE GOTO 3640
  259. 3630 GOSUB 97:LOCATE 19,24:COLOR 0,7:BEEP:PRINT" THE WIND VELOCITY MAY NOT BE ":LOCATE 20,24:PRINT" GREATER THAN THE CLIMB IAS,  ":LOCATE 21,24:PRINT" THE TAS, OR 250 KNOTS!!      ":COLOR 7,0:GOSUB 980:GOTO 3620
  260. 3640 GOSUB 93:IF Z3800=1 THEN GOSUB 330 ELSE GOSUB 325
  261. 3645 GOSUB 310:PRINT " ";P$:GOSUB 315:PRINT WV "KTS":GOSUB 275
  262. 3650 GOSUB 92:COLOR 15,0:LOCATE 24,24:INPUT;"IS THIS CORRECT?  (Y/N), S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:IF Z3800=1 THEN GOSUB 330:GOTO 3640 ELSE Z3650=1:GOSUB 3600:Z3650=0:GOTO 3640
  263. 3660 IF N$="Y" OR N$="y" OR N$="" THEN 3670 ELSE IF N$="N" OR N$="n" THEN 3600 ELSE 3650
  264. 3670 IF Z3800=1 THEN RETURN ELSE FOR X%=1 TO YS%:WD%(X%)=WD:WV%(X%)=WV:NEXT X%:GOTO 3900
  265. 3800 Z3800=1:FOR X%=1 TO YS%:GOSUB 330:GOSUB 3610:IF X%=1 AND WV=0 THEN 3500 ELSE IF N$="" AND WV=0 THEN WD=WD%(X%-1):WV=WV%(X%-1):GOSUB 3640
  266. 3810 WD%(X%)=WD:WV%(X%)=WV:WV=0:NEXT X%:Z3800=0
  267. 3900 IF Z5260=1 THEN RETURN
  268. 4000 SKIPSCREEN=0:GOSUB 790:LOCATE 19,26:PRINT"THE PROGRAM IS COMPUTING THE":LOCATE 21,25:PRINT"INDIVIDUAL AND TOTAL DISTANCES."
  269. 4005 YF%=YS%:QFP%=0:CUMALT=0:CMD%=0:NWCD%=0:CLTIM=0:TIMADD=0:DLAL=0:LOTIM=0:DT=0:TIMT=0:BT=0:TOC%=0:TOP%=0:FOR X%=1 TO YF%:NA1$(X%)=NA$(X%):TY1$(X%)=TY$(X%):LD1%(X%)=LD%(X%):LM1(X%)=LM(X%):GD1%(X%)=GD%(X%):GM1(X%)=GM(X%):D1%(X%)=0
  270. 4010 DCUM1%(X%)=0:WD1%(X%)=WD%(X%):WV1%(X%)=WV%(X%):TC1%(X%)=0:VAR1%(X%)=VAR%(X%):TIM(X%)=0:NEXT X%:FOR X%=1 TO 13:CLTAS%(X%)=0:CLTAS%(X%)=0:CLDCUM%(X%)=0:CLGS%(X%)=0:CLTIM(X%)=0:CLMC%(X%)=0:DWD%(X%)=0:CLTC%(X%)=0:NEXT X%
  271. 4140 FOR X%=2 TO YF%:Z%=X%-1:IF XA(Z%)=XA(X%) THEN XA(Z%)=XA(Z%)+RF
  272. 4150 IF B(Z%)=B(X%) THEN B(Z%)=B(Z%)+RF
  273. 4160 XA=XA(X%)-XA(Z%):B=B(X%)-B(Z%):SR=(ABS(B))*60:TA=TAN((45+(XA(X%))/2)*RD):TB=TAN((45+(XA(Z%))/2)*RD):TR=3436*(LOG(TA/TB)):TC=(ATN(SR/TR))*DG:IF TC=0 THEN 4175
  274. 4165 TD=ABS(TC):IF (TD>269 AND TD<271) OR (TD>89 AND TD<91) THEN 4180
  275. 4170 D=ABS((XA/(COS(TC*RD))))*60:GOTO 4200
  276. 4175 D=ABS(XA)*60:GOTO 4200
  277. 4180 D=(ABS(B)*(COS(LD(Z)*RD)))*60
  278. 4200 TX=B/(D/60):TY=XA/(D/60):IF TY>0 THEN 4240
  279. 4210 IF TX>0 THEN TC=180+(ABS(TC))
  280. 4220 IF TX<0 THEN TC=180-(ABS(TC))
  281. 4230 GOTO 4250
  282. 4240 IF TX>0 THEN TC=360-(ABS(TC))
  283. 4250 IF (B(X%)=(B(Z%)-RF)) AND (XA(Z%)>XA(X%)) THEN TC=TC+180
  284. 4260 TC1%(X%)=FN R(ABS(TC)):IF D<1 THEN D=1
  285. 4270 D1%(X%)=D:DT=DT+D1%(X%):FOR DD%=X% TO 2 STEP -1:DCUM1%(X%)=DCUM1%(X%)+D1%(DD%):NEXT DD%:NEXT X%
  286. 4300 X%=1:IF ROC%=0 THEN 4600 ELSE IF SKIPSCREEN=1 THEN 4302 ELSE GOSUB 790:LOCATE 19,26:PRINT"THE PROGRAM IS COMPUTING THE":LOCATE 21,27:PRINT"CLIMB NUMBERS AND PROFILE."
  287. 4302 DP%=DEPALT:GOSUB 350:IF DP%=0 THEN DLAL=5001:IF DLAL<=CRUALT THEN 4320 ELSE DLAL=CRUALT:GOTO 4320
  288. 4305 FIRST=1:IF DP%>0 AND DP%<5000 THEN DLAL=5000-DP%:CUMALT=DP%:GOTO 4320
  289. 4310 IF DP%>=5000 THEN CUMALT=CUMALT+5000:DP%=DP%-5000:GOTO 4310 ELSE CUMALT=CUMALT+DP%
  290. 4315 DLAL=5000-DP%
  291. 4320 X%=X%+1:IF DLAL=0 THEN TOC%=X%-1:GOTO 4500 ELSE IF FIRST=1 THEN FIRST=0:GOTO 4340 ELSE IF DLAL<5000 THEN TOC%=X% ELSE DLAL=5000
  292. 4340 IF IAS%>250 AND CUMALT<10000 THEN CA%=250 ELSE CA%=IAS%
  293. 4343 PA=FIX(CUMALT+DLAL/2):IT=(FN RT(PA/1000)* -2)+15:IF PA>CRUALT THEN PA=CUMALT
  294. 4344 IF IT<-56 THEN IT=-56
  295. 4347 IF PA>35332! THEN P1=211.6*(EXP(-1*(1.452+((PA-35332!)/20950)))) ELSE P1=((1-(PA*6.8753E-06))^5.2563)*2116.22
  296. 4350 P2=(((((CA%*CA%*.0023769/5201.614)+1)^3.5)-1)*2116.22)+P1:M=((((P2/P1)^.2857)-1)*5)^.5:TK=(IT+273.15)/(1+(.205*M*M)):VT=38.96*M*(TK^.5):IF VT>TAS% THEN VT=TAS%
  297. 4360 CLTAS%(X%)=FN RT(VT):TIM=(DLAL/ROC%(X%))/60:NWCD%=CMD%+(TIM*CLTAS%(X%)):IF X%=2 THEN Z%=1:C%=2:GOTO 4390 ELSE IF NWCD%<=DCUM1%(2) THEN Z%=2:C%=2:GOTO 4390
  298. 4370 FOR Z%=2 TO YF%:IF NWCD%>DCUM1%(Z%) THEN NEXT Z%:GOTO 5990
  299. 4380 C%=Z%:AD%=DCUM1%(Z%)-NWCD%:PD%=NWCD%-DCUM1%(Z%-1):IF PD%<AD% THEN Z%=Z%-1
  300. 4390 WD=TC1%(C%):CLTC%(X%)=WD:GOSUB 505:XA1=WD:XA2=W1:WD=WD1%(Z%):GOSUB 505:M1=WD:M2=W1:IF XA1>180 AND XA2>M2 THEN 4400 ELSE IF XA1<=180 AND XA2<M2 THEN 4400 ELSE XA=ABS(XA1-M2):GOTO 4410
  301. 4400 XA=ABS(XA2-M1)
  302. 4410 WV=WV1%(Z%):VT=CLTAS%(X%):VR=0:GOSUB 510:CLGS%(X%)=GS:CLTIM(X%)=TIM:CLMC%(X%)=MH
  303. 4420 DWD%(X%)=TIM*GS:CMD%=CMD%+DWD%(X%):FOR DD%=X% TO 2 STEP -1:CLDCUM%(X%)=CLDCUM%(X%)+DWD%(DD%):NEXT DD%:IF TOC%>0 THEN 4500 ELSE IF DLAD>=5000 THEN CUMALT=CUMALT+5000 ELSE CUMALT=CUMALT+DLAL
  304. 4430 DLAL=CRUALT-CUMALT:GOTO 4320
  305. 4500 Z%=2:LOTIM=0:FOR X%=2 TO YF%:FOR W%=Z% TO TOC%:IF W%=2 AND DCUM1%(X%)<CLDCUM%(W%) THEN 4530 ELSE IF DCUM1%(X%)>CLDCUM%(W%) THEN NEXT W%
  306. 4510 DADD%=DCUM1%(X%)-CLDCUM%(W%-1):IF W%=>TOC% THEN 4550 ELSE PC=DADD%/DWD%(W%):TIMADD=CLTIM(W%)*PC
  307. 4515 FOR V%=Z% TO W%-1:CLTIM=CLTIM+CLTIM(V%):NEXT V%:TIM(X%)=CLTIM+TIMADD:TIM(X%)=FN R((TIM(X%)+LOTIM)*60)
  308. 4520 TAS%(X%)=CLTAS%(W%):GS%(X%)=CLGS%(W%):VR=VAR1%(X%):FOR V%=2 TO TOC%:IF CLTC%(V%)<>TC1%(X%) THEN NEXT V% ELSE WD=CLMC%(V%):GOSUB 535:MH%(X%)=MH
  309. 4525 LOTIM=ABS(CLTIM(W%)-TIMADD):Z%=W%+1:NEXT X%
  310. 4530 PC=DCUM1%(X%)/CLDCUM%(W%):TT=CLTIM(W%)*PC:TIM(X%)=FN R(TT*60):IF DCUM1%(X%+1)>=CLDCUM%(W%) THEN TIMADD=TT:GOTO 4520
  311. 4540 X%=X%+1:PC=D1%(X%)/CLDCUM%(W%):TIM(X%)=FN R(CLTIM(W%)*PC*60):IF DCUM1%(X%+1)>=CLDCUM%(W%) THEN 4545 ELSE 4540
  312. 4545 FOR V%=2 TO X%:TIMADD=TIMADD+TIM(V%):NEXT V%:GOTO 4520
  313. 4550 FOR V%=YF% TO X% STEP -1:U%=V%+1:NA1$(U%)=NA1$(V%):TY1$(U%)=TY1$(V%):LD1%(U%)=LD1%(V%):LM1(U%)=LM1(V%):GD1%(U%)=GD1%(V%):GM1(U%)=GM1(V%):D1%(U%)=D1%(V%):DCUM1%(U%)=DCUM1%(V%):WD1%(U%)=WD1%(V%):WV1%(U%)=WV1%(V%)
  314. 4555 TC1%(U%)=TC1%(V%):VAR1%(U%)=VAR1%(V%):NEXT V%:YF%=YF%+1
  315. 4560 NA1$(X%)="(TOC)":TY1$(X%)="T":D1%(X%)=D1%(X%+1)-DWD%(TOC%):TC1%(X%)=TC1%(X%+1):AD%=DCUM1%(X%+1)-CLDCUM%(TOC%):PD%=CLDCUM%(TOC%)-DCUM1%(X%-1):IF PD%>AD% THEN XX%=X%+1 ELSE XX%=X%-1
  316. 4565 WD1%(X%)=WD1%(XX%):WV1%(X%)=WV1%(XX%):D1%=DCUM1%(X%+1)-CLDCUM%(TOC%):D1%(X%)=ABS(D1%(X%+1)-D1%):D1%(X%+1)=D1%:DCUM1%(X%)=DCUM1%(X%-1)+D1%(X%):TOP%=X%
  317. 4567 IF D1%<0 THEN SKIPSCREEN=1:IF CRUALT<15000 THEN CRUALT=CRUALT+100:GOTO 4005 ELSE IF CRUALT<30000 THEN CRUALT=CRUALT+250:GOTO 4005 ELSE CRUALT=CRUALT+500:GOTO 4005
  318. 4570 VAR1%(X%)=INT((VAR1%(X%+1)+VAR1%(X%-1))/2):CLTIM=0:FOR V%=Z% TO TOC%:CLTIM=CLTIM+CLTIM(V%):NEXT V%:TIM(X%)=FN R((CLTIM+LOTIM)*60):LD1%(X%)=0:LM1(X%)=0:GD1%(X%)=0:GM1(X%)=0:TAS%(X%)=CLTAS%(TOC%):GS%(X%)=CLGS%(TOC%)
  319. 4600 GOSUB 790:LOCATE 19,26:PRINT"THE PROGRAM IS NOW COMPUTING":LOCATE 21,27:PRINT"THE DIFFERENT CHECKPOINTS.":DD=DT:FOR X%=2 TO YF%:IF X%<TOP% THEN 4650
  320. 4610 WD=TC1%(X%):GOSUB 505:XA1=WD:XA2=W1:WD=WD1%(X%):GOSUB 505:M1=WD:M2=W1:IF XA1>180 AND XA2>M2 THEN 4620 ELSE IF XA1<=180 AND XA2<M2 THEN 4620 ELSE XA=ABS(XA1-M2):GOTO 4625
  321. 4620 XA=ABS(XA2-M1)
  322. 4625 IF X%=TOP% THEN VT=TAS%(X%) ELSE VT=TAS%:TAS%(X%)=TAS%
  323. 4630 WV=WV1%(X%):VR=VAR1%(X%):GOSUB 510:GS%(X%)=GS:MH%(X%)=MH:IF X%=TOP% THEN 4650 ELSE TIM(X%)=FN R(D1%(X%)/GS*60)
  324. 4650 DR(X%)=DD-D1%(X%):DD=DR(X%):IF BR>0 THEN FBURN(X%)=FN RT(BR*TIM(X%)/60):IF X%<=TOP% THEN FBURN(X%)=FN RT(FBURN(X%)*2)
  325. 4660 BT=BT+FBURN(X%):NEXT X%:FOR X%=2 TO YF%:IF TIM(X%)<1 THEN TIM(X%)=1
  326. 4665 TIMT=TIMT+TIM(X%):IF TAS%(X%)=0 THEN TAS%(X%)=TAS%
  327. 4670 NEXT X%:TT=TIMT:FOR X%=2 TO YF%:TR(X%)=TT-TIM(X%):TT=TR(X%):NEXT X%
  328. 5000 ERNO=5000:GOSUB 90:COLOR 7,0:LOCATE 13,24:PRINT"PLEASE CHOOSE HOW YOU WANT THE":LOCATE 14,24:PRINT"FLIGHT PLAN PRESENTED.":LOCATE 16,27:PRINT"V - VIDEO MONITOR (SCREEN)":LOCATE 18,27:PRINT"P - PRINTED HARD COPY (PAPER)"
  329. 5005 IF QFP%=1 THEN 5020 ELSE GOSUB 275
  330. 5010 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  V, P, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 5000 ELSE IF N$="V" OR N$="v" THEN 5100 ELSE IF N$="P" OR N$="p" THEN 5500 ELSE 5010
  331. 5020 LOCATE 20,27:PRINT"C - CHANGES IN FLIGHT PLAN":ROW%=22:GOSUB 275
  332. 5030 GOSUB 98:COLOR 15,0:LOCATE 24,27:INPUT;"INPUT  V, P, C, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 5000 ELSE IF N$="V" OR N$="v" THEN 5100 ELSE IF N$="P" OR N$="p" THEN 5500 ELSE IF N$="C" OR N$="c" THEN 5290 ELSE 5030
  333. 5100 QFP%=1:VM%=1:C%=0:CLS:PRINT NA1$(1) TAB(8) TY1$(1);:X%=1:GOSUB 450:PRINT TAB(24);"DIST HR:MM GS* *WD/WV* TAS TC* VAR MH* TMREM DIREM ";:IF BR>0 THEN PRINT"FBURN";
  334. 5110 PRINT:GOSUB 460:IF BR>0 THEN PRINT TAB(75);:FB=BR:GOSUB 480
  335. 5120 PRINT:PRINT:IF YF%<5 THEN PRINT
  336. 5125 FOR X%=2 TO YF%
  337. 5130 IF C%<9 THEN 5150 ELSE LOCATE 24,13:INPUT;"INPUT  <RETURN> OR 'F' FOR FORWARD,  'B' FOR BACKWARDS:  ",N$:IF N$="F" OR N$="f" THEN 5140 ELSE IF N$="B" OR N$="b" THEN GOSUB 470:GOTO 5125 ELSE IF N$="" THEN 5140 ELSE 5130
  338. 5140 GOSUB 470
  339. 5150 PRINT USING"##";X%;:PRINT" ";NA1$(X%);TAB(10);TY1$(X%);TAB(13);:IF X%=TOP% THEN 5160 ELSE GOSUB 450
  340. 5160 PRINT TAB(24);:PRINT USING"####";D1%(X%);:MM=TIM(X%):GOSUB 420:PRINT USING"###";GS%(X%);:PRINT" ";
  341. 5170 P=WD1%(X%):GOSUB 210:PRINT P$;"/";:P=WV1%(X%):GOSUB 210:PRINT P$;" ";:PRINT USING"###";TAS%(X%);:P=TC1%(X%):GOSUB 210:PRINT" ";P$;" ";:IF VAR1%(X%)=0 THEN PRINT " 0"; ELSE PRINT USING"+##";VAR1%(X%);
  342. 5180 P=MH%(X%):GOSUB 210:PRINT TAB(59);P$;:MM=TR(X%):GOSUB 420:PRINT USING"#####";DR(X%);:PRINT" ";:IF BR>0 THEN FB=FBURN(X%):GOSUB 480
  343. 5190 IF X%=TOP% AND BR=0 THEN PRINT:GOTO 5200 ELSE IF X%=TOP% THEN 5200 ELSE GOSUB 460
  344. 5200 PRINT:IF X%<YF% AND YF%<7 THEN PRINT:IF X%<YF% AND YF%<5 THEN PRINT
  345. 5210 C%=C%+1:NEXT X%:IF YF%<5 THEN PRINT
  346. 5220 FOR XX%=1 TO 73:PRINT"-";:NEXT XX%:IF BR>0 THEN PRINT"------" ELSE PRINT
  347. 5225 PRINT"  T O T A L S:";TAB(23);:PRINT USING"#####";DT;:MM=TIMT:GOSUB 420:PRINT TAB(74);:IF BR>0 THEN FB=BT:IF BR>100 THEN PRINT USING"######";FB ELSE PRINT USING"####.#";FB
  348. 5230 GOSUB 98:LOCATE 24,1:PRINT"'B' FOR BACK  or  DO YOU WANT TO MAKE ANY CHANGES?      ";
  349. 5232 COLOR 15,0:PRINT"PUSH  (Y/N)  or  B:  ";:N$=INPUT$(1):COLOR 7,0:IF N$="Y" OR N$="y" THEN 5250 ELSE IF N$="N" OR N$="n" THEN 5240 ELSE IF N$="B" OR N$="b" THEN 5235 ELSE 5230
  350. 5235 GOSUB 470:GOTO 5125
  351. 5240 CLS:CT=9:GOSUB 9130:GOSUB 725:Z5240=1:GOSUB 600:Z5240=0:GOTO 5000
  352. 5250 GOSUB 98:LOCATE 24,1:PRINT"1-TAS  2-CLMB IAS  3-ROC  4-ALT  5-FUEL  6-WIND  7-NONE    ";:COLOR 15,0:PRINT"PUSH  1-7 or <RET>:";:COLOR 7,0:N$=INPUT$(1):IF ASC(N$)=13 OR N$="7" THEN 5230 ELSE N%=VAL(N$):IF N%<1 OR N%>6 THEN 5250
  353. 5255 CLS:CT=9:GOSUB 9130:Z5255=1:GOSUB 600:Z5255=0:GOSUB 725
  354. 5260 Z5260=1:ON N% GOSUB 6950,6960,6970,3300,3400,3500
  355. 5270 Z5260=0:GOSUB 90:LOCATE 15,24:PRINT"DO YOU WANT TO MAKE ANY MORE CHANGES?":GOSUB 275
  356. 5280 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 GOSUB 725:GOTO 5270 ELSE IF N$="N" OR N$="n" THEN 5285 ELSE IF N$="Y" OR N$="y" THEN 5290 ELSE 5280
  357. 5285 TAS%=VT1%:GOSUB 490:IF IAS%>TAS% THEN 5290
  358. 5287 IF ROC%>0 AND CRUALT<1000 THEN GOSUB 495:GOTO 5290 ELSE 4000
  359. 5290 GOSUB 90:LOCATE 14,29:PRINT"CHANGES IN FLIGHT PLAN:":LOCATE 16,32:PRINT"1 - TAS":LOCATE 17,32:PRINT"2 - CLIMB IAS":LOCATE 18,32:PRINT"3 - RATE-OF-CLIMB":LOCATE 19,32:PRINT"4 - ALTITUDES":LOCATE 20,32:PRINT"5 - FUEL BURN"
  360. 5300 LOCATE 21,32:PRINT"6 - WINDS":LOCATE 22,32:PRINT"7 - NONE"
  361. 5310 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  1-7 or <RETURN>:  ",N$:COLOR 7,0:N%=VAL(N$):IF N$="" THEN 5270 ELSE IF N%=7 THEN 5270 ELSE IF N%<1 OR N%>6 THEN 5310 ELSE 5260
  362. 5500 QFP%=1:VM%=0:GOSUB 90:LOCATE 14,24:PRINT"PLEASE CHECK THE FOLLOWING ITEMS:":LOCATE 17,29:PRINT"* PRINTER TURNED ON":LOCATE 19,29:PRINT"* PAPER SET CORRECTLY"
  363. 5510 GOSUB 87:COLOR 15,0:LOCATE 22,32:INPUT"ANSWER  (Y/N):  ",N$:IF N$="N" OR N$="n" THEN 5000
  364. 5520 LPRINT:LPRINT:LPRINT "TITLE:  ";PRNTP$:LPRINT:LPRINT:LPRINT "CLIMB IAS:";IAS%;"KTS       CLIMB RATE:";ROC%;"       ALTITUDE:";:IF DEPALT=0 THEN LPRINT" SEA LEVEL "; ELSE LPRINT DEPALT;
  365. 5525 LPRINT"-";XCRUALT:LPRINT:LPRINT:LPRINT
  366. 5530 LPRINT NA1$(1) TAB(8) TY1$(1);:X%=1:GOSUB 400:LPRINT TAB(24);"DIST HR:MM GS* *WD/WV* TAS TC* VAR MH* TMREM DIREM ";:IF BR>0 THEN LPRINT"FBURN";
  367. 5540 LPRINT:GOSUB 410:IF BR>0 THEN LPRINT TAB(75);:FB=BR:GOSUB 430
  368. 5545 LPRINT:LPRINT TAB(13) "OUT________ OFF________":LPRINT:LPRINT
  369. 5550 FOR X%=2 TO YF%:LPRINT USING"##";X%;:LPRINT" ";NA1$(X%);TAB(10);TY1$(X%);TAB(13);:IF X%=TOP% THEN LPRINT TAB(14) "N O N E"; ELSE GOSUB 400
  370. 5560 LPRINT TAB(24);:LPRINT USING"####";D1%(X%);:MM=TIM(X%):GOSUB 420:LPRINT USING"###";GS%(X%);:LPRINT" ";
  371. 5565 P=WD1%(X%):GOSUB 210:LPRINT P$;"/";:P=WV1%(X%):GOSUB 210:LPRINT P$;" ";:LPRINT USING"###";TAS%(X%);:P=TC1%(X%):GOSUB 210:LPRINT" ";P$;" ";:IF VAR1%(X%)=0 THEN LPRINT " 0"; ELSE LPRINT USING"+##";VAR1%(X%);
  372. 5570 P=MH%(X%):GOSUB 210:LPRINT TAB(59);P$;:MM=TR(X%):GOSUB 420:LPRINT USING"#####";DR(X%);:LPRINT" ";:IF BR>0 THEN FB=FBURN(X%):GOSUB 430
  373. 5580 IF X%=TOP% THEN 5590 ELSE GOSUB 410
  374. 5590 LPRINT:LPRINT TAB(25);"ETA________ ATA________":LPRINT
  375. 5600 NEXT X%:FOR XX%=1 TO 73:LPRINT"-";:NEXT XX%:IF BR>0 THEN LPRINT"------"
  376. 5610 LPRINT:LPRINT:LPRINT"  T O T A L S:";TAB(23);:LPRINT USING"#####";DT;:MM=TIMT:GOSUB 420:LPRINT TAB(38);"ON________  IN________";TAB(74);:IF BR>0 THEN FB=BT:IF BR>100 THEN LPRINT USING"######";FB ELSE LPRINT USING"####.#";FB
  377. 5620 LPRINT:LPRINT:LPRINT:GOTO 5000
  378. 5990 GOSUB 90:COLOR 15,0:LOCATE 14,24:PRINT"THE CRUISE ALTITUDE WILL NOT BE":LOCATE 15,24:PRINT"REACHED WITHIN THE CALCULATED":LOCATE 16,24:PRINT"DISTANCE OF THIS FLIGHT PLAN!"
  379. 5995 LOCATE 18,24:PRINT"YOU MUST CHANGE ONE OR MORE OF":LOCATE 19,24:PRINT"THE PARAMATERS IN ORDER FOR THIS":LOCATE 20,24:PRINT"PROGRAM TO COMPUTE THE REQUESTED":LOCATE 21,24:PRINT"INFORMATION.":GOSUB 990:GOSUB 980:GOTO 3000
  380. 6000 Z6000=1:LL%=0:GOSUB 720:IF YT%=>33 THEN GOTO 6900
  381. 6005 GOSUB 91:LOCATE 14,24:COLOR 15,0:PRINT"ENTER THE DEPARTURE POINT.":COLOR 7,0:GOSUB 290:IF CT%=1 THEN 1110
  382. 6010 NA$(1)=CL$:GOSUB 900:LOCATE 14,24:PRINT SPACE$(55):LOCATE 14,24:COLOR 15,0:PRINT"ENTER YOUR DESTINATION.":COLOR 7,0:GOSUB 292: IF CT%=1 THEN 9000
  383. 6020 LG$=CL$:GOSUB 903:GOSUB 950:IF CT%=1 THEN 1000 ELSE GOSUB 906:GOSUB 220
  384. 6030 GOSUB 86:LOCATE 22,24:COLOR 15,0:PRINT"ENTER DEPARTURE POINT TYPE: ":COLOR 7,0:X$=INPUT$(1):GOSUB 240:IF CT%=1 OR X$="S" THEN 9000 ELSE IF CT%=2 OR X$="E" THEN GOSUB 960:GOTO 6030
  385. 6035 TY$(1)=X$:IF X$="L" THEN NA$(1)="L/L 1":LL%=LL%+1:GOSUB 900:GOSUB 903:GOSUB 906
  386. 6037 GOSUB 910:GOSUB 280:GOSUB 380
  387. 6040 Y%=2:FOR X%=2 TO 23
  388. 6045 GOSUB 87:LOCATE 22,24:PRINT"NUMBER:";X%;
  389. 6050 LOCATE 22,38:PRINT SPACE$(40);:COLOR 15,0:LOCATE 22,38:PRINT"TYPE: ";:IF Z6275%=1 THEN COLOR 23,0:PRINT TY$(X%);
  390. 6055 COLOR 7,0:X$=INPUT$(1):LOCATE 22,44:PRINT X$:GOSUB 240:COLOR 7,0:IF Z6275%=1 AND CT%=1 THEN CT%=4:RETURN
  391. 6060 IF Z6275%=1 AND X$="E" THEN CT%=4:RETURN ELSE TY$(X%)=X$:IF CT%=2 THEN 6050
  392. 6070 X$=TY$(X%): IF X$="A" THEN 6095 ELSE IF X$="V" THEN 6120 ELSE IF X$="X" THEN 6145 ELSE IF X$="L" THEN 6170 ELSE IF X$="E" THEN 6185 ELSE IF X$="S" THEN 1000 ELSE 6050
  393. 6095 GOSUB 260:LOCATE 16,29:PRINT"A  AIRPORT:":LOCATE 18,29:PRINT"ENTER 3 OR 4 LETTERS":LOCATE 19,29:PRINT"OR NUMBERS":GOSUB 780:GOSUB 700:IF Z6275%=1 AND CT%=1 THEN CT%=4:RETURN
  394. 6100 IF CT%=1 THEN GOSUB 280:GOSUB 380:GOTO 6045
  395. 6105 CX%=LEN(CL$):IF CX%<3 OR CX%>4 THEN 6095
  396. 6110 GOSUB 710:IF CT%=2 THEN GOSUB 960:GOTO 6095 ELSE 6175
  397. 6120 GOSUB 260:LOCATE 16,29:PRINT"V  VOR/RADIO AID:":LOCATE 18,29:PRINT"ENTER 2 OR 3 LETTERS":GOSUB 780:GOSUB 700:IF Z6275%=1 AND CT%=1 THEN CT%=4:RETURN ELSE IF CT%=1 THEN GOSUB 280:GOSUB 380:GOTO 6045
  398. 6130 CX%=LEN(CL$):IF CX%<2 OR CX%>3 THEN 6120 ELSE FOR C%=1 TO CX%:N%=ASC(MID$(CL$,C%,1)):IF N%<65 OR N%>90 THEN 6120 ELSE NEXT C%:GOTO 6175
  399. 6145 GOSUB 260:LOCATE 16,29:PRINT"X  INTERSECTION:":LOCATE 18,29:PRINT"ENTER 5 LETTERS":GOSUB 780:GOSUB 700:IF Z6275%=1 AND CT%=1 THEN CT%=4:RETURN ELSE IF CT%=1 THEN GOSUB 280:GOSUB 380:GOTO 6045
  400. 6155 IF LEN(CL$)<>5 THEN 6145 ELSE FOR C%=1 TO 5:N1%=ASC(MID$(CL$,C%,1)):IF N1%<65 OR N1%>90 THEN 6145 ELSE NEXT C%:GOTO 6175
  401. 6170 LL%=LL%+1:LL$=STR$(LL%):CL$="L/L"+LL$
  402. 6175 NA$(X%)=CL$:IF Z6275%=1 THEN RETURN ELSE Y%=Y%+1:GOSUB 910:GOSUB 280:GOSUB 380:NEXT X%
  403. 6185 GOSUB 280
  404. 6190 GOSUB 86:LOCATE 22,24:COLOR 15,0:PRINT"ENTER THE DESTINATION TYPE: ":COLOR 7,0:X$=INPUT$(1):GOSUB 240:IF X$="S" THEN 9000 ELSE IF X$="E" THEN 6190 ELSE IF CT%=3 THEN 6192 ELSE 6190
  405. 6192 NA$(X%)=LG$:TY$(X%)=X$:IF X$="L" THEN LL%=LL%+1:LL$=STR$(LL%):NA$(X%)="L/L"+LL$:GOSUB 903
  406. 6193 GOSUB 910
  407. 6194 GOTO 6940
  408. 6195 Z6217=0:IF Y%<2 THEN 1000 ELSE GOSUB 90:LOCATE 15,24:PRINT"DO YOU WISH TO MAKE ANY CHANGES":LOCATE 16,24:PRINT"IN THE FLIGHT PLAN LIST?":LOCATE 19,29:PRINT"S - SUBMENU   Q - QUIT"
  409. 6200 GOSUB 87:COLOR 15,0:LOCATE 22,29:INPUT"INPUT  Y/N, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 6195
  410. 6205 IF N$="Y" THEN 6210 ELSE IF N$="N" THEN 6310 ELSE 6200
  411. 6210 GOSUB 90:LOCATE 13,24:PRINT"TO CHANGE OR ADD AN ITEM, INPUT":LOCATE 14,24:PRINT"THE ITEM NUMBER;  OR 'T' FOR TAS,":LOCATE 15,24:PRINT"'C' FOR CLIMB IAS, OR 'R' FOR ROC.":LOCATE 17,24:PRINT"TO INSERT AN ITEM, PLACE AN  'I'"
  412. 6212 LOCATE 18,24:PRINT"IN FRONT OF THE ITEM NUMBER.":LOCATE 20,24:PRINT"PUSH  <RETURN>  WITHOUT ANY OTHER":LOCATE 21,24:PRINT"ENTRIES TO DELETE AN ITEM OR END CHANGES."
  413. 6215 GOSUB 92:LOCATE 24,24:COLOR 15,0:INPUT;"INPUT ITEM #, T, C, or R:  ",X$:COLOR 7,0:IF X$="" THEN 6195
  414. 6217 IF X$="T" OR X$="t" THEN Z6217=1:GOSUB 6950:GOTO 6195 ELSE IF X$="C" OR X$="c" THEN Z6217=1:GOSUB 6960:GOTO 6195 ELSE IF X$="R" OR X$="r" THEN Z6217=1:GOSUB 6970:GOTO 6195
  415. 6220 IF LEFT$(X$,1)="I" THEN 6235 ELSE X%=VAL(X$):IF X%<1 OR X%>24 THEN 6195 ELSE IF X%>Y%+1 THEN 6195 ELSE IF X%=Y%+1 THEN Y%=Y%+1:GOTO 6275 ELSE GOTO 6275
  416. 6235 X1$=MID$(X$,2,1):X2$=MID$(X$,3,1):X$=X1$+X2$:X%=VAL(X$)
  417. 6240 IF X%<1 THEN 6195 ELSE IF X%>Y% THEN 6195 ELSE IF (X%+1)>24 THEN 6195 ELSE IF Y%=24 THEN 6195
  418. 6260 Y%=Y%+1:FOR Z%=Y% TO (X%+1) STEP -1:NA$(Z%)=NA$(Z%-1):TY$(Z%)=TY$(Z%-1):NEXT Z%:NA$(X%)="":TY$(X%)="":LG$=NA$(Y%)
  419. 6275 Z6275%=1:Z6000=0:GOSUB 220:GOSUB 6045:Z6275%=0:IF X%=Y% THEN LG$=NA$(X%)
  420. 6280 IF CT%=4 THEN 6290 ELSE 6300
  421. 6290 Y%=Y%-1:FOR Z%=X% TO Y%:NA$(Z%)=NA$(Z%+1):TY$(Z%)=TY$(Z%+1):NEXT Z%:LG$=NA$(Y%):NA$(Z%)="":TY$(Z%)=""
  422. 6300 GOSUB 900:GOSUB 906:GOSUB 903:GOSUB 910:Z6300=1:GOSUB 6958:GOSUB 6968:GOSUB 6978:Z6300=0:GOTO 6195
  423. 6310 GOSUB 90:LOCATE 14,24:PRINT"DO YOU WISH TO SAVE THIS FLIGHT":LOCATE 15,24:PRINT"PLAN LIST?":LOCATE 18,34:PRINT"(DRIVE ";DRIVE$;")":GOSUB 340
  424. 6350 GOSUB 98:COLOR 15,0:LOCATE 24,28:INPUT;"INPUT  Y/N, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 6310 ELSE IF N$="N" OR N$="n" THEN 6360 ELSE IF N$="Y" OR N$="y" THEN GOSUB 855:GOTO 6400
  425. 6355 IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 6310 ELSE 6350
  426. 6360 GOSUB 90:COLOR 0,7:LOCATE 13,31:PRINT" *** N O T E *** ":COLOR 7,0:LOCATE 15,28:PRINT"IF YOU DO NOT SAVE THIS":LOCATE 16,28:PRINT"FLIGHT PLAN LIST, YOU":LOCATE 17,28:PRINT"WILL ONLY BE ABLE TO USE"
  427. 6363 LOCATE 18,28:PRINT"IT ONE TIME.":LOCATE 20,28:PRINT"WOULD YOU LIKE ANOTHER":LOCATE 21,28:PRINT"CHANCE TO SAVE THIS LIST?"
  428. 6366 GOSUB 98:LOCATE 24,31:COLOR 15,0:INPUT;"ANSWER  (Y/N):  ",N$:COLOR 7,0:IF Z6434=1 THEN RETURN ELSE IF N$="Y" OR N$="y" THEN 6310 ELSE IF N$="N" OR N$="n" THEN 2050 ELSE 6366
  429. 6370 GOSUB 950:IF CT%=1 THEN 6310
  430. 6400 CL$=NA$(1)+"-"+LG$+"/"+RIGHT$(STR$(FP%),1)
  431. 6405 FOR X%=1 TO YT%:IF CL$=S2$(X%) THEN 6410 ELSE NEXT X%:GOTO 6430
  432. 6410 GOSUB 93:COLOR 7,0:LOCATE 14,24:PRINT"YOU HAVE ALREADY SAVED A FILE":LOCATE 15,24:PRINT"UNDER THE NAME OF:":LOCATE 17,1:COLOR 15,0:PRINT TAB(37-(INT(LEN(CL$)/2))) CL$:COLOR 7,0
  433. 6412 LOCATE 19,24:PRINT"DO YOU WISH TO WRITE OVER AND":LOCATE 20,24:PRINT"ERASE THE EXISTING FILE?"
  434. 6414 GOSUB 92:COLOR 15,0:LOCATE 23,31:INPUT"ANSWER  (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 720:GOTO 6410
  435. 6416 IF N$="N" OR N$="n" THEN 6420 ELSE IF N$="Y" OR N$="y" THEN Z6416=1:GOTO 6430 ELSE 6414
  436. 6420 GOSUB 99:COLOR 7,0:LOCATE 19,24:PRINT"DO YOU WISH TO USE ANOTHER    ":LOCATE 20,24:PRINT"NUMBER.  (IF YOU ANSWER 'N',":LOCATE 21,24:PRINT"THIS LIST WILL NOT BE SAVED.)"
  437. 6422 GOSUB 92:COLOR 15,0:LOCATE 23,31:INPUT"ANSWER  (Y/N):  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN 9000 ELSE IF N$="N" OR N$="n" THEN 2055 ELSE IF N$="Y" OR N$="y" THEN 6370
  438. 6430 ERNO=6430:GOSUB 90:LOCATE 14,24:PRINT"DO YOU WISH TO SAVE THIS FILE ON":LOCATE 15,24:PRINT"THE DEFAULT DRIVE AS SHOWN BELOW?":LOCATE 18,35:PRINT"DRIVE  " DRIVE$:GOSUB 340
  439. 6432 GOSUB 98:COLOR 15,0:LOCATE 24,27:INPUT;"INPUT  Y/N, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 725:GOTO 6430 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 6430
  440. 6434 IF N$="N" OR N$="n" THEN Z6434=1:GOSUB 6360:Z6434=0:IF N$="N" OR N$="n" THEN 2055 ELSE IF N$="Y" OR N$="y" THEN 6430
  441. 6436 IF N$="Y" OR N$="y" THEN Z6436=1:GOTO 6500 ELSE 6430
  442. 6440 GOSUB 86:COLOR 15,0:LOCATE 22,14:PRINT"***  PLEASE STAND BY, THE FILES ARE BEING SORTED.  ***";:COLOR 7,0
  443. 6445 IF Z6416=0 THEN 6600 ELSE S2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):S1$(X%)="FP-"+XX$:LISTS$="\QFP4DIR\"+S1$(X%):GOTO 6800
  444. 6500 IF YT%=>33 THEN Z6500=1:GOSUB 6900:Z6500=0:GOTO 6405
  445. 6510 IF Z6436=1 THEN Z6436=0:GOTO 6440 ELSE 6405
  446. 6600 FOR X%=YT% TO 1 STEP -1:IF LEN(S1$(X%))=4 THEN Z%=VAL(RIGHT$(S1$(X%),1)) ELSE Z%=VAL(RIGHT$(S1$(X%),2))
  447. 6610 T1$(Z%)=S1$(X%):T2$(Z%)=S2$(X%):NEXT X%:YT%=YT%+1
  448. 6620 FOR X%=1 TO 33:IF T1$(X%)="" THEN 6625 ELSE NEXT X%
  449. 6625 XX%=1:T2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):T1$(X%)="FP-"+XX$:LISTS$="\QFP4DIR\"+T1$(X%)
  450. 6630 FOR X%=XX% TO 33:IF T1$(X%)="" THEN 6640 ELSE NEXT X%:GOTO 6800
  451. 6640 FOR Z%=X% TO 32:T1$(Z%)=T1$(Z%+1):T2$(Z%)=T2$(Z%+1):NEXT Z%:XX%=X%+1:GOTO 6630
  452. 6800 ERNO=6800:IF Z6416=1 THEN Z6416=0:GOTO 6810
  453. 6805 OPEN TITLE$ FOR OUTPUT AS #1:WRITE #1,YT%:FOR X%=1 TO YT%:WRITE #1,T1$(X%),T2$(X%):NEXT X%:CLOSE #1
  454. 6810 OPEN LISTS$ FOR OUTPUT AS #2:WRITE #2,Y%,FP%:FOR X%=1 TO Y%:WRITE #2,TY$(X%),NA$(X%):NEXT X%:WRITE #2,VT1%,IAS%,ROC%:CLOSE #2:GOTO 1000
  455. 6900 GOSUB 91:LOCATE 14,24:PRINT"YOU HAVE ALREADY SAVED YOUR":LOCATE 15,24:PRINT"MAXIMUM OF 33 FLIGHT PLANS.":LOCATE 17,24:PRINT"IF YOU WISH TO ADD ANY NEW":LOCATE 18,24:PRINT"FLIGHT PLAN LISTS, PUSH 'E'"
  456. 6910 LOCATE 19,24:PRINT"WHEN AT THE SUBMENU.":LOCATE 21,24:PRINT"OR, YOU MAY CHANGE THE DISK":LOCATE 22,24:PRINT"AND/OR THE DISK DRIVE."
  457. 6920 GOSUB 980:IF Z6500=1 THEN RETURN ELSE GOTO 1110
  458. 6940 GOSUB 90:LOCATE 14,24:PRINT"DO YOU WISH TO ENTER THE TRUE":LOCATE 15,24:PRINT"AIRSPEED (TAS), CLIMB INDI-":LOCATE 16,24:PRINT"CATED AIRSPEED (IAS), AND THE":LOCATE 17,24:PRINT"RATE-OF-CLIMB (ROC) AT THIS TIME?"
  459. 6945 GOSUB 88:LOCATE 20,31:COLOR 15,0:INPUT"ANSWER  (Y/N):  ",N$:COLOR 7,0:IF N$="N" OR N$="n" THEN VT1%=0:IAS%=0:ROC%=0:GOTO 6195 ELSE IF N$="Y" OR N$="y" THEN 6950 ELSE 6940
  460. 6950 GOSUB 90:LOCATE 14,24:PRINT"THE TRUE AIRSPEED USED FOR":LOCATE 15,24:PRINT"CRUISE MUST BE GREATER THAN ":LOCATE 16,24:PRINT"9 AND LESS THAN 800."
  461. 6955 GOSUB 88:GOSUB 680:LOCATE 20,31:COLOR 15,0:INPUT"INPUT TAS:  ",N$:COLOR 7,0:GOSUB 55:N=VAL(N$):GOSUB 685
  462. 6956 VT1%=INT(N):IF N=0 AND Z5260=1 THEN 6950 ELSE IF N=0 AND (Z3000=1 OR Z6217=1) THEN RETURN ELSE IF N=0 THEN 6940
  463. 6957 IF VT1%<10 OR VT1%>799 THEN 6950 ELSE LOCATE 20,41:PRINT SPACE$(25):LOCATE 20,42:PRINT VT1% "KTS";:GOSUB 230:IF N$="N" OR N$="n" THEN 6950 ELSE 6958
  464. 6958 LOCATE 2,64:PRINT SPACE$(17);:LOCATE 2,65:PRINT"TAS:";VT1%;:IF Z600=1 OR Z3000=1 OR Z5260=1 OR Z6217=1 OR Z6300=1 THEN RETURN ELSE GOTO 6960
  465. 6960 GOSUB 90:LOCATE 14,24:PRINT"CLIMB INDICATED AIRSPEED MUST":LOCATE 15,24:PRINT"BE GREATER THAN 9, BUT LESS":LOCATE 16,24:PRINT"THAN 800 OR TAS. (IF THE IAS":LOCATE 17,24:PRINT"IS RESTRICTED TO 250 KTS BELOW"
  466. 6962 LOCATE 18,24:PRINT"10,000', ENTER THE NORMAL IAS":LOCATE 19,24:PRINT"YOU WOULD USE ABOVE 10,000'.)"
  467. 6965 GOSUB 86:GOSUB 680:LOCATE 21,24:COLOR 15,0:INPUT"INPUT CLIMB IAS:  ",N$:COLOR 7,0:GOSUB 55:N=VAL(N$):GOSUB 685
  468. 6966 IAS%=INT(N):IF N=0 AND Z5260=1 THEN 6960 ELSE IF N=0 AND (Z3000=1 OR Z6217=1) THEN RETURN ELSE IF N=0 THEN 6940
  469. 6967 IF IAS%>VT1% THEN 6960 ELSE IF IAS%<10 OR IAS%>799 THEN 6960 ELSE LOCATE 21,41:PRINT SPACE$(25):LOCATE 21,41:PRINT IAS% "KTS";:GOSUB 230:IF N$="N" OR N$="n" THEN 6960 ELSE 6968
  470. 6968 LOCATE 4,64:PRINT SPACE$(17);:LOCATE 4,65:PRINT"IAS:";IAS%;:IF Z600=1 OR Z3000=1 OR Z5260=1 OR Z6217=1 OR Z6300=1 THEN RETURN ELSE GOTO 6970
  471. 6970 GOSUB 90:LOCATE 14,24:PRINT"THE RATE-OF-CLIMB MUST BE GREATER":LOCATE 15,24:PRINT"THAN 99 AND LESS THAN 10000.":LOCATE 17,24:PRINT"ENTER ZERO FOR NO CLIMB CALCULATIONS."
  472. 6975 GOSUB 88:LOCATE 20,31:COLOR 15,0:INPUT"INPUT ROC:  ",N$:COLOR 7,0:GOSUB 55:ROC%=INT(VAL(N$)):IF N$="" AND Z5260=1 THEN 6977 IF N$="" AND (Z3000=1 OR Z6217=1) THEN RETURN ELSE IF N$="" THEN 6940
  473. 6976 IF ROC%=0 THEN 6977 ELSE IF ROC%<100 OR ROC%>9999 THEN 6970
  474. 6977 GOSUB 230:IF N$="N" OR N$="n" THEN 6970 ELSE 6978
  475. 6978 LOCATE 6,64:PRINT SPACE$(17);:LOCATE 6,65:PRINT"ROC:";ROC%;:IF Z600=1 OR Z3000=1 OR Z5260=1 OR Z6217=1 OR Z6300=1 THEN RETURN ELSE GOTO 6195
  476. 7000 ERNO2=7000:IF YT%=0 THEN Z1125=1:GOTO 1000 ELSE GOSUB 740:X270$="ERASE.":GOSUB 270
  477. 7010 GOSUB 98:COLOR 15,0:LOCATE 24,24:PRINT"INPUT 1";:IF YT%=1 THEN 7015 ELSE PRINT"-";YT%;
  478. 7015 PRINT", D,";:INPUT;" S, or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 740:GOSUB 270:GOTO 7010 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 7000
  479. 7020 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN 7030 ELSE Z1125=1:GOTO 1110
  480. 7030 GOSUB 90:LOCATE 14,24:PRINT"IS THIS THE LIST YOU WISH TO ERASE?":GOSUB 730:COLOR 7,0:GOSUB 275:GOSUB 277
  481. 7035 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  Y/N, S or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE NN=N:GOSUB 50:N=NN:IF NOQT=1 THEN GOSUB 740:GOTO 7030
  482. 7037 IF N$="N" OR N$="n" THEN 7000 ELSE IF N$="Y" OR N$="y" THEN 7040 ELSE 7035
  483. 7040 GOSUB 93:COLOR 0,7:LOCATE 14,23:PRINT" ARE YOU SURE THAT YOU WANT TO ERASE: ":COLOR 7,0:GOSUB 730:COLOR 7,0:GOSUB 275:GOSUB 277
  484. 7050 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  Y/N, S, or Q:  ",N$:COLOR 7,0:NN=N:GOSUB 50:N=NN:IF NOQT=1 THEN GOSUB 740:GOTO 7040 ELSE IF N$="N" OR N$="n" THEN Z1125=1:GOTO 1000 ELSE IF N$="Y" OR N$="y" THEN 7060 ELSE 7050
  485. 7060 ERNO=7060:CANCEL$="\QFP4DIR\"+S1$(N):KILL CANCEL$
  486. 7070 YT%=YT%-1:FOR X%=1 TO YT%:IF N=X% THEN 7080 ELSE NEXT X%:GOTO 7090
  487. 7080 FOR Z%=X% TO YT%:S1$(Z%)=S1$(Z%+1):S2$(Z%)=S2$(Z%+1):NEXT Z%
  488. 7090 OPEN TITLE$ FOR OUTPUT AS #1:WRITE #1,YT%:FOR X%=1 TO YT%:WRITE #1,S1$(X%),S2$(X%):NEXT X%:CLOSE #1:GOTO 1000
  489. 7500 ERNO2=7500:IF YT%=0 THEN Z1125=1:GOTO 1000 ELSE GOSUB 760:X270$="CHANGE.":GOSUB 270
  490. 7510 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT%=1 THEN 7515 ELSE PRINT"-";YT%;
  491. 7515 PRINT", D,";:INPUT;" S, or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE GOSUB 50:IF NOQT=1 THEN GOSUB 760:GOSUB 270:GOTO 7510 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOTO 7500
  492. 7520 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN LISTS$="\QFP4DIR\"+S1$(N):GOSUB 600:GOTO 7530 ELSE Z1125=1:GOTO 1110
  493. 7530 GOSUB 90:LOCATE 14,24:PRINT"IS THIS THE LIST YOU WISH TO CHANGE?":GOSUB 730:COLOR 7,0:GOSUB 275:GOSUB 277
  494. 7535 GOSUB 98:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  Y/N, S or Q:  ",N$:COLOR 7,0:IF N$="S" OR N$="s" THEN Z1125=1:GOTO 1000 ELSE NN=N:GOSUB 50:N=NN:IF NOQT=1 THEN GOSUB 760:GOTO 7530
  495. 7537 IF N$="N" OR N$="n" THEN 9000 ELSE IF N$="Y" OR N$="y" THEN 7550 ELSE IF N$="" THEN 7550 ELSE 7535
  496. 7550 LL%=0:FOR Z%=1 TO Y%:IF TY$(Z%)="L" THEN LL%=LL%+1
  497. 7560 NEXT Z%:GOTO 6210
  498. 7600 GOSUB 91:LOCATE 14,24:PRINT"THIS FILE CANNOT BE FOUND ON THE DISK:":GOSUB 730:LOCATE 18,24:PRINT"YOU MUST USE THE ";:COLOR 0,7:PRINT" ERASE ";:COLOR 7,0:PRINT" OPTION TO"
  499. 7610 LOCATE 19,24:PRINT"REMOVE THE NAME FROM THE MASTER FILE.":GOSUB 980:GOTO 9000
  500. 9000 CLEAR:COLOR 7,0: ON ERROR GOTO 10000
  501. 9001 KEY OFF:WIDTH 80: ' ****** REMOVE THIS LINE LATTER **********************
  502. 9005 DIM XA(25),B(25),LD%(25),LM(25),GD%(25),GM(25),VAR%(25),WD%(25),WV%(25),NA$(25),TY$(25),R$(33),FP%(33),AR(5),S1$(33),S2$(33),T1$(34),T2$(34),GS%(25),TIM(25),FBURN(25),TC%(25),MH%(25),D%(25),DWD%(13),CLDCUM%(13),CLTAS%(13),CLGS%(13),CLTIM(13)
  503. 9007 DIM TAS%(25),CLTC%(13),CLMC%(13),DR(25),TR(25),NA1$(25),TY1$(25),D1%(25),WD1%(25),WV1%(25),TC1%(25),VAR1%(25),DCUM1%(25),LD1%(25),LM1(25),GD1%(25),GM1(25),ROC%(13)
  504. 9010 DEFINT A:DEF FN RT(X)=(INT(X*10+.5))/10:DEF FN RM(X)=(INT(X/100!+.5))/10!
  505. 9015 NS=1.15077945#:PI=ATN(1)*4:RD=PI/180:DG=180/PI:RF=9.999999E-06:ROW%=20:ROP$="RECORD OF PLANS":FC$=" QFP-4 "
  506. 9020 DEF FN RT(X)=(INT(X*10+.5))/10:DEF FN R(X)=INT(X+.5):DEF FN IS(X)=ATN(X/SQR(-X*X+1)):DASH$=STRING$(79,45)
  507. 9025 DIM MM$(11):MM$(0)=" 0 - Conversions ": MM$(1)=" 1 - Add/Subtract Time ": MM$(2)=" 2 - Fuel Problems ": MM$(3)=" 3 - Density Altitude ": MM$(4)=" 4 - TAS & MACH Number ": MM$(5)=" 5 - Weight & Balance "
  508. 9030 MM$(6)=" 6 - Latitude/Longitude ": MM$(7)=" 7 - Wind Problems ": MM$(8)=" 8 - Time-Speed-Distance ": MM$(9)=" 9 - Flight Planning ": MM$(10)=" M - Main Menu ": MM$(11)=" Q - Quit "
  509. 9050 ERNO=9050:AD$=SPACE$(209):FILE$="\QFP4DIR\QFP4DATA"
  510. 9060 OPEN FILE$ FOR INPUT AS #1
  511. 9070 FOR A!=1 TO 209:INPUT #1, AA!:MID$(AD$,A!,1)=CHR$(AA!):NEXT A!:FOR A!=0 TO 5:INPUT #1,AR(A!):NEXT A!:CLOSE #1
  512. 9075 AD$=AD$+"":DEF SEG:ACK$=SPACE$(80):ACK$=ACK$+"":ARD=255:ANO=16:AAH=6:AAL=0:ABH=0:ABL=0:ACH=10:ACL=1:ADH=23:ADL=80:AD!=VARPTR(AD$):AD!=PEEK(AD!+1)+(PEEK(AD!+2)*256)
  513. 9080 ANO=33:AAH=14:ADL=AR(1):OTHER=1:GOSUB 100:ANO=33:AAH=25:OTHER=1:GOSUB 100:DRIVE$=CHR$(AR(1)+65)+":":GOSUB 105:DRV%=1:GOTO 1000
  514. 9100 CLS:AMAIN=0
  515. 9110 COLOR 0,7:LOCATE 1,1:PRINT FC$: COLOR 7,0: LOCATE 1,28:PRINT MM$(4) TAB(54) MM$(8):LOCATE 3,1:PRINT MM$(1) TAB(28) MM$(5) TAB(54) MM$(9)
  516. 9120 LOCATE 5,1:PRINT MM$(2) TAB(28) MM$(6) TAB(54) MM$(0):LOCATE 7,1:PRINT MM$(3) TAB(28) MM$(7) TAB(54) MM$(11)
  517. 9130 LOCATE 8,1:PRINT DASH$;"-";:LOCATE 25,1:PRINT DASH$;:IF CT=9 THEN CT=0:RETURN
  518. 9400 ERNO=9400:GOSUB 150:LOCATE 15,30:PRINT" M A I N   M E N U ":RW=20:GOSUB 152
  519. 9410 F$="\QFP4DIR\QFP4MAIN"
  520. 9420 DRV%=1:GOSUB 82:RUN F$
  521. 9500 ERNO=9500:GOSUB 150:LOCATE 15,30:PRINT" U T I L I T I E S ":RW=20:GOSUB 152
  522. 9510 F$="\QFP4DIR\QFP4UTIL"
  523. 9520 DRV%=1:GOSUB 82:RUN F$
  524. 9900 CLS:COLOR 7,0:KEY ON:END '***  CHANGE TO *** CLS:COLOR 7,0:CLEAR:SYSTEM ***********************************
  525. 10000 IF ERR=53 THEN 10200
  526. 10010 IF ERR=62 THEN 10500
  527. 10020 IF ERR=61 THEN 10300
  528. 10030 IF ERR=24 OR ERR=25 OR ERR=27 THEN 10400
  529. 10040 IF ERR=70 AND ERNO2=7000 THEN 10100
  530. 10045 IF ERR=70 THEN 10600
  531. 10050 IF ERR=67 OR ERR=75 OR ERR=76 THEN 10700
  532. 10060 IF ERR >53 THEN 10100
  533. 10099 GOTO 20000 ' ************** CHANGE LINE TO:  GOTO 19999  **************
  534. 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. "
  535. 10110 LOCATE 17,26:PRINT" PLEASE CORRECT THE SITUATION ":LOCATE 19,30:PRINT" BEFORE YOU CONTINUE. ":COLOR 7,0:GOSUB 990:GOSUB 980:DRV%=1:GOSUB 82
  536. 10120 IF ERR=57 THEN GOTO 19999
  537. 10125 IF ERNO=800 THEN DRV%=1:GOSUB 82:RESUME 1110
  538. 10130 IF ERNO=6430 THEN GOSUB 720:RESUME 6430
  539. 10140 IF ERNO=6800 THEN GOTO 19999
  540. 10150 IF ERNO2=7000 THEN RESUME 7000
  541. 10160 IF (ERNO=9400 OR ERNO=9500) AND NODRV=0 THEN NODRV=1:RESUME
  542. 10190 CLS:PRINT"FATAL DISK ERROR!!":PRINT:PRINT"PROGRAM HALTED!!!!":GOSUB 990:CLEAR:END  ' ********** CHANGE TO *** COLOR 7,0:CLEAR:SYSTEM ********************
  543. 10200 IF ERNO=600 THEN RESUME 7600
  544. 10210 IF ERNO=800 THEN RESUME 799
  545. 10220 IF ERNO=2300 THEN RESUME 2340
  546. 10230 IF ERNO=7060 THEN RESUME NEXT
  547. 10299 GOTO 20000 ' ************** CHANGE LINE TO:  GOTO 9000  **************
  548. 10300 GOSUB 100:COLOR 0,7:LOCATE 12,26:PRINT" THE PROBLEM IS THAT YOUR DISK ":LOCATE 14,28:PRINT" IS COMPLETELY FILLED UP. "
  549. 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 19999
  550. 10400 IF NOPRINT=1 THEN RESUME 5000 ELSE COLOR 15,0:LOCATE 24,1:PRINT"     C H E C K   T H E   P R I N T E R  !!" ;:COLOR 7,0:PRINT SPC(10) "PUSH ANY KEY TO RESUME";:GOSUB 990
  551. 10410 N$=INPUT$(1):NOPRINT=1:RESUME 5000
  552. 10500 IF ERNO=2300 THEN CLOSE #1:RESUME 2340
  553. 10510 IF ERNO=800 THEN RESUME 805
  554. 10599 GOTO 20000 ' ************** CHANGE LINE TO:  GOTO 19999 **************
  555. 10600 GOSUB 100:COLOR 0,7:LOCATE 13,24:PRINT" THE DISK IS WRITE PROTECTED! ":COLOR 7,0:IF NODRV=1 THEN 10630
  556. 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
  557. 10620 NODRV=1:GOSUB 990:GOSUB 980:RESUME
  558. 10630 GOSUB 990:DRV%=1:GOSUB 82:GOTO 19999
  559. 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, "
  560. 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 19999
  561. 19999 GOSUB 85:RESUME 9000
  562. 20000  COLOR 7,0:PRINT J$;J$;J$;J$;:CLS:PRINT "ERR LINE :";ERL;"  ERROR NO ";ERR:KEY ON:RESUME 20010 : ' ************ REMOVE THIS LINE ***************
  563. 20010 STOP:END ' ************* REMOVE THIS LINE ***************
  564.