home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / DF1.DSK / FT.bas < prev    next >
BASIC Source File  |  2014-09-09  |  21KB  |  329 lines

  1. 10 TE$ = "": POKE 216,0: TEXT :D$ =  CHR$(4): PRINT D$"NOMON I,O,C": GOSUB 797: POKE 37902,255: GOTO 100
  2. 40  PRINT D$"OPEN"N$".P,D"D1: PRINT D$"READ"N$".P": INPUT CO,F1,LI,F2,F1$,F3,F3$,F6$,F8$,F8,MO,CT$,N,TF$,LF$: PRINT CL$: IF P1$ = "Y"  THEN  PRINT D$"OPEN DATE": PRINT D$"READ DATE": CALL 783:DA$ =  MID$ (TE$,1): PRINT CL$
  3. 50  RETURN 
  4. 80  PRINT  TAB( 3)"* UNIV. DATA MANAGEMENT SYSTEM 4.0 *": PRINT  TAB( 6)"COPYRIGHT 1980 BY W.L.PASSAUER": RETURN 
  5. 100 D1 =  PEEK(864):P$ =  CHR$( PEEK(865)):P1$ =  CHR$( PEEK(866)):S$ =  STR$( PEEK(867)):I =  PEEK(868): FOR X = 869 TO I +868:N$ = N$ + CHR$( PEEK(X)): NEXT 
  6. 120 RF$ = D$ +"READ" +N$ +",R":OF$ = D$ +"OPEN" +N$ +",L":CL$ = D$ +"CLOSE": IF D1 = 1  THEN  HOME : PRINT  CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "DATA DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
  7. 140  PRINT : PRINT D$"OPEN"N$".V,D"D1: PRINT D$"READ"N$".V": INPUT NC,RC,RR: DIM CL(NC): FOR X = 1 TO NC: INPUT CL(X): NEXT :LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL",D"D1: DIM PC(NC +5),A$(NC),S$(RC),BB(RC),H$(NC),CL%(NC),X4(NC)
  8. 190  FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"READ"N$",R"0",B"B1: CALL 783:H$(X) =  MID$ (TE$,1): NEXT : PRINT D$"CLOSE": FOR X = 1 TO NC:CL%(X) = CL(X) -CL(X -1) -1: NEXT : GOSUB 40
  9. 220  PRINT  CHR$(7);: GOTO 5000
  10. 230  PRINT D$"PR#"F8: IF F8 = 3  AND   NOT D6  THEN  PRINT :D6 = 1
  11. 231  IF CT$ < >""  THEN  PRINT CT$;
  12. 232  RETURN 
  13. 240  PRINT D$"PR#"MO: RETURN 
  14. 250  IF V$ = "V"  OR S < >0  THEN 260
  15. 252  GOSUB 230: FOR LF = LN TO LI: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 257
  16. 255  PRINT 
  17. 257  NEXT : IF F3$ = "Y"  THEN PG = PG +1: PRINT  TAB( TB)"PAGE-";PG: GOSUB 240: RETURN 
  18. 260  GOSUB 240: RETURN 
  19. 290  PRINT OF$LL",D"D1: FOR X = 1 TO NC:B1 = CL(X -1): IF X = 1  AND F7$ = "Y"  AND C1 =  >CP -1  AND (P$ = "N"  OR P$ = "")  THEN  PRINT 
  20. 320  PRINT RF$RS",B"B1: CALL 783:A$(X) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  21. 350  PRINT OF$LL: FOR X = 1 TO NC:B1 = CL(X -1): PRINT RF$BB(RS)",B"B1: CALL 783:A$(X) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  22. 370  ONERR  GOTO 424
  23. 380  PRINT OF$LL: FOR I = 1 TO X1:B1 = CL(C -1): PRINT RF$BB(I)",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN 
  24. 390  ONERR  GOTO 425
  25. 400  PRINT OF$LL: FOR I = 1 TO X1:B1 = CL(C -1): PRINT RF$I",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN 
  26. 410  ONERR  GOTO 425
  27. 420  PRINT OF$LL",D"D1: FOR I = 1 TO RC:B1 = CL(WC -1): PRINT RF$I",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN 
  28. 424 I = BB(I)
  29. 425  POKE 216,0: GOSUB 240: PRINT  CHR$(7): HOME : VTAB 12: PRINT "DISK ERROR-RECORD ";: INVERSE : PRINT I;: NORMAL : PRINT " MAY BE BAD": PRINT "PRESS 'RTN'";: GET Z$: GOTO 5710
  30. 430 CV =  PEEK(37): POKE 37,(CV -1): CALL  -958: RETURN 
  31. 440  FOR X = 1 TO NC: PRINT  TAB( 4)X;"- ("CL%(X)") ";: HTAB 14: PRINT H$(X): NEXT : RETURN 
  32. 450  FOR X = 1 TO 40: PRINT "-";: NEXT : RETURN 
  33. 460  HOME : VTAB 12: PRINT  TAB( 11)"> RECALLING DATA <": RETURN 
  34. 470  ONERR  GOTO 790
  35. 475 F5$ = "":W3$ = "":WR$ = "": PRINT D$"OPEN"N$".F": PRINT D$"READ"N$".F": INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : PRINT CL$: POKE 216,0: HOME :B = 1: PRINT : PRINT "FORMAT SELECT:": PRINT : FOR I = 1 TO NR: PRINT I" "R$(I): NEXT : PRINT : PRINT I" CREATE A NEW FORMAT ": PRINT 
  36. 540  INPUT "WHICH: ";Z2$:Z =  VAL(Z2$): IF Z <1  OR Z >I  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 540
  37. 550  HOME : IF Z = I  THEN B = 0: GOTO 4050
  38. 560  PRINT : PRINT D$"OPEN"R$(Z)"-F,D"D1: PRINT D$" READ "R$(Z)"-F": INPUT CO,F1,LI,F2,F1$,F3,F6$,F8$,F3$,A$,F5$,W3$,W2$,H1,WR$,F7$,CP,WN$,N,TF$,V$: FOR X = 1 TO CP -1: INPUT PC(X): NEXT : PRINT : PRINT CL$
  39. 600  RETURN 
  40. 610  IF NR =  >10  THEN 5700
  41. 620  HOME : PRINT  CHR$(7);: VTAB 11: INPUT "SAVE THIS FORMAT TO DISK (Y/N) ";Z2$: IF Z2$ < >"Y"  AND Z2$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 620
  42. 630 B = 1: IF Z2$ = "N"  THEN 5700
  43. 640  IF NR <1  THEN NR = 0
  44. 650  ONERR  GOTO 795
  45. 660  PRINT 
  46. 670  PRINT "ENTER NAME FOR FORMAT (28) ":HT = 1:V = 2:L = 28: GOSUB 800:R$(NR +1) = B$: IF R$(NR +1) = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 670
  47. 675  IF P$ = "Y"  THEN R$(NR +1) = R$(NR +1) +".P": GOTO 680
  48. 677 R$(NR +1) = R$(NR +1) +".M"
  49. 680 NN = NR +1: PRINT : PRINT D$"OPEN"R$(NN)"-F,D"D1: PRINT D$"WRITE"R$(NN)"-F": PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F6$: PRINT F8$: PRINT F3$: PRINT A$: PRINT F5$: PRINT W3$: PRINT W2$: PRINT H1: PRINT WR$: PRINT F7$: PRINT CP: PRINT WN$: PRINT N: PRINT TF$: PRINT V$: FOR X = 1 TO CP -1: PRINT PC(X): NEXT : PRINT CL$: POKE 216,0
  50. 685  IF   NOT NR  THEN 710
  51. 690  FOR J = 1 TO NR: IF R$(NR +1) = R$(J)  THEN  RETURN 
  52. 700  NEXT 
  53. 710  PRINT D$"OPEN"N$".F": PRINT D$"WRITE"N$".F": PRINT NR +1: FOR J = 1 TO NR +1: PRINT R$(J): NEXT : PRINT : PRINT CL$: RETURN 
  54. 790  CALL 1013: GOTO 4050
  55. 795  CALL 1013: PRINT  CHR$(7): PRINT "BAD FORMAT NAME-TRY AGAIN": GOTO 660
  56. 797  FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT : RETURN : DATA 104,168,104,166,223,154,72,152,72,96
  57. 800 B$ = "": IF Z$ = ""  THEN  FOR I = 1 TO L: PRINT "_";: NEXT : VTAB ( PEEK(37) +2 -(L/39.9)): HTAB 1: GOTO 810
  58. 805 CV =  PEEK(37): HTAB HT: VTAB CV +V: FOR I = 1 TO L: PRINT "_";: NEXT : VTAB CV +V: HTAB HT
  59. 810  FOR I = 1 TO L +1
  60. 820  GET E$
  61. 823  IF E$ =  CHR$(10)  THEN E$ =  CHR$(92)
  62. 824  IF E$ =  CHR$(11)  THEN E$ =  CHR$(91)
  63. 825  IF E$ =  CHR$(12)  THEN E$ =  CHR$(95)
  64. 830  IF E$ =  CHR$(21)  THEN 820
  65. 840  IF E$ =  CHR$(8)  THEN  GOSUB 890: GOTO 820
  66. 850  IF E$ =  CHR$(13)  THEN  PRINT E$;: RETURN 
  67. 860  PRINT E$;:B$ = B$ +E$: NEXT 
  68. 870  IF  RIGHT$(B$,1) < > CHR$(13)  THEN  GOSUB 940: GOTO 800
  69. 880  RETURN 
  70. 890  IF I < = 1  THEN  RETURN 
  71. 900  PRINT  CHR$(8);"_"; CHR$(8);
  72. 910 I = I -1
  73. 920  IF I =  <1  THEN I = 1:B$ = "": RETURN 
  74. 930 B$ =  LEFT$(B$, LEN(B$) -1): RETURN 
  75. 940  PRINT  CHR$(7): INVERSE : HTAB 10: PRINT "ENTRY IS TOO LONG": NORMAL : RETURN 
  76. 2000  REM 
  77. 2010 A = 1
  78. 2020  IF W2$ = "Y"  OR WN$ = "Y"  THEN F4 = F1 +5: GOTO 2040
  79. 2030 F4 = F1
  80. 2040 F5 = 0: IF F5$ = "Y"  THEN F5 = F5 +2
  81. 2050  IF F3$ = "Y"  THEN F5 = F5 +2
  82. 2060  IF A$ = "Y"  THEN F5 = F5 +2
  83. 2070 S = 0: IF A$ = "N"  THEN 2390
  84. 2080  IF LN = F5  AND V$ < >"V"  THEN 2110
  85. 2085  IF FM  THEN 2110
  86. 2090  IF CK >0  THEN 2400
  87. 2100 CK = 1:PG = 0: HOME :TA =  INT((CO/2) -( LEN(N$)/2)):TB = (CO/2) -3
  88. 2110  PRINT : IF F5$ = "N"  THEN 2127
  89. 2120  PRINT  SPC( TA)N$;: PRINT  SPC(  INT((CO -1) -(TA + LEN(N$) + LEN(DA$))))DA$: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2130
  90. 2125  PRINT 
  91. 2127  IF V$ = "V"  THEN 2390
  92. 2130 CH = 0:CH = CH +(F4 -1):CH% = 0: FOR C1 = 1 TO H1:CH = CH +(CL%(PC(C1)) +1):CH% = CH% +CL%(PC(C1)): IF CH >CO  THEN 2880
  93. 2200  NEXT :SP =  INT((CO -F4 -1 -CH%)/H1): IF SP <1  THEN  IF H1 +CH% < = CO  THEN SP = 1
  94. 2230  IF SP < = 0  THEN 2880
  95. 2240 HC = 0: IF A$ = "N"  THEN 2390
  96. 2250  IF WR$ = "Y"  THEN H2 = CP -1: GOTO 2270
  97. 2260 H2 = H1
  98. 2270  FOR C1 = 1 TO H2: IF C1 <2  THEN  HTAB F4
  99. 2320  IF WR$ = "Y"  THEN HC = HC +1: IF HC = H1  THEN 2350
  100. 2330  IF C1 =  >H2  THEN 2350
  101. 2340  PRINT H$(PC(C1));: PRINT  SPC( CL%(PC(C1)) - LEN(H$(PC(C1))) +SP);: GOTO 2360
  102. 2350  PRINT H$(PC(C1)):HC = 0: IF C1 <H2  THEN F5 = F5 +1: IF CP < >C1  THEN  HTAB F4
  103. 2360  NEXT : FOR TI = 1 TO CO -1: PRINT "-";: NEXT : PRINT 
  104. 2390 LN = F5:HC = 0
  105. 2400  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  106. 2440  IF   NOT FL  AND HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  107. 2450  IF  ASC(A$(PC(C1))) = 64  THEN 2610
  108. 2455  IF V$ = "V"  THEN 2950
  109. 2460 HC = HC +1: IF HC > = H1  OR C1 = CP -1  THEN 2542
  110. 2470  IF A$ = "Y"  THEN 2505
  111. 2475  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2490
  112. 2480  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  113. 2490  IF HC = 1  THEN  HTAB F4
  114. 2500  PRINT A$(PC(C1));: PRINT " ";: GOTO 2610
  115. 2505  IF FL  THEN  FOR TI = 1 TO CO: PRINT "=";: NEXT :LN = LN +1:FL = 0:FK = 1: PRINT 
  116. 2510  IF F7$ = "Y"  AND C1 =  >H1  THEN 2545
  117. 2515  IF   NOT FK  AND WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2530
  118. 2520  IF   NOT FK  AND W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  119. 2530  IF HC = 1  THEN  HTAB F4
  120. 2535  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  121. 2540  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +SP: PRINT  SPC( PC);: GOTO 2600
  122. 2542  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  123. 2545  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2560
  124. 2550  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  125. 2560  IF HC = 1  OR (F7$ = "Y"  AND C1 =  >H1)  THEN  HTAB F4
  126. 2570  PRINT A$(PC(C1)): IF LF$ = "Y"  AND A$ = "N"  THEN  PRINT  CHR$(10)
  127. 2575 HC = 0: IF F7$ = "Y"  AND C1 =  >H1  THEN HC = C1
  128. 2580 LN = LN +1: IF LN > = LI  THEN 2730
  129. 2582  IF F2 <2  THEN 2600
  130. 2584  FOR X = 1 TO F2 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2587
  131. 2586  PRINT 
  132. 2587 LN = LN +1: IF LN > = LI  THEN 2730
  133. 2588  NEXT 
  134. 2600 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5010
  135. 2610  NEXT C1: IF F7$ = "Y"  THEN HC = 0
  136. 2620  IF F1$ < >"F"  OR F6$ < >"R"  THEN 2640
  137. 2625  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): NEXT : GOTO 2640
  138. 2627  PRINT : NEXT 
  139. 2640  IF C1 < = NC  THEN  IF A$ = "N"  AND HC > = H1  AND PC(C1) <NC  THEN  PRINT 
  140. 2700  IF W2$ = "Y"  THEN F4 = F1 -5
  141. 2710  IF C1 <CP -1  THEN  PRINT OF$LL",D"D1: HOME :A = C1 +1: GOTO 2020
  142. 2720  GOSUB 240: RETURN 
  143. 2730  IF F7$ = "N"  AND WR$ = "N"  AND C1 > = CP -1  THEN  PRINT 
  144. 2740  IF F3$ = "N"  OR V$ = "V"  THEN  PRINT : GOTO 2760
  145. 2745  IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2750
  146. 2747  PRINT 
  147. 2750 PG = PG +1: PRINT  SPC( TB)"PAGE-";PG:HC = 0
  148. 2760  IF F7$ = "Y"  AND RS =  >RT  THEN  GOSUB 240:S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  149. 2770  IF F7$ = "Y"  AND RS =  >RT  THEN  RETURN 
  150. 2780  IF F1$ < >"F"  AND F3 <2  THEN 2790
  151. 2782  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2786
  152. 2784  PRINT 
  153. 2786  NEXT : IF F0  THEN  RETURN 
  154. 2790  GOSUB 240: IF C1 = CP  AND RS = RC  THEN S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  155. 2800  IF C1 = CP  AND RS = RC  THEN S = 1: RETURN 
  156. 2810  IF F1$ = "F"  AND F8$ = "C"  THEN 2850
  157. 2820  HOME : PRINT  CHR$(7): VTAB 12: PRINT "E)ND,OR 'RTN' TO CONTINUE.";: GET Z$: IF Z$ = "E"  THEN  IF W2$ = "Y"  THEN F4 = F1 -5
  158. 2830  IF Z$ = "E"  AND B = 0  THEN  GOSUB 610
  159. 2840  IF Z$ = "E"  THEN  POP : GOTO 5670
  160. 2850  IF F7$ = "Y"  THEN HC = 0
  161. 2860  HOME : PRINT : GOSUB 230: IF F8 = 3  THEN  PRINT  CHR$(12)
  162. 2865  IF F5$ = "Y"  AND F3$ = "Y"  THEN LN = 6: GOTO 2700
  163. 2870 LN = 4: IF RS <FR  OR (  NOT FL)  THEN 2700
  164. 2875  GOTO 2020
  165. 2880  HOME : PRINT  CHR$(7): VTAB 12: HTAB (5): PRINT "TOO MANY HORIZ. CHARACTERS USED !": FOR X = 1 TO 4000: NEXT : POP : GOSUB 240: GOTO 5670
  166. 2900 S1 = CL%(PC(C1)):X4 =  VAL(A$(PC(C1))):X4(PC(C1)) = X4(PC(C1)) + VAL(A$(PC(C1))):X$ = " " + STR$( INT(X4 *10 ^N +.5)):Q =  LEN(X$) -( VAL(X$) <0)
  167. 2905  IF S1 -Q =  <0  THEN  PRINT : GOSUB 240: POP : HOME : PRINT  CHR$(7);: VTAB 12: PRINT "NO.TOO LARGE TO JUSTIFY ERROR!": PRINT "PRESS 'RTN'";: GET Z$: GOTO 5670
  168. 2910  PRINT  SPC( S1 -Q *(Q >N +1) -(N +2) *(Q < = N +1) -1);: PRINT  MID$ (X$,1 +( VAL(X$) <0),(Q < = N) +(Q -N) *(Q >N));
  169. 2920  PRINT  MID$ ("0.00",1 +((N +1) <Q),1 +(N -Q +2) *(Q <N +2));
  170. 2930  IF HC > = H1  THEN  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N)): GOTO 2575
  171. 2940  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N));: PRINT  SPC( SP);: GOTO 2610
  172. 2950  IF WN$ < >"Y"  AND W2$ < >"Y"  THEN 2990
  173. 2975  IF WN$ = "Y"  THEN  PRINT NO".";: GOTO 2985
  174. 2980  PRINT RS;
  175. 2985  HTAB F4
  176. 2990  PRINT H$(PC(C1))" - "A$(PC(C1)): GOTO 2582
  177. 3000  REM 
  178. 3005 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5010
  179. 3010 A = 1
  180. 3020 S = S +1:LN = LN +1: IF S >1  THEN 3140
  181. 3040  IF A$ = "N"  OR W3$ = "V"  THEN 3140
  182. 3050  FOR C1 = 1 TO H1: IF (W2$ = "Y"  OR WN$ = "Y")  AND C1 = 1  THEN  HTAB 5
  183. 3100  PRINT H$(PC(C1));:PC = CL%(PC(C1)) - LEN(H$(PC(C1))) +1: PRINT  SPC( PC)"";: NEXT : PRINT : FOR X = 1 TO 40: PRINT "-";: NEXT 
  184. 3140  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  185. 3180  IF HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  186. 3190  IF  ASC(A$(PC(C1))) = 64  THEN 3340
  187. 3200  IF A$ = "Y"  AND W3$ = "H"  THEN 3260
  188. 3210  IF A$ = "N"  THEN 3230
  189. 3220  PRINT : PRINT H$(PC(C1));" - "
  190. 3230 HC = HC +1: IF HC =  >H1  THEN 3295
  191. 3235  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3250
  192. 3240  IF W2$ = "Y"  AND HC = 1  THEN  PRINT R;: HTAB 5
  193. 3250  PRINT A$(PC(C1));: PRINT " ";: GOTO 3340
  194. 3260 HC = HC +1: IF HC > = H1  THEN 3295
  195. 3270  IF F7$ = "Y"  AND C1 =  >H1  THEN 3295
  196. 3275  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3290
  197. 3280  IF W2$ = "Y"  AND HC = 1  THEN  PRINT R;: HTAB 5
  198. 3290  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +1: PRINT  SPC( PC)"";: GOTO 3340
  199. 3295  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3310
  200. 3300  IF W2$ = "Y"  AND HC = 1  THEN  PRINT R;: HTAB 5
  201. 3310  PRINT A$(PC(C1)):HC = 0:CV =  PEEK(37): IF CV >18  THEN 3370
  202. 3340  NEXT C1: IF H1 <CP -1  AND (F7$ = "N"  OR F7$ = "")  THEN HC = 0: PRINT 
  203. 3360  RETURN 
  204. 3370  PRINT : PRINT :HC = 0: PRINT : PRINT CL$: IF C1 = CP  AND RS = RC  THEN  RETURN 
  205. 3390  PRINT "E)ND,OR 'RTN' TO CONT. ";: GET Z1$: IF Z1$ = "E"  AND B = 0  THEN  GOSUB 610
  206. 3410  IF Z1$ = "E"  THEN  POP : GOTO 5670
  207. 3420 S = 0: PRINT : PRINT OF$LL",D"D1: HOME :A = C1 +1: IF A =  <CP -1  THEN 3020
  208. 3430  GOTO 3360
  209. 4000  REM 
  210. 4010  HOME : PRINT  TAB( 8)"> PRINT-OUT FORMATTING <": GOSUB 450: PRINT 
  211. 4020 LN = 0:S = 0:F5$ = "":F7$ = "":C2 = 0:HC = 0:H1 = 0:W2$ = "":W3$ = "":WR$ = "":WN$ = "":NO = 0: IF P1$ = "Y"  THEN  INPUT "ON PRINTER (Y/N) ? ";P$: VTAB 3: CALL  -958: HTAB 1: IF P$ < >"Y"  AND P$ < >"N"  THEN  PRINT  CHR$(7): GOTO 4020
  212. 4030  IF P$ = "Y"  THEN  HOME : FLASH : PRINT  CHR$(7): VTAB 12: HTAB 11: PRINT "TURN ON PRINTER !!": NORMAL : PRINT  CHR$(7)
  213. 4040 B = 0: GOTO 470
  214. 4050  POKE 216,0: IF B = 1  THEN 4370
  215. 4055  IF P$ = "Y"  THEN  HOME : INPUT "PRINT RECORDS HORIZ./VERT. (H/V)? ";V$: IF V$ < >"H"  AND V$ < >"V"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4055
  216. 4057  IF V$ = "V"  THEN 4090
  217. 4060  HOME : GOSUB 440: PRINT 
  218. 4070  INPUT "PRINT FIELD NAMES (Y/N) ? ";A$: IF A$ < >"Y"  AND A$ < >"N"  OR A$ = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4070
  219. 4080  IF A$ = "N"  OR P$ = "N"  THEN 4110
  220. 4090  PRINT 
  221. 4100  INPUT "PRINT FILE TITLE (Y/N) ? ";F5$: IF F5$ < >"Y"  AND F5$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4100
  222. 4110  PRINT 
  223. 4120  IF P$ = "N"  AND A$ = "Y"  THEN  INPUT "PRINT RECORDS HORIZ./VERT. (H/V)? ";W3$: IF W3$ < >"H"  AND W3$ < >"V"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4120
  224. 4130  PRINT 
  225. 4135  INPUT "NUMBER LINES (Y/N) ? ";WN$: IF WN$ < >"Y"  AND WN$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4135
  226. 4137  IF WN$ = "Y"  THEN 4150
  227. 4139  PRINT 
  228. 4140  INPUT "PRINT RECORD NUMBERS (Y/N) ? ";W2$: IF W2$ < >"Y"  AND W2$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4140
  229. 4150  PRINT : IF W3$ = "V"  THEN 4200
  230. 4155  IF V$ = "V"  THEN H1 = 1: GOTO 4195
  231. 4160  HOME : GOSUB 440: PRINT 
  232. 4170  PRINT "PRINT HOW MANY FIELDS HORIZONTALLY": PRINT "BEFORE CARRIAGE RETURN ";: INPUT H1: IF H1 <1  OR H1 >NC +5  THEN  PRINT  CHR$(7);:CV =  PEEK(37): POKE 37,(CV -2): CALL  -958: GOTO 4170
  233. 4190  PRINT 
  234. 4195  IF V$ = "V"  THEN  HOME : GOSUB 440: PRINT 
  235. 4200  GOSUB 450: PRINT "FIELD SELECTION-ENTER '0' WHEN FINISHED": GOSUB 450: PRINT :CP = 0: FOR CP = 1 TO NC +5
  236. 4220  PRINT "PRINT WHICH FIELD #: ";: INPUT PC(CP): IF PC(CP) = 0  THEN 4260
  237. 4240  IF PC(CP) >NC  THEN  PRINT  CHR$(7): PRINT "INPUT TO HIGH!!": GOTO 4220
  238. 4250  NEXT 
  239. 4260  IF CP -1 <H1  THEN  PRINT  CHR$(7): HOME : VTAB 11: PRINT "YOU SELECTED TO PRINT "H1" FIELDS": PRINT "ACROSS, BUT ONLY CHOSE TO PRINT "CP -1: PRINT "FIELDS, PRESS 'RTN' TO TRY AGAIN.";: GET Z$: HOME : GOTO 4170
  240. 4270  IF W3$ = "V"  THEN 4370
  241. 4280  IF CP >NC  THEN 4300
  242. 4290  IF PC(CP) = 0  AND CP = H1 +1  THEN 4370
  243. 4300  IF H1 = CP -1  THEN 4370
  244. 4305  IF V$ = "V"  THEN 4370
  245. 4310  PRINT : IF A$ = "N"  OR P$ = "N"  THEN 4340
  246. 4320  INPUT "USE WRAP AROUND OPTION (Y/N) ? ";WR$: IF WR$ < >"Y"  AND WR$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4320
  247. 4330  IF WR$ = "Y"  THEN 4370
  248. 4340  PRINT : IF A$ = "N"  AND P$ = "N"  THEN 4370
  249. 4360  IF H1 =  <CP -1  THEN  INPUT "USE UNDERNEATH FORMATTING (Y/N) ? ";F7$: IF F7$ < >"Y"  AND F7$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 4360
  250. 4370  HOME : RETURN 
  251. 5000  CALL 37896: REM  
  252. 5010 D6 = 0:RT = RC: FOR X = 1 TO X1:BB(X) = 0: NEXT :Z$ = "":X1 = 0:PG = 0:CK = 0:LN = 0: HOME : PRINT  TAB( 10)"* FROM / TO SEARCH *": GOSUB 450: PRINT : INPUT "USE 'ENTRY' SEARCH OPTION (Y/N) ? ";A1$: PRINT : IF A1$ < >""  THEN  IF  ASC(A1$) = 17  THEN 5710
  253. 5030  IF A1$ < >"Y"  AND A1$ < >"N"  THEN  PRINT  CHR$(7): GOTO 5010
  254. 5040  IF A1$ = "N"  THEN 5100
  255. 5050  PRINT : HTAB 10: PRINT "* PRINT-OUT ITEMS *": PRINT : HTAB 9: PRINT "1- EQUAL TO 'ENTRY'": HTAB 9: PRINT "2- NOT EQUAL TO 'ENTRY'": PRINT 
  256. 5060  HTAB 16: INPUT "WHICH: ";Z3$: IF Z3$ <"1"  OR Z3$ >"2"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5060
  257. 5080  HOME : GOSUB 440: PRINT : INPUT "'ENTRY' FOUND IN WHAT FIELD # ? ";WC: PRINT : IF WC <1  OR WC >NC  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5080
  258. 5090  PRINT : PRINT "ENTER 'ENTRY': ":L = CL%(WC):HT = 1:V = 2: GOSUB 800:WO$ = B$:SK =  INT(CL%(WC)/40): FOR X = 1 TO SK: PRINT : NEXT 
  259. 5095  PRINT 
  260. 5100  INPUT "USE DATE OPTION (Y/N) ? ";Z$: IF Z$ < >"Y"  AND Z$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5100
  261. 5110  IF Z$ = "N"  THEN  GOSUB 430: PRINT : GOTO 5175
  262. 5120  PRINT : PRINT 
  263. 5130  PRINT "'FROM' DATE (MM/DD/YY) ? ";:L = 8:HT = 27:V = 1: GOSUB 800:Y$ = B$: IF Y$ = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5130
  264. 5140  PRINT 
  265. 5150  PRINT "'TO' DATE (MM/DD/YY) ? ";:L = 8:HT = 25:V = 1: GOSUB 800:X$ = B$: IF X$ = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5150
  266. 5160  HOME : GOSUB 440: PRINT : INPUT "DATES IN WHAT FIELD # ? ";C: IF C <1  OR C >NC  THEN  PRINT  CHR$(7);: GOTO 5160
  267. 5170  GOTO 5230
  268. 5175  HOME : GOSUB 440: PRINT : INPUT "NUMBERS IN WHICH FIELD ? ";C: HOME : IF C >NC  THEN  PRINT  CHR$(7);: GOTO 5175
  269. 5180  HOME : HTAB 8: PRINT "- ENTER REGULAR NUMBERS -": GOSUB 450: PRINT 
  270. 5190  PRINT "'FROM' WHAT VALUE ? ";:L = CL%(C):HT = 21:V = 1: GOSUB 800:GT$ = B$: IF GT$ = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5190
  271. 5200  PRINT 
  272. 5210  PRINT "'TO' WHAT VALUE ? ";:L = CL%(C):HT = 21:V = 1: GOSUB 800:LT$ = B$: IF LT$ = ""  THEN  PRINT  CHR$(7);: GOSUB 430: GOTO 5210
  273. 5230  GOSUB 4000
  274. 5240  VTAB 12: HTAB 11: PRINT "< RECALLING DATA >": IF A1$ = "N"  THEN X1 = RC: GOTO 5330
  275. 5260  GOSUB 410: FOR X = 1 TO RC: IF Z3$ = "2"  THEN 5310
  276. 5290  IF S$(X) = WO$  THEN X1 = X1 +1:BB(X1) = X
  277. 5300  GOTO 5320
  278. 5310  IF S$(X) < >WO$  THEN X1 = X1 +1:BB(X1) = X
  279. 5320  NEXT 
  280. 5330  IF A1$ = "N"  THEN 5360
  281. 5350  GOSUB 370: HOME : GOTO 5380
  282. 5360  GOSUB 460
  283. 5370  GOSUB 390: HOME 
  284. 5380  FOR RS = 1 TO X1: IF Z$ = "N"  THEN 5440
  285. 5400  IF  RIGHT$(S$(RS),2) + LEFT$(S$(RS),2) + MID$ (S$(RS),4,2) > =  RIGHT$(Y$,2) + LEFT$(Y$,2) + MID$ (Y$,4,2)  THEN 5420
  286. 5410  GOTO 5640
  287. 5420  IF  RIGHT$(S$(RS),2) + LEFT$(S$(RS),2) + MID$ (S$(RS),4,2) < =  RIGHT$(X$,2) + LEFT$(X$,2) + MID$ (X$,4,2)  THEN 5590
  288. 5430  GOTO 5640
  289. 5440 LA = 1:LB = 1:LC = 1: IF  LEN(GT$) <2  THEN LA = 0
  290. 5450  IF  LEN(S$(RS)) <2  THEN LC = 0
  291. 5460  IF  LEN(LT$) <2  THEN LB = 0
  292. 5465  IF S$(RS) = ""  THEN 5640
  293. 5470  IF  ASC( LEFT$(S$(RS),1)) = 36  AND  ASC( LEFT$(GT$,1)) = 36  THEN 5540
  294. 5480  IF  ASC( LEFT$(S$(RS),1)) = 36  AND  ASC( LEFT$(GT$,1)) < >36  THEN 5560
  295. 5490  IF  ASC( LEFT$(GT$,1)) = 36  AND  ASC( LEFT$(S$(RS),1)) < >36  THEN 5520
  296. 5500  IF  VAL(S$(RS)) > =  VAL(GT$)  AND  VAL(S$(RS)) < =  VAL(LT$)  THEN 5590
  297. 5510  GOTO 5640
  298. 5520 LF =  LEN(GT$):LF$ =  RIGHT$(GT$,LF -LA):LG =  LEN(LT$)LG$ =  RIGHT$(LT$,LG -LB): IF  VAL(S$(RS)) > =  VAL(LF$)  AND  VAL(S$(RS)) < =  VAL(LG$)  THEN 5590
  299. 5530  GOTO 5640
  300. 5540 LE =  LEN(S$(RS)):LE$ =  RIGHT$(S$(RS),LE -LC):LF =  LEN(GT$):LF$ =  RIGHT$(GT$,LF -LA):LG =  LEN(LT$):LG$ =  RIGHT$(LT$,LG -LB): IF  VAL(LE$) > =  VAL(LF$)  AND  VAL(LE$) < =  VAL(LG$)  THEN 5590
  301. 5550  GOTO 5640
  302. 5560 LE =  LEN(S$(RS)):LE$ =  RIGHT$(S$(RS),LE -LC): IF  VAL(LE$) > =  VAL(GT$)  AND  VAL(LE$) < =  VAL(LT$)  THEN 5590
  303. 5570  GOTO 5640
  304. 5580  GOTO 5640
  305. 5590  IF A1$ = "Y"  THEN R = BB(RS): GOSUB 350: GOTO 5610
  306. 5600 R = RS: GOSUB 290
  307. 5610  IF P$ = "N"  THEN 5630
  308. 5620  GOSUB 230: GOSUB 2000: GOTO 5640
  309. 5630  GOSUB 3000
  310. 5640  NEXT : IF P$ = "N"  OR A$ = "N"  THEN 5670
  311. 5645 F0 = 0:FL = 0:FM = 0:FK = 0: IF A$ < >"Y"  OR TF$ = "N"  THEN 5668
  312. 5650  FOR XT = 1 TO NC: IF  RIGHT$(H$(XT),1) = " "  THEN A$(XT) =  STR$(X4(XT)): GOTO 5654
  313. 5652 A$(XT) = " "
  314. 5654  NEXT 
  315. 5655  FOR XT = 1 TO NC: IF  RIGHT$(H$(XT),1) < >" "  THEN 5660
  316. 5656 RT = RT +1:FL = 1: IF LN = LI -1  THEN F0 = 1:FM = 1: GOSUB 250: GOSUB 230: GOSUB 2780: GOSUB 2000:S = 0: GOSUB 250: GOTO 5668
  317. 5657  IF LN = LI  THEN  GOSUB 230:F0 = 1:FM = 1: GOSUB 230: GOSUB 2780: GOSUB 2000:S = 0: GOSUB 250: GOTO 5668
  318. 5658  IF LN = LI -2  THEN  GOSUB 230: GOSUB 2000:F0 = 1: GOTO 5668
  319. 5659  GOSUB 230: GOSUB 2000: GOTO 5668
  320. 5660  NEXT XT
  321. 5668 FL = 0:FM = 0:FK = 0: IF F0 = 0  THEN  GOSUB 250
  322. 5669 F0 = 0
  323. 5670  PRINT : PRINT  CHR$(7): INVERSE : PRINT "FINISHED!";: NORMAL : PRINT " A)NOTHER,R)START,'RTN'MENU";: GET ZZ$: IF ZZ$ = "A"  THEN PG = 0:CK = 0:LN = 0:S = 0:NO = 0: HOME : PRINT : GOTO 5240
  324. 5680  IF B = 0  THEN  GOSUB 610
  325. 5700  IF ZZ$ = "R"  THEN 5000
  326. 5710  IF D1 = 1  THEN  HOME : PRINT  CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "REPORT DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
  327. 5720  HOME : VTAB 12: HTAB 11: PRINT ">> LOADING MENU <<"
  328. 5730  PRINT D$"RUN MENU,D1"
  329. 63000  GOTO 5000