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

  1. 0 '        ********************************
  2. 1 '        *               QFP-4             *
  3. 2 '        *              BY              *
  4. 3 '        *       Michael M. Brogan      *
  5. 4 '        *       41801 Lakota Dr.       *
  6. 5 '        *       Parker, CO 80134       *
  7. 6 '        * Copyright 1987, 1988         *
  8. 7 '        * All rights reserved          *
  9. 8 '        * Share Ware see QFP4.BAS      *
  10. 9 '        * WT & BAL VER1.2              *
  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 90 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. 90 Z90=1:ERASE C,D,G,L,P$,S1$,S2$,T1$,T2$:GOTO 9005
  20. 91 ACH=11:GOTO 100
  21. 92 ACH=22:GOTO 100
  22. 93 ACH=13:GOTO 100
  23. 98 ACH=23:GOTO 100
  24. 99 ACH=19
  25. 100 CALL AD!(ACK$,ARD,ANO,AAH,AAL,ABH,ABL,ACH,ACL,ADH,ADL):IF OTHER=1 THEN OTHER=0:RETURN
  26. 105 ARD=225:ANO=16:AAH=6:AAL=0:ABH=0:ACH=10:ACL=1:ADH=23:ADL=80:RETURN
  27. 150 GOSUB 100:COLOR 0,7:LOCATE 12,29:PRINT" L O A D I N G ":RETURN
  28. 160 LOCATE 17,29:PRINT" P R O G R A M ":LOCATE 20,30:PRINT" P L E A S E ":LOCATE 22,28:PRINT" S T A N D - B Y ":COLOR 7,0:RETURN
  29. 200 LOCATE 25,1:PRINT STRING$(79,32);:LOCATE 25,19:RETURN
  30. 220 LOCATE 23,29:PRINT"(PUSH ANY KEY TO CONTINUE)":N$=INPUT$(1):RETURN
  31. 230 ACH=0:ADH=6:GOSUB 100:COLOR 0,7:LOCATE 1,1:PRINT TOPTITLE$;:COLOR 7,0:RETURN
  32. 240 GOSUB 93:LOCATE 14,24:PRINT"INPUT THE NUMBER THAT CORRESPONDS TO":LOCATE 15,24:PRINT "THE " X240$ " YOU WISH TO ";:COLOR 0,7:PRINT XX240$;".":COLOR 7,0
  33. 245 LOCATE 18,24:PRINT "D - DEFAULT DRIVE CHANGED TO NEXT DRIVE":LOCATE 20,29:PRINT"S - SUBMENU" TAB(44) "Q - QUIT":LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")":RETURN
  34. 250 GOSUB 93:COLOR 0,7:LOCATE 14,22:PRINT" ARE YOU SURE THAT YOU WANT TO ERASE: ":COLOR 7,0:GOSUB 685:RETURN
  35. 300 ACH=12:GOSUB 100:LOCATE 14,24:PRINT"DO YOU WISH TO SAVE THIS FILE ON":LOCATE 15,24:PRINT"THE DEFAULT DRIVE AS SHOWN BELOW?":LOCATE 17,35:PRINT"DRIVE  " DRIVE$:LOCATE 19,24:PRINT"D-NEXT DRIVE    S-SUBMENU    Q-QUIT":RETURN
  36. 400 GOSUB 93:LOCATE 14,24:PRINT"THE TITLE OF YOUR WEIGHT AND BALANCE":LOCATE 15,24:IF Z5000=1 THEN PRINT"LIST "; ELSE PRINT"TABLE ";
  37. 410 PRINT"MAY USE ANY LETTER, NUMBER OR":LOCATE 16,24:PRINT"SYMBOL EXCEPT A COMMA.  ALSO, IT MUST":LOCATE 17,24:PRINT"NOT BE MORE THAN 12 CHARACTERS LONG."
  38. 420 GOSUB 99:COLOR 15,0:LOCATE 20,24:PRINT"INPUT TITLE: ............":COLOR 7,0:LOCATE 20,36:CT=0:INPUT" ",CL$:IF CL$="" THEN CT=1:RETURN ELSE IF LEN(CL$)>12 THEN 420 ELSE RETURN
  39. 440 COLOR 0,7:LOCATE 10,1:PRINT MM$(5):COLOR 7,0:RETURN
  40. 450 GOSUB 100:LOCATE 11,29:PRINT"S A V E D   T A B L E S":NOQT=0:RETURN
  41. 455 GOSUB 100:LOCATE 11,29:PRINT"C U S T O M   L I S T S":NOQT=0:RETURN
  42. 460 GOSUB 93:COLOR 7,0:LOCATE 14,29:PRINT"YOU HAVE ALREADY SAVED A":LOCATE 15,29:PRINT"FILE UNDER THE NAME OF:":LOCATE 17,1:PRINT TAB(40-(INT(LEN(CL$)/2))) CL$
  43. 465 LOCATE 19,29:PRINT"DO YOU WISH TO WRITE OVER":LOCATE 20,29:PRINT"AND ERASE THE EXISTING":LOCATE 21,29:PRINT"FILE?":RETURN
  44. 470 GOSUB 99:COLOR 7,0:LOCATE 19,29:PRINT"DO YOU WISH TO USE ANOTHER":LOCATE 20,29:PRINT"NAME. ";:IF Z5000=1 THEN RETURN ELSE PRINT" (IF YOU ANSWER NO,":LOCATE 21,29:PRINT"THIS TABLE WILL BE ERASED.)":RETURN
  45. 480 GOSUB 93:COLOR 7,0:LOCATE 14,24:PRINT"YOU HAVE ALREADY SAVED YOUR MAXIMUM":LOCATE 15,24:PRINT"NUMBER OF FILES.  YOU MUST ERASE A":LOCATE 16,24:PRINT"FILE BEFORE A NEW ONE CAN BE SAVED."
  46. 485 LOCATE 17,24:PRINT"ENTER 'S' FOR SUBMENU, THEN ENTER ";:IF Z5000=1 THEN PRINT "'L'":LOCATE 18,24:PRINT"FOR THE CUSTOM LISTS OPTION.  (THIS" ELSE "'T'":LOCATE 18,24:PRINT"FOR THE SAVED TABLES OPTION.  (THIS"
  47. 490 LOCATE 19,24:IF Z5000=1 THEN PRINT"LIST WILL ALSO BE ERASED.)" ELSE PRINT"TABLE WILL BE ERASED.)"
  48. 495 LOCATE 21,24:PRINT"OR, YOU MAY CHANGE THE NAME AND REPLACE":LOCATE 22,24:PRINT"AN EXISTING FILE BY ENTERING 'C'.":RETURN
  49. 500 CLS:C(0)=.01:G(0)=0:FOR X%=1 TO Y%:C(0)=C(0)+C(X%):G(0)=G(0)+G(X%):NEXT X%:D(0)=G(0)/C(0):D(0)=FN RT(D(0))
  50. 505 IF CL$="" THEN CL$="WEIGHT & BAL"
  51. 510 COLOR 7,0:LOCATE 1,1:PRINT CL$ TAB(16) "NUMBER & ITEM" TAB(37) "WEIGHT" TAB(50) "ARM" TAB(58) "MOM/1000"
  52. 515 PRINT:IF Y%<14 THEN PRINT
  53. 520 FOR X%=1 TO Y%
  54. 525 N530=17-LEN(STR$(X%)):PRINT SPC(N530) X% P$(X%);:IF C(X%)=0 THEN PRINT:GOTO 540
  55. 530 PRINT TAB(34);:PRINT USING "#######.#";C(X%);
  56. 535 PRINT TAB(46);:G540=FN RM(G(X%)):PRINT USING "#####.#";D(X%);:PRINT TAB(58);:PRINT USING "#####.#";G540
  57. 540 IF Y%<= 9 THEN PRINT
  58. 545 IF Z550=1 THEN RETURN ELSE NEXT X%
  59. 550 IF MAC=0 THEN GOTO 560
  60. 555 PERMAC=FN RT(((D(0)-LEMAC)/MAC)*100):PRINT "% MAC:";PERMAC;
  61. 560 PRINT TAB(15) STRING$(51,45):PRINT TAB(17) "TOTALS & CG:";:X%=0:Z550=1:GOSUB 530:Z550=0:RETURN
  62. 570 IF CL$="" THEN CL$="WEIGHT & BAL"
  63. 572 LPRINT:LPRINT:LPRINT CL$ TAB(16) "NUMBER & ITEM" TAB(37) "WEIGHT" TAB(50) "ARM" TAB(58) "MOM/1000"
  64. 574 LPRINT:IF Y%<14 THEN LPRINT
  65. 576 FOR X%=1 TO Y%
  66. 578 N530=17-LEN(STR$(X%)):LPRINT SPC(N530) X% P$(X%);:IF C(X%)=0 THEN LPRINT:GOTO 584
  67. 580 LPRINT TAB(34);:LPRINT USING "#######.#";C(X%);
  68. 582 LPRINT TAB(46);:G540=FN RM(G(X%)):LPRINT USING "#####.#";D(X%);:LPRINT TAB(58);:LPRINT USING "#####.#";G540
  69. 584 IF Y%<= 9 THEN LPRINT
  70. 586 IF Z592=1 THEN RETURN ELSE NEXT X%
  71. 588 IF MAC=0 THEN GOTO 592
  72. 590 PERMAC=FN RT(((D(0)-LEMAC)/MAC)*100):LPRINT "% MAC:";PERMAC;
  73. 592 LPRINT TAB(15) STRING$(51,45):LPRINT TAB(17) "TOTALS & CG:";:X%=0:Z592=1:GOSUB 580:Z592=0:LPRINT:LPRINT:LPRINT:NOPRINT=0:RETURN
  74. 600 YL%=YL%-1:FOR ZL%=XL% TO YL%:P$(ZL%)=P$(ZL%+1):NEXT ZL%:P$(ZL%)="":SL%=YL%:SCT%=YL%:GOSUB 910:RETURN
  75. 630 GOSUB 91:LOCATE 14,24:PRINT"THIS FILE CANNOT BE FOUND ON THE DISK:":RW=16:Z630=630:GOSUB 685:Z630=0:LOCATE 18,24:PRINT"YOU MUST USE THE ";:COLOR 0,7:PRINT" ERASE ";:COLOR 7,0:PRINT" OPTION TO"
  76. 635 LOCATE 19,24:PRINT"REMOVE THE NAME FROM THE MASTER FILE.":GOSUB 220:RETURN
  77. 640 LOCATE 20,24:PRINT"PUSH ";:COLOR 0,7:PRINT" RETURN ";:COLOR 7,0:PRINT" WITHOUT ANY OTHER":LOCATE 21,24:PRINT"ENTRIES TO END THE LIST";:IF Z5085=1 THEN PRINT" OR DELETE ITEM.":RETURN ELSE PRINT".":RETURN
  78. 680 GOSUB 93:LOCATE 14,24:PRINT"IS THIS THE ";X240$;" YOU WISH TO ERASE?":RW=16
  79. 685 LOCATE RW,1:COLOR 15,0:PRINT TAB(40-(INT(LEN(S2$(N))/2))) S2$(N):COLOR 7,0:IF Z630=630 THEN RETURN ELSE GOSUB 245:RETURN
  80. 700 ACH=20:GOSUB 100:COLOR 15,0:LOCATE 22,14:PRINT"***  PLEASE STAND BY, THE FILES ARE BEING SORTED.  ***";:COLOR 7,0:RETURN
  81. 799 ERNO=799:OPEN TITLE$ FOR OUTPUT AS #1:YERR%=0:WRITE #1,YERR%:CLOSE #1
  82. 800 ERNO=800:OPEN TITLE$ FOR INPUT AS #1: INPUT #1,YT%:IF YT%>33 AND ZFILES=4000 THEN YT%=33 ELSE IF YT%>19 AND ZFILES=2000 THEN YT%=19
  83. 805 IF YT%=0 THEN CLOSE #1:RETURN
  84. 810 FOR X%=1 TO YT%:INPUT #1,S1$(X%),S2$(X%): NEXT X%: CLOSE #1:RETURN
  85. 855 GOSUB 230:IF YT%=0 THEN 857 ELSE SCT%=YT%:IF YT%>19 THEN 860 ELSE GOSUB 880:RETURN
  86. 857 LOCATE 3,5:PRINT"N O N E":RETURN
  87. 860 RW%=2:FOR X%=1 TO 5:RW%=RW%+1:LOCATE RW%,1:PRINT X% S2$(X%):NEXT X%
  88. 863 CLM%=16:XX1%=6:XX2%=6:GOSUB 866:CLM%=32:XX1%=13:GOSUB 866:CLM%=48:XX1%=20:GOSUB 866:IF SCT%<=X% THEN RETURN ELSE CLM%=64:XX1%=27:GOSUB 866:RETURN
  89. 866 RW%=1:FOR X%=XX1% TO (XX1%+XX2%):IF S2$(X%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X%<10 THEN PRINT " ";
  90. 869 PRINT X% S2$(X%):RW%=RW%+1:NEXT X%:RETURN
  91. 880 RW%=1:IF YT%<3 THEN XY%=YT% ELSE XY%=3
  92. 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
  93. 883 IF SCT%>11 THEN 886 ELSE CLM%=32:XX%=4:GOSUB 889:CLM%=64:XX%=8:GOSUB 889:RETURN
  94. 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
  95. 889 RW%=1:FOR X%=XX% TO (XX%+3):IF S2$(X%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X%<10 THEN PRINT " ";
  96. 892 PRINT X% S2$(X%):RW%=RW%+2:NEXT X%:RETURN
  97. 895 IF LEN(S2$(X%))>12 THEN 897 ELSE PRINT X% S2$(X%):RETURN
  98. 900 IF SCT%<>0 THEN 910 ELSE FOR X%=1 TO 19: IF P$(X%)="" THEN 910 ELSE SCT%=SCT%+1:NEXT X%
  99. 905 IF SCT%=0 THEN RETURN
  100. 910 IF Z2000=1 THEN GOSUB 230
  101. 911 RW%=1:FOR X%=1 TO 3:RW%=RW%+2:IF P$(X%)="" THEN RETURN ELSE LOCATE RW%,1:PRINT X% P$(X%):NEXT X%:IF X%=SCT%+1 THEN RETURN
  102. 912 IF Z2000=1 THEN 920
  103. 915 IF SCT%>11 THEN 920 ELSE CLM%=32:XX%=4:GOSUB 925:CLM%=64:XX%=8:GOSUB 925:RETURN
  104. 920 CLM%=16:XX%=4:GOSUB 925:IF P$(X%)="" THEN RETURN ELSE CLM%=32:XX%=8:GOSUB 925:IF P$(X%)="" THEN RETURN ELSE CLM%=48:XX%=12:GOSUB 925:IF SCT%<=X% AND Z2000<>1 THEN RETURN ELSE CLM%=64:XX%=16:GOSUB 925:RETURN
  105. 925 RW%=1:FOR X%=XX% TO (XX%+3):IF P$(X%)="" THEN RETURN ELSE LOCATE RW%,CLM%:IF X%<10 THEN PRINT " ";
  106. 930 PRINT X% P$(X%):RW%=RW%+2:NEXT X%:RETURN
  107. 990 FOR PP=1 TO 6:BEEP:FOR PEP=1 TO 170:NEXT PEP,PP:RETURN
  108. 1000 GOSUB 100:GOSUB 440
  109. 1010 GOSUB 91:LOCATE 11,24:PRINT"FOR REGULAR WEIGHT AND BALANCE, ENTER":LOCATE 12,24:PRINT"THE NUMBER OF SEATS UP TO NINETEEN.":LOCATE 14,24:PRINT"FOR CUSTOM WEIGHT AND BALANCE LISTS,":LOCATE 15,24:PRINT"ENTER THE LETTER 'L'."
  110. 1015 LOCATE 17,24:PRINT"FOR SAVED WEIGHT AND BALANCE TABLES,":LOCATE 18,24:PRINT"ENTER THE LETTER 'T'.":LOCATE 20,29:PRINT"M - MAIN MENU" TAB(48) "Q - QUIT"
  111. 1040 ACH=22:GOSUB 100:COLOR 15,0:LOCATE 23,24:INPUT"INPUT 1-19, L, T, M, or Q:  ",N$:COLOR 7,0:MAC=0:LEMAC=0:ERNO=0:ERNO2=0:Z2000=0:ZFILES=0:Z5000=0:Z5085=0:Y%=0:SCT%=0:CL$="":IF N$="" THEN 1040
  112. 1045 IF N$="L" OR N$="l" THEN 2000 ELSE IF N$="T" OR N$="t" THEN 4000 ELSE IF N$="M" OR N$="m" THEN 9400
  113. 1050 GOSUB 50:IF NOQT=1 THEN 1000
  114. 1055 IF N<1 OR N>19 THEN 1040
  115. 1065 IF N>11 THEN S=76 ELSE IF N>8 THEN S=74 ELSE IF N>6 THEN S=52 ELSE IF N>4 THEN S=31 ELSE IF N>2 THEN S=8 ELSE S=7
  116. 1085 FOR X%=1 TO S:IF Y%=19 THEN Y%=0
  117. 1090 Y%=Y%+1:READ P$(Y%):NEXT X%
  118. 1095 TOPTITLE$=" NUMBER & ITEM ":GOSUB 230:GOSUB 900
  119. 1105 DATA EMPTY WEIGHT,FUEL,TAXI FUEL,OIL,BAGGAGE,OTHER,CREW,PASSENGERS,,,,,,,,,,,,EMPTY WEIGHT,FUEL-MAIN,FUEL #2,TAXI FUEL,OIL,BAGGAGE-A,BAGGAGE-B,OTHER,CREW,PASS-A,PASS-B,,,,,,,,
  120. 1110 DATA EMPTY WEIGHT,FUEL-MAIN,FUEL #2,FUEL #3,TAXI FUEL,OIL,BAGGAGE A,BAGGAGE B,OTHER,CREW,PASS-A,PASS-B,PASS-C,PASS-D,PASS-E,,,,,EMPTY WEIGHT,FUEL-MAIN,FUEL #2,FUEL #3,TAXI FUEL,BAGGAGE A,BAGGAGE B,BAGGAGE C
  121. 1112 DATA OTHER #1,OTHER #2,CREW,JUMP SEAT,PASS-A,PASS-B,PASS-C,PASS-D,PASS-E,PASS-F,PASS-G
  122. 1115 RESTORE
  123. 1120 IF Z5000=1 THEN GOSUB 230:GOSUB 910:Z5000=0
  124. 1122 SCT%=Y%:Y2=Y%:GOSUB 100:COLOR 15,0:LOCATE 13,29:PRINT"CHOOSE THE TYPE OF INPUTS":LOCATE 14,29:PRINT"YOU WANT TO USE:":LOCATE 17,33:PRINT"1 - WEIGHT / ARM":LOCATE 19,33:PRINT"2 - WEIGHT / MOMENT"
  125. 1125 LOCATE 14,46:INPUT" ",N$:GOSUB 50:J=N:IF N$="" THEN 90
  126. 1130 IF J<1 OR J>2 THEN 1120
  127. 1140 ON J GOTO 1155,1155:GOTO 1120
  128. 1155 GOSUB 91:COLOR 7,0:LOCATE 12,24:PRINT"ENTER THE ITEM NUMBER TO INPUT":LOCATE 13,24:PRINT"WEIGHT AND ";:IF J=1 THEN PRINT "ARM"; ELSE PRINT"MOMENT";
  129. 1185 PRINT" INFORMATION.":LOCATE 15,27:PRINT"T - TOTAL    S - SUBMENU"
  130. 1190 ACH=17:GOSUB 100:COLOR 15,0:LOCATE 18,24:INPUT"INPUT: ",N$:GOSUB 50:IF NOQT=1 THEN 1155
  131. 1195 C(0)=.01:G(0)=0
  132. 1197 IF N$="S" OR N$="s" THEN 90
  133. 1200 N=VAL(N$):IF N$="T" OR N$="t" THEN GOSUB 500:GOTO 1265
  134. 1205 IF Z1290=1 AND (N<1 OR N>Y%) THEN 1265
  135. 1210 IF N<1 OR N>Y% THEN 1190
  136. 1215 IF Z1290=1 THEN 1295
  137. 1220 LOCATE 18,24:PRINT "      "  N TAB(36) P$(N):LOCATE 20,31:INPUT"WEIGHT: ",X$:C(N)=VAL(X$):N$=X$:GOSUB 55:IF C(N)=0 THEN G(N)=0:GOTO 1190
  138. 1230 LOCATE 21,31:IF J=1 THEN 1245
  139. 1235 INPUT "MOM/1000: ",X$:G(N)=VAL(X$):G(N)=G(N)*1000:D(N)=G(N)/C(N):GOTO 1255
  140. 1245 PRINT"ARM:   ";FN RT(D(N)):LOCATE 21,38:INPUT " ",X$:IF X$<>"" THEN D(N)=VAL(X$)
  141. 1250 IF D(N)<.001 THEN D(N) =.001:C(N)=0
  142. 1255 G(N)=C(N)*D(N):IF G(N)=0 THEN C(N)=0:GOTO 1190
  143. 1260 LOCATE 23,24:INPUT"INPUT NEXT NUMBER OR LETTER: ",N$:ACH=17:GOSUB 100:GOTO 1200
  144. 1265 LOCATE 25,1: PRINT STRING$(78,32);:COLOR 15,0:LOCATE 25,19:INPUT;"DO YOU WANT TO MAKE ANY CHANGES? (Y/N):  ",N$
  145. 1270 Z1290=0:IF N$="Y" OR N$="y" THEN 1290
  146. 1275 IF N$="N" OR N$="n" THEN 1330
  147. 1280 GOSUB 50:IF NOQT=1 THEN GOSUB 500:GOTO 1265 ELSE 1265
  148. 1290 LOCATE 25,1:PRINT STRING$(78,32);:LOCATE 25,1:INPUT;"INPUT ITEM #:  ",N$:Z1290=1:IF N$="MAC" OR N$="mac" THEN GOSUB 1335:GOTO 1265 ELSE GOTO 1195
  149. 1295 LOCATE 25,18:PRINT " " P$(N) TAB(37);:INPUT;"WEIGHT: ",X$:C(N)=VAL(X$):IF C(N)=O THEN G(N)=0:GOTO 1320
  150. 1305 LOCATE 25,56:IF J=1 THEN 1315
  151. 1310 INPUT;"MOM/1000: ",X$:G(N)=(VAL(X$))*1000:D(N)=G(N)/C(N):GOTO 1320
  152. 1315 PRINT"ARM:";D(N);:LOCATE 25,60:INPUT;" ",X$:IF X$<> "" THEN D(N)=VAL(X$)
  153. 1320 G(N)=C(N)*D(N):IF G(N)=0 THEN C(N)=0
  154. 1325 GOSUB 500:GOTO 1265
  155. 1330 IF MAC<>0 THEN 1370
  156. 1335 GOSUB 200:COLOR 15,0:INPUT;"DO YOU WANT THE % OF MAC? (Y/N):  ",N$:IF N$="Y" OR N$="y" THEN 1340 ELSE IF N$="N" OR N$="n" THEN 1360 ELSE 1335
  157. 1340 GOSUB 200:INPUT;"INPUT LEMAC: ",N$:LEMAC=VAL(N$):IF LEMAC>=D(0) OR N$="" THEN 1335
  158. 1345 GOSUB 200:INPUT;"INPUT MAC (or push RETURN to enter TEMAC): ",N$:IF N$="" THEN 1347 ELSE MAC=VAL(N$):GOTO 1355
  159. 1347 GOSUB 200:INPUT;"INPUT TEMAC: ",N$:IF N$="" THEN 1335 ELSE TEMAC=VAL(N$):IF TEMAC<=D(0) THEN 1347
  160. 1350 MAC=TEMAC-LEMAC
  161. 1355 IF MAC<=0 THEN 1335 ELSE GOSUB 500
  162. 1360 IF Z1290=1 THEN RETURN
  163. 1370 IF AR(5)=0 THEN 1410 ELSE NOPRINT=0:GOSUB 200:COLOR 15,0:INPUT;"DO YOU WANT A PRINTED COPY? (Y/N):  ",N$:IF N$="Y" OR N$="y" THEN GOSUB 570 ELSE IF N$="N" OR N$="n" THEN 1410 ELSE 1370
  164. 1410 GOSUB 200:COLOR 15,0:INPUT;"DO YOU WANT TO SAVE THIS TABLE? (Y/N): ",N$:GOSUB 50:IF NOQT=1 THEN GOSUB 500:GOTO 1410 ELSE IF N$="Y" OR N$="y" THEN 1430
  165. 1415 IF N$="N" OR N$="n" THEN GOSUB 200:PRINT"     (PUSH ANY KEY FOR SUBMENU)";:N$=INPUT$(1):GOTO 90 ELSE 1410
  166. 1430 TITLE$="\QFP4DIR\WBTBLMST":GOSUB 800 ' ************************************
  167. 1435 CLS:CT=9:GOSUB 9130:GOSUB 440
  168. 1440 TOPTITLE$=ROT$:GOSUB 855
  169. 1450 GOSUB 450:C5=0:GOSUB 400:IF CT=1 THEN 1460 ELSE 1500
  170. 1460 GOSUB 93:LOCATE 15,29:PRINT"DO YOU WISH TO SAVE THIS":LOCATE 17,29:PRINT"WEIGHT AND BALANCE TABLE?"
  171. 1470 GOSUB 99:COLOR 15,0:LOCATE 20,34:INPUT"ANSWER (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOTO 1460 ELSE IF N$="N" OR N$="n" THEN 90 ELSE IF N$="Y" OR N$="y" THEN 1450 ELSE 1470
  172. 1500 FOR X%=1 TO YT%:IF CL$=S2$(X%) THEN GOSUB 460:GOTO 1510 ELSE NEXT X%:GOTO 1600
  173. 1510 GOSUB 92:COLOR 15,0:LOCATE 23,34:INPUT"ANSWER (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOSUB 460:GOTO 1510
  174. 1515 IF N$="N" OR N$="n" THEN GOSUB 470:GOTO 1520 ELSE IF N$="Y" OR N$="y" THEN GOSUB 300:Z1515=1:GOTO 1530 ELSE 1510
  175. 1520 GOSUB 92:COLOR 15,0:LOCATE 23,34:INPUT"ANSWER (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOSUB 460:GOSUB 470:GOTO 1520 ELSE IF N$="N" OR N$="n" THEN 90 ELSE IF N$="Y" OR N$="y" THEN 1450
  176. 1525 IF N$="" THEN GOSUB 460:GOTO 1510
  177. 1530 ERNO=1530:ACH=21:GOSUB 100:COLOR 15,0:LOCATE 22,27:INPUT"INPUT  Y/N, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOSUB 300:GOTO 1530 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 300:GOTO 1530
  178. 1535 IF N$="N" OR N$="n" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 300:GOTO 1530 ELSE IF N$="Y" OR N$="y" THEN 1540 ELSE 1530
  179. 1540 GOSUB 700:IF Z1515=0 THEN 1700 ELSE S2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):S1$(X%)="WBTBL-"+XX$:TABLE$="\QFP4DIR\"+S1$(X%):GOTO 1900  '************************************************
  180. 1600 IF YT%=33 THEN GOSUB 480:GOTO 1610 ELSE GOSUB 300:GOTO 1530
  181. 1610 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT  S-SUBMENU  OR  C-CHANGE: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOSUB 480:GOTO 1610 ELSE IF N$="S" OR N$="s" THEN 90 ELSE IF N$="C" OR N$="c" THEN 1450 ELSE 1610
  182. 1700 FOR X%=YT% TO 1 STEP -1:IF LEN(S1$(X%))=7 THEN Z%=VAL(RIGHT$(S1$(X%),1)) ELSE Z%=VAL(RIGHT$(S1$(X%),2))
  183. 1710 T1$(Z%)=S1$(X%):T2$(Z%)=S2$(X%):NEXT X%:YT%=YT%+1
  184. 1720 FOR X%=1 TO 33:IF T1$(X%)="" THEN 1725 ELSE NEXT X%
  185. 1725 XX%=1:T2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):T1$(X%)="WBTBL-"+XX$:TABLE$="\QFP4DIR\"+T1$(X%) ' ************************************************
  186. 1730 FOR X%=XX% TO 33: IF T1$(X%)="" THEN 1740 ELSE NEXT X%:GOTO 1900
  187. 1740 FOR Z%=X% TO 18:T1$(Z%)=T1$(Z%+1):T2$(Z%)=T2$(Z%+1):NEXT Z%:XX%=X%+1:GOTO 1730
  188. 1900 IF Z1515=1 THEN Z1515=0:GOTO 1910
  189. 1905 OPEN TITLE$ FOR OUTPUT AS #1:WRITE #1,YT%:FOR X%=1 TO YT%:WRITE #1,T1$(X%),T2$(X%):NEXT X%:CLOSE #1
  190. 1910 OPEN TABLE$ FOR OUTPUT AS #2:WRITE #2,Y%,J:FOR X%=1 TO Y%:WRITE #2,C(X%),D(X%),G(X%),P$(X%):NEXT X%:WRITE #2,LEMAC,MAC:CLOSE #2:GOTO 90
  191. 2000 ERNO2=2000:Z2000=1:ZFILES=2000:TITLE$="\QFP4DIR\WBLSTMST" ' ******************************************
  192. 2005 GOSUB 800:TOPTITLE$=ROL$:GOSUB 855
  193. 2020 GOSUB 455:LOCATE 14,24:PRINT"L - INPUT A SAVED LIST FROM THE DISK":LOCATE 16,24:PRINT"A - ADD A LIST      E - ERASE A LIST"
  194. 2025 LOCATE 18,24:PRINT"D - DEFAULT DRIVE CHANGED TO NEXT DRIVE":LOCATE 20,29:PRINT"S - SUBMENU    Q - QUIT":LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")"
  195. 2030 LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")":ACH=23:GOSUB 100:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  L, A, E, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN 2020 ELSE IF N$="L" OR N$="l" THEN 2120
  196. 2040 IF N$="A" OR N$="a" THEN 5000 ELSE IF N$="E" OR N$="e" THEN 6000 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOTO 2000 ELSE IF N$="" THEN 90 ELSE 2030
  197. 2120 ERNO=2120:IF YT%=0 THEN 2020 ELSE X240$="LIST":XX240$=" VIEW":GOSUB 240
  198. 2130 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT5+1 THEN 2135 ELSE PRINT"-";YT%;
  199. 2135 PRINT", D,";:INPUT;" S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOTO 4000 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 245:GOTO 2130
  200. 2140 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN 2150 ELSE 2020
  201. 2150 LISTS$="\QFP4DIR\"+S1$(N)  ' **********************************************
  202. 2155 OPEN LISTS$ FOR INPUT AS #1:INPUT #1,Y%:FOR X%=1 TO Y%:INPUT #1,P$(X%):NEXT X%:CLOSE #1:CL$=S2$(N):GOSUB 910:GOTO 1120
  203. 2160 GOSUB 630:GOTO 2020
  204. 4000 ERNO2=4000:ZFILES=4000:TITLE$="\QFP4DIR\WBTBLMST"  ' *********************************************
  205. 4005 GOSUB 800:TOPTITLE$=ROT$:GOSUB 855
  206. 4020 GOSUB 450:LOCATE 14,24:PRINT"T - INPUT A SAVED TABLE FROM THE DISK":LOCATE 16,24:PRINT"E - ERASE A TABLE FROM THE DISK"
  207. 4025 LOCATE 18,24:PRINT"D - DEFAULT DRIVE CHANGED TO NEXT DRIVE":LOCATE 20,29:PRINT"S - SUBMENU    Q - QUIT":LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")"
  208. 4030 LOCATE 22,35:PRINT"(DRIVE " DRIVE$ ")":ACH=23:GOSUB 100:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  T, E, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN 4020 ELSE IF N$="T" OR N$="t" THEN 4120
  209. 4040 IF N$="E" OR N$="e" THEN 6500 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOTO 4000 ELSE IF N$="" THEN 90 ELSE 4030
  210. 4120 ERNO=4120:IF YT%=0 THEN 4020 ELSE X240$="TABLE":XX240$=" VIEW":GOSUB 240
  211. 4130 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT%=1 THEN 4135 ELSE PRINT"-";YT%;
  212. 4135 PRINT", D,";:INPUT;" S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOTO 4020 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 245:GOTO 4130
  213. 4140 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN 4150 ELSE IF N$="" THEN 4020 ELSE 4130
  214. 4150 TABLE$="\QFP4DIR\"+S1$(N)  ' **********************************************
  215. 4155 OPEN TABLE$ FOR INPUT AS #1:INPUT #1,Y%,J:FOR X%=1 TO Y%:INPUT #1,C(X%),D(X%),G(X%),P$(X%):NEXT X%:INPUT #1,LEMAC,MAC:CLOSE #1:CL$=S2$(N):GOTO 1325
  216. 4160 GOSUB 630:GOTO 4020
  217. 5000 Z5000=1:GOSUB 400:IF CT=1 THEN 90
  218. 5005 TOPTITLE$=CL$:GOSUB 230
  219. 5010 GOSUB 91:LOCATE 14,24:PRINT"ENTER THE ITEM NAME BELOW.":LOCATE 16,24:PRINT"EACH NAME MAY BE UP TO 12 CHARACTERS":LOCATE 17,24:PRINT"LONG AND MAY USE ALMOST ANY SYMBOL"
  220. 5015 LOCATE 18,24:PRINT"EXCEPT A COMMA.":GOSUB 640:IF Z5120=1 THEN 5030
  221. 5025 FOR XL%=1 TO 19
  222. 5030 GOSUB 98:LOCATE 24,29:COLOR 15,0:PRINT"ITEM  #";XL%;":";: LOCATE 24,42:PRINT"............";:LOCATE 24,42:INPUT;" ",N$:COLOR 7,0:IF N$="" AND Z5120=1 THEN RETURN
  223. 5038 IF XL%<2 AND N$="" THEN 2000
  224. 5040 IF N$="" THEN 5070
  225. 5050 IF LEN(N$)>12 THEN 5030 ELSE P$(XL%)=N$:IF Z5120=1 THEN RETURN
  226. 5060 SCT%=XL%:GOSUB 910:NEXT XL%
  227. 5070 YL%=XL%-1
  228. 5075 GOSUB 91:LOCATE 15,24:PRINT"DO YOU WISH TO MAKE ANY CHANGES? (Y/N)":LOCATE 18,29:PRINT"S - SUBMENU     Q - QUIT"
  229. 5080 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 455:GOTO 5075 ELSE IF N$="N" OR N$="n" THEN 5145 ELSE IF N$="Y" OR N$="y" THEN 5085 ELSE 5080
  230. 5085 Z5085=1:ACH=12:GOSUB 100:LOCATE 14,24:PRINT"TO CHANGE OR ADD AN ITEM, INPUT":LOCATE 15,24:PRINT"THE ITEM NUMBER.":LOCATE 17,24:PRINT"TO INSERT AN ITEM, PLACE AN  'I'":LOCATE 18,24:PRINT"IN FRONT OF THE ITEM NUMBER.":GOSUB 640
  231. 5090 GOSUB 98:LOCATE 24,29:COLOR 15,0:INPUT;"INPUT ITEM NUMBER:  ",N$:COLOR 7,0:IF N$="" THEN 5075 ELSE XL%=VAL(N$)
  232. 5095 IF LEFT$(N$,1)<>"I" THEN 5105 ELSE IF (YL%+1)>19 THEN 5075 ELSE XL$=MID$(N$,2,2):XL%=VAL(XL$):IF XL%>(YL%+1) OR XL%< 1 THEN 5075
  233. 5100 YL%=YL%+1:FOR ZL%=YL% TO (XL%+1) STEP -1:P$(ZL%)=P$(ZL%-1):NEXT ZL%:P$(ZL%)=""
  234. 5105 IF XL%<1 OR XL%>19 THEN 5075
  235. 5110 IF XL%> (YL%+1) THEN 5075
  236. 5115 IF XL%=(YL%+1) THEN YL%=YL%+1
  237. 5120 Z5120=1:GOSUB 5010:Z5120=0:SL%=YL%:IF N$="" THEN GOSUB 600:GOTO 5075
  238. 5130 IF SL%> YL% THEN YL%=YL%+1
  239. 5135 SCT%=YL%:GOSUB 910:GOTO 5075
  240. 5145 Y%=YL%:GOSUB 91:LOCATE 15,24:PRINT"DO YOU WISH TO SAVE THIS LIST? (Y/N)":GOSUB 245
  241. 5150 ACH=23:GOSUB 100:COLOR 15,0:LOCATE 24,29:INPUT;"INPUT  Y/N, D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOTO 5145 ELSE IF N$="N" OR N$="n" THEN 1120 ELSE IF N$="Y" OR N$="y" THEN GOSUB 855:GOTO 5200
  242. 5155 IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 245:GOTO 5150 ELSE 5150
  243. 5170 GOSUB 455:C5=0:GOSUB 400:IF CT=1 THEN 5180 ELSE 5200
  244. 5180 GOSUB 93:LOCATE 15,29:PRINT"DO YOU WISH TO SAVE THIS":LOCATE 17,29:PRINT"WEIGHT AND BALANCE LIST?"
  245. 5190 GOSUB 90:COLOR 15,0:LOCATE 20,34:INPUT"ANSWER (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOTO 5180 ELSE IF N$="N" OR N$="n" THEN 1120 ELSE IF N$="Y" OR N$="y" THEN 5170 ELSE 5190
  246. 5200 FOR X%=1 TO YT%:IF CL$=S2$(X%) THEN GOSUB 460:GOTO 5210 ELSE NEXT X%:GOTO 5300
  247. 5210 GOSUB 92:COLOR 15,0:LOCATE 23,34:INPUT"ANSWER (Y/N):  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOSUB 460:GOTO 5210
  248. 5215 IF N$="N" OR N$="n" THEN GOSUB 470:GOTO 5220 ELSE IF N$="Y" OR N$="y" THEN GOSUB 300:Z5215=1:GOTO 5230 ELSE 5210
  249. 5220 GOSUB 92:COLOR 15,0:LOCATE 23,34:INPUT"ANSWER (Y/N): ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOSUB 460:GOSUB 470:GOTO 5220 ELSE IF N$="N" OR N$="n" THEN 90 ELSE IF N$="Y" OR N$="y" THEN 5170
  250. 5225 IF N$="" THEN GOSUB 460:GOTO 1510 ELSE 5220
  251. 5230 ERNO=5230:ACH=21:GOSUB 100:COLOR 15,0:LOCATE 22,27:INPUT"INPUT  Y/N ,D, S, or Q:  ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOSUB 300:GOTO 5230 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 300:GOTO 5230
  252. 5235 IF N$="N" OR N$="n" THEN GOSUB 80:GOSUB 300:GOTO 5230 ELSE IF N$="Y" OR N$="y" THEN 5240 ELSE 5230
  253. 5240 GOSUB 700:IF Z5215=0 THEN 5400 ELSE S2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):S1$(X%)="WBLST-"+XX$:LISTS$="\QFP4DIR\"+S1$(X%):GOTO 5600 ' ******************************************
  254. 5300 IF YT%=19 THEN GOSUB 480:GOTO 5310 ELSE GOSUB 300:GOTO 5230
  255. 5310 GOSUB 98:COLOR 15,0:LOCATE 24,24:INPUT;"INPUT  S-SUBMENU  OR  C-CHANGE: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOSUB 480:GOTO 5310 ELSE IF N$="C" OR N$="c" THEN 5170 ELSE 5310
  256. 5400 FOR X%=YT% TO 1 STEP -1:IF LEN(S1$(X%))=7 THEN Z%=VAL(RIGHT$(S1$(X%),1)) ELSE Z%=VAL(RIGHT$(S1$(X%),2))
  257. 5410 T1$(Z%)=S1$(X%):T2$(Z%)=S2$(X%):NEXT X%:YT%=YT%+1
  258. 5420 FOR X%=1 TO 19:IF T1$(X%)="" THEN 5425 ELSE NEXT X%
  259. 5425 XX%=1:T2$(X%)=CL$:X$=STR$(X%):XX$=RIGHT$(X$,(LEN(X$)-1)):T1$(X%)="WBLST-"+XX$:LISTS$="\QFP4DIR\"+T1$(X%)  ' ***********************************************
  260. 5430 FOR X%=XX% TO 19: IF T1$(X%)="" THEN 5440 ELSE NEXT X%:GOTO 5600
  261. 5440 FOR Z%=X% TO 18:T1$(Z%)=T1$(Z%+1):T2$(Z%)=T2$(Z%+1):NEXT Z%:XX%=X%+1:GOTO 5430
  262. 5600 IF Z5215=1 THEN Z5215=0:GOTO 5610
  263. 5605 OPEN TITLE$ FOR OUTPUT AS #1:WRITE #1,YT%:FOR X%=1 TO YT%:WRITE #1,T1$(X%),T2$(X%):NEXT X%:CLOSE #1
  264. 5610 OPEN LISTS$ FOR OUTPUT AS #2:WRITE #2,Y%:FOR X%=1 TO Y%:WRITE #2,P$(X%):NEXT X%:CLOSE #2:GOTO 1120
  265. 6000 ERNO2=6000:IF YT%=0 THEN 2020 ELSE X240$="LIST":XX240$=" ERASE":GOSUB 240
  266. 6010 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT%=1 THEN 6015 ELSE PRINT"-";YT%;
  267. 6015 PRINT", D,";:INPUT;" S, or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 455:GOTO 6000 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 245:GOTO 6010
  268. 6020 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN GOSUB 680:GOTO 6030 ELSE 2020
  269. 6030 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 455:GOTO 6000 ELSE IF N$="N" OR N$="n" THEN 6000 ELSE IF N$="Y" OR N$="y" THEN GOSUB 250:GOTO 6080 ELSE 6030
  270. 6080 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 455:GOTO 6000 ELSE IF N$="N" OR N$="n" THEN 90 ELSE IF N$="Y" OR N$="y" THEN 6100 ELSE 6080
  271. 6100 ERNO=6100:CANCEL$="\QFP4DIR\"+S1$(N):KILL CANCEL$  ' ********************************************************
  272. 6110 YT%=YT%-1:FOR X%=1 TO YT%:IF N=X% THEN 6120 ELSE NEXT X%:GOTO 6130
  273. 6120 FOR Z%=X% TO YT%:S1$(Z%)=S1$(Z%+1):S2$(Z%)=S2$(Z%+1):NEXT Z%
  274. 6130 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 90
  275. 6500 ERNO2=6500:IF YT%=0 THEN 4020 ELSE X240$="TABLE":XX240$=" ERASE":GOSUB 240
  276. 6510 GOSUB 98:COLOR 15,0:LOCATE 24,29:PRINT"INPUT 1";:IF YT%=1 THEN 6515 ELSE PRINT"=";YT%;
  277. 6515 PRINT", D,";:INPUT;" S, or Q: ",N$:COLOR 7,0:GOSUB 50:IF NOQT=1 THEN GOSUB 450:GOTO 6500 ELSE IF N$="D" OR N$="d" THEN GOSUB 80:GOSUB 800:GOSUB 855:GOSUB 245:GOTO 6500
  278. 6520 N=ABS(INT(N)):IF N>0 AND N<(YT%+1) THEN GOSUB 680:GOTO 6530 ELSE 4020
  279. 6530 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 450:GOTO 6500 ELSE IF N$="N" OR N$="n" THEN 6500 ELSE IF N$="Y" OR N$="y" THEN GOSUB 250:GOTO 6580 ELSE 6530
  280. 6580 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 450:GOTO 6500 ELSE IF N$="N" OR N$="n" THEN 90 ELSE IF N$="Y" OR N$="y" THEN 6600 ELSE 6580
  281. 6600 ERNO=6600:CANCEL$="\QFP4DIR\"+S1$(N):KILL CANCEL$  ' ********************************************************
  282. 6610 YT%=YT%-1:FOR X%=1 TO YT%:IF N=X% THEN 6620 ELSE NEXT X%:GOTO 6630
  283. 6620 FOR Z%=X% TO YT%:S1$(Z%)=S1$(Z%+1):S2$(Z%)=S2$(Z%+1):NEXT Z%
  284. 6630 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 90
  285. 9000 CLEAR:COLOR 7,0: ON ERROR GOTO 10000
  286. 9001 KEY OFF:WIDTH 80: ' ****** REMOVE THIS LINE LATTER *******
  287. 9005 DIM C(19),D(19),G(19),L(19),P$(19),S1$(33),S2$(33),T1$(33),T2$(33)
  288. 9010 DEFINT A:DEF FN RT(X)=(INT(X*10+.5))/10:DEF FN RM(X)=(INT(X/100!+.5))/10!
  289. 9015 ROL$="RECORD OF LISTS":ROT$="RECORD OF TABLES":B$="BALANCE":FC$=" #######QFP-4###### ":J$=CHR$(7):DASH$=STRING$(79,45): IF Z90=1 THEN Z90=0:GOTO 9100
  290. 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 "
  291. 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 "
  292. 9050 ERNO=9050:AD$=SPACE$(209):FILE$="\QFP4DIR\QFP4DATA"  ' *******************************************************
  293. 9060 OPEN FILE$ FOR INPUT AS #1
  294. 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
  295. 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)
  296. 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
  297. 9100 CLS:AMAIN=0
  298. 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)
  299. 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)
  300. 9130 LOCATE 8,1:PRINT DASH$;"-";:LOCATE 25,1:PRINT DASH$;:IF CT=9 THEN CT=0:RETURN
  301. 9200 GOTO 1000
  302. 9400 ERNO=9400:GOSUB 150:LOCATE 15,27:PRINT" M A I N   M E N U ":GOSUB 160
  303. 9410 F$="\QFP4DIR\QFP4MAIN"  ' **************************************************
  304. 9420 DRV%=1:GOSUB 82:RUN F$
  305. 9900 CLS:COLOR 7,0:KEY ON:STOP:END '***  CHANGE TO *** CLS:COLOR 7,0:CLEAR:SYSTEM ***********************************
  306. 10000 IF ERR=53 THEN 10200
  307. 10010 IF ERR=24 OR ERR=25 OR ERR=27 THEN 10400
  308. 10020 IF ERR=61 THEN 10300
  309. 10030 IF ERR=70 AND (ERNO2=6000 OR ERNO2=6500) THEN 10100
  310. 10035 IF ERR=70 THEN 10600
  311. 10040 IF ERR=67 OR ERR=75 OR ERR=76 THEN 10700
  312. 10060 IF ERR>53 THEN 10100
  313. 10099 GOTO 20000 '     ******** CHANGE LINE TO GOTO 9000  *******
  314. 10100 CLOSE: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. "
  315. 10110 LOCATE 17,26:PRINT" PLEASE CORRECT THE SITUATION ":LOCATE 19,30:PRINT" BEFORE YOU CONTINUE. ":COLOR 7,0:GOSUB 990:GOSUB 220:DRV%=1:GOSUB 82
  316. 10115 IF ERNO=1530 THEN GOSUB 450:GOSUB 300:RESUME 1530
  317. 10120 IF ERNO=2120 THEN RESUME 2160
  318. 10130 IF ERNO=4120 THEN RESUME 4160
  319. 10140 IF ERNO2=6000 THEN RESUME 6000
  320. 10150 IF ERNO2=6500 THEN RESUME 6500
  321. 10160 IF ERNO=9400 AND NODRV=0 THEN NODRV=1:RESUME
  322. 10170 IF ERNO2=4000 THEN RESUME 4000
  323. 10180 IF ERNO2=2000 THEN RESUME 2020
  324. 10190 CLS:PRINT"FATAL DISK ERROR!!":PRINT:PRINT"PROGRAM HALTED!!!!":GOSUB 990:CLEAR:END  ' ******* CHANGE TO ****** COLOR 7,0:CLEAR:SYSTEM ********************
  325. 10200 IF ERNO=800 THEN RESUME 799
  326. 10210 IF ERNO=6100 THEN RESUME NEXT
  327. 10220 IF ERNO=6600 THEN RESUME NEXT
  328. 10230 IF ERNO=2120 THEN RESUME 2160
  329. 10240 IF ERNO=4120 THEN RESUME 4160
  330. 10250 IF ERNO=9050 THEN 10190
  331. 10299 GOTO 9000
  332. 10300 GOSUB 100:COLOR 0,7:LOCATE 12,26:PRINT" THE PROBLEM IS THAT YOU DISK ":LOCATE 14,28:PRINT" IS COMPLETELY FILLED UP. "
  333. 10310 LOCATE 17,26:PRINT" PLEASE CHECK THE MANUAL FOR ":LOCATE 19,30:PRINT" A POSSIBLE SOLUTION. ":COLOR 7,0:GOSUB 990:GOSUB 220:DRV%=1:GOSUB 82:GOTO 9000
  334. 10400 IF NOPRINT=1 THEN RESUME 1370 ELSE GOSUB 200:COLOR 15,0:LOCATE 25,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
  335. 10410 N$=INPUT$(1):NOPRINT=1:RESUME
  336. 10600 GOSUB 100:COLOR 0,7:LOCATE 13,24:PRINT" THE DISK IS WRITE PROTECTED! ":COLOR 7,0:IF NODRV=1 THEN 10630
  337. 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
  338. 10620 NODRV=1:GOSUB 990:GOSUB 220:RESUME
  339. 10630 GOSUB 990:DRV%=1:GOSUB 82:GOTO 9000
  340. 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, "
  341. 10710 LOCATE 20,26:PRINT" OR IT HAS TOO MANY FILES. ":COLOR 7,0:GOSUB 990:GOSUB 220:DRV%=1:GOSUB 82:IF ERNO=799 THEN RESUME 800 ELSE 9000
  342. 19999 GOTO 9000
  343. 20000  COLOR 7,0:PRINT J$;J$;:CLS:PRINT "ERR LINE :";ERL;"  ERROR NO ";ERR:KEY ON:RESUME 20010 : ' ***** REMOVE THIS LINE ****
  344. 20010 STOP:END ' ****** REMOVE THIS LINE *****
  345.