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

  1. 10 TE$ = "": POKE 216,0: TEXT :D$ =  CHR$(4): PRINT D$"NOMON I,O,C": GOSUB 750: 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 
  8. 180 LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL",D"D1: DIM BC(RR),PC(NC +5),A$(NC),S$(RC),H$(NC),CL%(NC),BB(RC),SE(20),C(20,20),DT$(20,20),X4(NC),X5(NC)
  9. 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
  10. 220  PRINT  CHR$(7);: GOTO 5000
  11. 230  PRINT D$"PR#"F8: IF F8 = 3  AND   NOT D6  THEN  PRINT :D6 = 1
  12. 231  IF CT$ < >""  THEN  PRINT CT$;
  13. 232  RETURN 
  14. 240  PRINT D$"PR#"MO: RETURN 
  15. 250  IF V$ = "V"  OR S < >0  THEN 260
  16. 252  GOSUB 230: FOR LF = LN TO LI: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 257
  17. 255  PRINT 
  18. 257  NEXT : IF F3$ = "Y"  THEN PG = PG +1: PRINT  TAB( TB)"PAGE-";PG: GOSUB 240: RETURN 
  19. 260  GOSUB 240: RETURN 
  20. 270  ONERR  GOTO 285
  21. 280  PRINT : PRINT OF$LL",D"D1: FOR I = 1 TO RC:B1 = CL(C -1): PRINT RF$I",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN 
  22. 285  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 5652
  23. 290  PRINT OF$LL",D"D1: FOR I = 1 TO X1:B1 = CL(C(X3,L) -1): PRINT RF$BB(I)",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  24. 300  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 
  25. 330  PRINT RF$BC(L)",B"B1: CALL 783:A$(X) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  26. 340 CV =  PEEK(37): POKE 37,(CV -1): CALL  -958: RETURN 
  27. 350  FOR X = 1 TO NC: PRINT  TAB( 4)X;"- ("CL%(X)") ";: HTAB 14: PRINT H$(X): NEXT : RETURN 
  28. 360  FOR X = 1 TO 40: PRINT "-";: NEXT : RETURN 
  29. 370  VTAB 10: PRINT  TAB( 9)"> RECALLING FLD.# "C(X3,L)" <": RETURN 
  30. 380  ONERR  GOTO 710
  31. 385 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 
  32. 450  INPUT "WHICH: ";Z5$:Z =  VAL(Z5$): IF Z <1  OR Z >I  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 450
  33. 460  HOME : IF Z = I  THEN B = 0: GOTO 4050
  34. 470  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$
  35. 510  RETURN 
  36. 520  IF NR =  >10  THEN 5650
  37. 530  HOME : PRINT  CHR$(7);: VTAB 11: INPUT "SAVE THIS FORMAT TO DISK (Y/N) ";Z5$: IF Z5$ < >"Y"  AND Z5$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 530
  38. 540 B = 1: IF Z5$ = "N"  THEN 5650
  39. 550  IF NR <1  THEN NR = 0
  40. 560  ONERR  GOTO 720
  41. 570  PRINT 
  42. 580  PRINT "ENTER NAME FOR FORMAT (28) ":L = 28: GOSUB 800:R$(NR +1) = B$: IF R$(NR +1) = ""  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 580
  43. 585  IF P$ = "Y"  THEN R$(NR +1) = R$(NR +1) +".P": GOTO 590
  44. 587 R$(NR +1) = R$(NR +1) +".M"
  45. 590 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
  46. 595  IF   NOT NR  THEN 610
  47. 600  FOR J = 1 TO NR: IF R$(NR +1) = R$(J)  THEN  RETURN 
  48. 605  NEXT 
  49. 610  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 
  50. 710  CALL 1013: GOTO 4050
  51. 720  CALL 1013: PRINT  CHR$(7): PRINT "BAD FORMAT NAME-TRY AGAIN": GOTO 570
  52. 750  FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT : RETURN : DATA 104,168,104,166,223,154,72,152,72,96
  53. 800 B$ = "": PRINT : FOR I = 1 TO L: PRINT "_";: NEXT : VTAB ( PEEK(37) +2 -(L/39.9)): HTAB 1
  54. 810  FOR I = 1 TO L +1
  55. 820  GET E$
  56. 823  IF E$ =  CHR$(10)  THEN E$ =  CHR$(92)
  57. 824  IF E$ =  CHR$(11)  THEN E$ =  CHR$(91)
  58. 825  IF E$ =  CHR$(12)  THEN E$ =  CHR$(95)
  59. 830  IF E$ =  CHR$(21)  THEN 820
  60. 840  IF E$ =  CHR$(8)  THEN  GOSUB 890: GOTO 820
  61. 850  IF E$ =  CHR$(13)  THEN  PRINT E$;: RETURN 
  62. 860  PRINT E$;:B$ = B$ +E$: NEXT 
  63. 870  IF  RIGHT$(B$,1) < > CHR$(13)  THEN  GOSUB 940: GOTO 800
  64. 880  RETURN 
  65. 890  IF I < = 1  THEN  RETURN 
  66. 900  PRINT  CHR$(8);"_"; CHR$(8);
  67. 910 I = I -1
  68. 920  IF I =  <1  THEN I = 1:B$ = "": RETURN 
  69. 930 B$ =  LEFT$(B$, LEN(B$) -1): RETURN 
  70. 940  PRINT  CHR$(7): INVERSE : HTAB 10: PRINT "ENTRY IS TOO LONG": NORMAL : RETURN 
  71. 950 SK =  INT(CL%(C(X5,Y))/40): FOR X = 1 TO SK: PRINT : NEXT : RETURN 
  72. 960 F0 = 0:FM = 0:FK = 0: IF A$ < >"Y"  OR TF$ = "N"  THEN 980
  73. 962  FOR XT = 1 TO NC: IF FL = 1  AND  RIGHT$(H$(XT),1) = " "  THEN A$(XT) =  STR$(X4(XT)): GOTO 966
  74. 963  IF FL = 2  AND  RIGHT$(H$(XT),1) = " "  THEN A$(XT) =  STR$(X5(XT)): GOTO 966
  75. 964 A$(XT) = " "
  76. 966  NEXT 
  77. 968  FOR XT = 1 TO NC: IF  RIGHT$(H$(XT),1) < >" "  THEN 984
  78. 970 RT = RT +1: IF LN = LI -1  THEN F0 = 1:FM = 1: GOSUB 250: GOSUB 230: GOSUB 2780: GOSUB 2000: IF FL  THEN S = 0: GOSUB 250: GOTO 980
  79. 971  IF FM  THEN 980
  80. 972  IF LN = LI  THEN  GOSUB 230:F0 = 1:FM = 1: GOSUB 230: GOSUB 2780: GOSUB 2000: IF FL  THEN S = 0: GOSUB 250: GOTO 982
  81. 973  IF FM  THEN 982
  82. 974  IF LN = LI -2  THEN  GOSUB 230: GOSUB 2000:F0 = 1:S = 1: GOTO 980
  83. 975  IF LN = LI -3  THEN  GOSUB 230: GOSUB 2000:FM = 1: IF FL  THEN  GOSUB 250: GOSUB 230: GOSUB 2780: GOTO 982
  84. 976  IF FM  THEN 982
  85. 979  GOSUB 230: GOSUB 2000:F0 = 1: IF FJ  THEN  GOSUB 230: PRINT :LN = LN +1:FJ = 0
  86. 980  IF F0 = 0  AND MA =  >RS  THEN  GOSUB 250
  87. 982 F0 = 0:RT = RC:FM = 0:FK = 0: RETURN 
  88. 984  NEXT XT: RETURN 
  89. 2000  REM 
  90. 2010 A = 1
  91. 2020  IF W2$ = "Y"  OR WN$ = "Y"  THEN F4 = F1 +5: GOTO 2040
  92. 2030 F4 = F1
  93. 2040 F5 = 0: IF F5$ = "Y"  THEN F5 = F5 +2
  94. 2050  IF F3$ = "Y"  THEN F5 = F5 +2
  95. 2060  IF A$ = "Y"  THEN F5 = F5 +2
  96. 2070 S = 0: IF A$ = "N"  THEN 2390
  97. 2080  IF LN = F5  AND V$ < >"V"  THEN 2110
  98. 2085  IF FM  THEN 2110
  99. 2090  IF CK >0  THEN 2400
  100. 2100 CK = 1:PG = 0: HOME :TA =  INT((CO/2) -( LEN(N$)/2)):TB = (CO/2) -3
  101. 2110  PRINT : IF F5$ = "N"  THEN 2127
  102. 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
  103. 2125  PRINT 
  104. 2127  IF V$ = "V"  THEN 2390
  105. 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
  106. 2200  NEXT :SP =  INT((CO -F4 -1 -CH%)/H1): IF SP <1  THEN  IF H1 +CH% < = CO  THEN SP = 1
  107. 2230  IF SP < = 0  THEN 2880
  108. 2240 HC = 0: IF A$ = "N"  THEN 2390
  109. 2250  IF WR$ = "Y"  THEN H2 = CP -1: GOTO 2270
  110. 2260 H2 = H1
  111. 2270  FOR C1 = 1 TO H2: IF C1 <2  THEN  HTAB F4
  112. 2320  IF WR$ = "Y"  THEN HC = HC +1: IF HC = H1  THEN 2350
  113. 2330  IF C1 =  >H2  THEN 2350
  114. 2340  PRINT H$(PC(C1));: PRINT  SPC( CL%(PC(C1)) - LEN(H$(PC(C1))) +SP);: GOTO 2360
  115. 2350  PRINT H$(PC(C1)):HC = 0: IF C1 <H2  THEN F5 = F5 +1: IF CP < >C1  THEN  HTAB F4
  116. 2360  NEXT : FOR TI = 1 TO CO -1: PRINT "-";: NEXT : PRINT 
  117. 2390 LN = F5:HC = 0
  118. 2400  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  119. 2440  IF HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  120. 2450  IF  ASC(A$(PC(C1))) = 64  THEN 2610
  121. 2455  IF V$ = "V"  THEN 2950
  122. 2460 HC = HC +1: IF HC > = H1  OR C1 = CP -1  THEN 2542
  123. 2470  IF A$ = "Y"  THEN 2505
  124. 2475  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2490
  125. 2480  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  126. 2490  IF HC = 1  THEN  HTAB F4
  127. 2500  PRINT A$(PC(C1));: PRINT " ";: GOTO 2610
  128. 2505  IF FL  THEN  FOR TI = 1 TO CO: PRINT "=";: NEXT :LN = LN +1:FL = 0:FK = 1:FJ = 1: PRINT 
  129. 2510  IF F7$ = "Y"  AND C1 =  >H1  THEN 2545
  130. 2515  IF   NOT FK  AND WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2530
  131. 2520  IF   NOT FK  AND W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  132. 2530  IF HC = 1  THEN  HTAB F4
  133. 2535  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  134. 2540  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +SP: PRINT  SPC( PC);: GOTO 2600
  135. 2542  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  136. 2545  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2560
  137. 2550  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  138. 2560  IF HC = 1  OR (F7$ = "Y"  AND C1 =  >H1)  THEN  HTAB F4
  139. 2570  PRINT A$(PC(C1)): IF LF$ = "Y"  AND A$ = "N"  THEN  PRINT  CHR$(10)
  140. 2575 HC = 0: IF F7$ = "Y"  AND C1 =  >H1  THEN HC = C1
  141. 2580 LN = LN +1: IF LN > = LI  THEN 2730
  142. 2582  IF F2 <2  THEN 2600
  143. 2584  FOR X = 1 TO F2 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2587
  144. 2586  PRINT 
  145. 2587 LN = LN +1: IF LN > = LI  THEN 2730
  146. 2588  NEXT 
  147. 2600 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5000
  148. 2610  NEXT C1: IF F7$ = "Y"  THEN HC = 0
  149. 2620  IF F1$ < >"F"  OR F6$ < >"R"  THEN 2640
  150. 2625  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): NEXT : GOTO 2625
  151. 2627  PRINT : NEXT 
  152. 2640  IF C1 < = NC  THEN  IF A$ = "N"  AND HC > = H1  AND PC(C1) <NC  THEN  PRINT 
  153. 2700  IF W2$ = "Y"  THEN F4 = F1 -5
  154. 2710  IF C1 <CP -1  THEN  PRINT OF$LL",D"D1: HOME :A = C1 +1: GOTO 2020
  155. 2720  GOSUB 240: RETURN 
  156. 2730  IF F7$ = "N"  AND WR$ = "N"  AND C1 > = CP -1  THEN  PRINT 
  157. 2740  IF F3$ = "N"  OR V$ = "V"  THEN  PRINT : GOTO 2760
  158. 2745  IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2750
  159. 2747  PRINT 
  160. 2750 PG = PG +1: PRINT  SPC( TB)"PAGE-";PG:HC = 0
  161. 2760  IF F7$ = "Y"  AND RS =  >RT  THEN  GOSUB 240:S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  162. 2770  IF F7$ = "Y"  AND RS =  >RT  THEN  RETURN 
  163. 2780  IF F1$ < >"F"  AND F3 <2  THEN 2790
  164. 2782  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2786
  165. 2784  PRINT 
  166. 2786  NEXT : IF F0  THEN  RETURN 
  167. 2790  GOSUB 240: IF C1 = CP  AND RS = RC  THEN S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  168. 2800  IF C1 = CP  AND RS = RC  THEN S = 1: RETURN 
  169. 2810  IF F1$ = "F"  AND F8$ = "C"  THEN 2850
  170. 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
  171. 2830  IF Z$ = "E"  AND B = 0  THEN  GOSUB 520
  172. 2840  IF Z$ = "E"  THEN  POP : GOTO 5620
  173. 2850  IF F7$ = "Y"  THEN HC = 0
  174. 2860  HOME : PRINT : GOSUB 230: IF F8 = 3  THEN  PRINT  CHR$(12)
  175. 2865  IF F5$ = "Y"  AND F3$ = "Y"  THEN LN = 6: GOTO 2700
  176. 2870 LN = 4: IF RS <FR  OR (  NOT FL)  THEN 2700
  177. 2875  GOTO 2020
  178. 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 5620
  179. 2900  IF   NOT FK  THEN X4(PC(C1)) = X4(PC(C1)) + VAL(A$(PC(C1))):X5(PC(C1)) = X5(PC(C1)) + VAL(A$(PC(C1)))
  180. 2903 S1 = CL%(PC(C1)):X4 =  VAL(A$(PC(C1))):X$ = " " + STR$( INT(X4 *10 ^N +.5)):Q =  LEN(X$) -( VAL(X$) <0)
  181. 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 5620
  182. 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));
  183. 2920  PRINT  MID$ ("0.00",1 +((N +1) <Q),1 +(N -Q +2) *(Q <N +2));
  184. 2930  IF HC > = H1  THEN  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N)): GOTO 2575
  185. 2940  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N));: PRINT  SPC( SP);: GOTO 2610
  186. 2950  IF WN$ < >"Y"  AND W2$ < >"Y"  THEN 2990
  187. 2975  IF WN$ = "Y"  THEN  PRINT NO".";: GOTO 2985
  188. 2980  PRINT RS;
  189. 2985  HTAB F4
  190. 2990  PRINT H$(PC(C1))" - "A$(PC(C1)): GOTO 2582
  191. 3000  REM 
  192. 3005 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5000
  193. 3010 A = 1
  194. 3020 S = S +1:LN = LN +1: IF S >1  THEN 3140
  195. 3040  IF A$ = "N"  OR W3$ = "V"  THEN 3140
  196. 3050  FOR C1 = 1 TO H1: IF (W2$ = "Y"  OR WN$ = "Y")  AND C1 = 1  THEN  HTAB 5
  197. 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 
  198. 3140  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  199. 3180  IF HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  200. 3190  IF  ASC(A$(PC(C1))) = 64  THEN 3340
  201. 3200  IF A$ = "Y"  AND W3$ = "H"  THEN 3260
  202. 3210  IF A$ = "N"  THEN 3230
  203. 3220  PRINT : PRINT H$(PC(C1));" - "
  204. 3230 HC = HC +1: IF HC =  >H1  THEN 3295
  205. 3235  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3250
  206. 3240  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  207. 3250  PRINT A$(PC(C1));: PRINT " ";: GOTO 3340
  208. 3260 HC = HC +1: IF HC > = H1  THEN 3295
  209. 3270  IF F7$ = "Y"  AND C1 =  >H1  THEN 3295
  210. 3275  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3290
  211. 3280  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  212. 3290  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +1: PRINT  SPC( PC)"";: GOTO 3340
  213. 3295  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3310
  214. 3300  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  215. 3310  PRINT A$(PC(C1)):HC = 0:CV =  PEEK(37): IF CV >18  THEN 3370
  216. 3340  NEXT C1: IF H1 <CP -1  AND (F7$ = "N"  OR F7$ = "")  THEN HC = 0: PRINT 
  217. 3360  RETURN 
  218. 3370  PRINT : PRINT :HC = 0: PRINT : PRINT CL$: IF C1 = CP  AND RS = RC  THEN  RETURN 
  219. 3390  PRINT "E)ND,OR 'RTN' TO CONT. ";: GET Z1$: IF Z1$ = "E"  AND B = 0  THEN  GOSUB 520
  220. 3410  IF Z1$ = "E"  THEN  POP : GOTO 5620
  221. 3420 S = 0: PRINT : PRINT OF$LL",D"D1: HOME :A = C1 +1: IF A =  <CP -1  THEN 3020
  222. 3430  GOTO 3360
  223. 4000  REM 
  224. 4010  HOME : PRINT  TAB( 8)"> PRINT-OUT FORMATTING <": GOSUB 360: PRINT 
  225. 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
  226. 4030  IF P$ = " POS"  THEN  HOME : FLASH : PRINT  CHR$(7): VTAB 12: HTAB 11: PRINT "TURN ON PRINTER !!": NORMAL : PRINT  CHR$(7)
  227. 4040 B = 0: GOTO 380
  228. 4050  POKE 216,0: IF B = 1  THEN 4370
  229. 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 340: GOTO 4055
  230. 4057  IF V$ = "V"  THEN 4090
  231. 4060  HOME : GOSUB 350: PRINT 
  232. 4070  INPUT "PRINT FIELD NAMES (Y/N) ? ";A$: IF A$ < >"Y"  AND A$ < >"N"  OR A$ = ""  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4070
  233. 4080  IF A$ = "N"  OR P$ = "N"  THEN 4110
  234. 4090  PRINT 
  235. 4100  INPUT "PRINT FILE TITLE (Y/N) ? ";F5$: IF F5$ < >"Y"  AND F5$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4100
  236. 4110  PRINT 
  237. 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 340: GOTO 4120
  238. 4130  PRINT 
  239. 4135  INPUT "NUMBER LINES (Y/N) ? ";WN$: IF WN$ < >"Y"  AND WN$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4135
  240. 4137  IF WN$ = "Y"  THEN 4150
  241. 4139  PRINT 
  242. 4140  INPUT "PRINT RECORD NUMBERS (Y/N) ? ";W2$: IF W2$ < >"Y"  AND W2$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4140
  243. 4150  PRINT : IF W3$ = "V"  THEN 4200
  244. 4155  IF V$ = "V"  THEN H1 = 1: GOTO 4195
  245. 4160  HOME : GOSUB 350: PRINT 
  246. 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
  247. 4190  PRINT 
  248. 4195  IF V$ = "V"  THEN  HOME : GOSUB 350: PRINT 
  249. 4200  GOSUB 360: PRINT "FIELD SELECTION-ENTER '0' WHEN FINISHED": GOSUB 360: PRINT :CP = 0: FOR CP = 1 TO NC +5
  250. 4220  PRINT "PRINT WHICH FIELD #: ";: INPUT PC(CP): IF PC(CP) = 0  THEN 4260
  251. 4240  IF PC(CP) >NC  THEN  PRINT  CHR$(7): PRINT "INPUT TO HIGH!!": GOTO 4220
  252. 4250  NEXT 
  253. 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
  254. 4270  IF W3$ = "V"  THEN 4370
  255. 4280  IF CP >NC  THEN 4300
  256. 4290  IF PC(CP) = 0  AND CP = H1 +1  THEN 4370
  257. 4300  IF H1 = CP -1  THEN 4370
  258. 4305  IF V$ = "V"  THEN 4370
  259. 4310  PRINT : IF A$ = "N"  OR P$ = "N"  THEN 4340
  260. 4320  INPUT "USE WRAP AROUND OPTION (Y/N) ? ";WR$: IF WR$ < >"Y"  AND WR$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4320
  261. 4330  IF WR$ = "Y"  THEN 4370
  262. 4340  PRINT : IF A$ = "N"  AND P$ = "N"  THEN 4370
  263. 4360  IF H1 =  <CP -1  THEN  INPUT "USE UNDERNEATH FORMATTING (Y/N) ? ";F7$: IF F7$ < >"Y"  AND F7$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 4360
  264. 4370  HOME : RETURN 
  265. 5000 X6 = 0:PG = 0:CK = 0:LN = 0:W9$ = "":X2 = RC:X1 = 0:SA = 1: HOME : PRINT  TAB( 8)"* LEVEL SEARCH R0UTINE *": GOSUB 360: PRINT : VTAB 3: CALL  -958: PRINT  TAB( 10)"WORD/S NUMBER SEARCH": GOSUB 360: PRINT : PRINT : VTAB 7: HTAB 8: PRINT "* SEARCH MATCH OPTIONS *": PRINT : HTAB 10: PRINT "1- CHARACTERS ENTERED": HTAB 10: PRINT "2- ENTIRE FIELD": PRINT 
  266. 5010  CALL 37896:D6 = 0: CALL 54915
  267. 5060  HTAB 16: INPUT "WHICH: ";W9$: IF W9$ < >""  THEN  IF  ASC(W9$) = 17  THEN 5652
  268. 5070  IF W9$ <"1"  OR W9$ >"2"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5060
  269. 5080  IF W9$ = "2"  THEN  PRINT : GOTO 5110
  270. 5090  PRINT 
  271. 5100  INPUT "REGULAR OR INTERNAL SEARCH (R/I) ? ";Z2$: IF Z2$ < >"R"  AND Z2$ < >"I"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5100
  272. 5110  HOME : VTAB 7: HTAB 10: PRINT "* PRINT-OUT ITEMS *": PRINT : HTAB 9: PRINT "1- EQUAL TO ENTRY": HTAB 9: PRINT "2- NOT EQUAL TO ENTRY": PRINT 
  273. 5120  HTAB 16: INPUT "WHICH: ";Z3$: IF Z3$ <"1"  OR Z3$ >"2"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5120
  274. 5121  FOR X5 = 1 TO 20: HOME : IF Z3$ = "1"  THEN  HTAB 3: PRINT "ENTER <0> FOR LEVELS WHEN FINISHED": GOSUB 360: HTAB 6: PRINT "SEARCH >"X5"< OF >20< POSSIBLE": GOSUB 360: GOTO 5124
  275. 5123  INVERSE : HTAB 9: PRINT "ONLY ONE SEARCH ALLOWED": NORMAL 
  276. 5124  IF NC >19  THEN 5130
  277. 5125  VTAB 6: PRINT "SEARCH HOW MANY LEVELS (0-"NC") ";: INPUT SE(X5): IF SE(X5) <0  OR SE(X5) >NC  THEN  PRINT  CHR$(7): GOTO 5125
  278. 5126  IF SE(X5) = 0  THEN X5 = X5 -1: GOTO 5220
  279. 5127  IF NC <20  THEN 5140
  280. 5130  VTAB 6: INPUT "SEARCH HOW MANY LEVELS (0-20) ? ";SE(X5): IF SE(X5) <0  OR SE(X5) >20  THEN  PRINT  CHR$(7): GOTO 5130
  281. 5135  IF SE(X5) = 0  THEN X5 = X5 -1: GOTO 5220
  282. 5140  HOME : GOSUB 350: GOSUB 360: HTAB 11: PRINT "SEARCHING "SE(X5)" LEVEL/S": GOSUB 360: FOR Y = SA TO SE(X5)
  283. 5150  PRINT "FOR LEVEL# "Y" SEARCH FIELD #: ";: INPUT C(X5,Y): IF C(X5,Y) <1  OR C(X5,Y) >NC  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5150
  284. 5160  PRINT : PRINT "SEARCH FOR ? ":L = CL%(C(X5,Y)): GOSUB 800:DT$(X5,Y) = B$: GOSUB 950: PRINT : NEXT Y: PRINT 
  285. 5180  INPUT "ALL CORRECT (Y/N) ? ";Z$: IF Z$ < >"N"  AND Z$ < >"Y"  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5180
  286. 5190  PRINT 
  287. 5200  IF Z$ = "N"  THEN  PRINT "RESTART AT LEVEL # (1-"SE(X5)"): ";: INPUT SA: IF SA <1  OR SA >SE(X5)  THEN  PRINT  CHR$(7);: GOSUB 340: GOTO 5200
  288. 5210  IF Z$ = "N"  THEN  HOME : PRINT : GOTO 5140
  289. 5215  IF Z3$ = "1"  THEN  HOME : NEXT X5
  290. 5220  GOSUB 4000: FOR X3 = 1 TO X5:X2 = RC:X1 = 0: VTAB 8: HTAB 9: PRINT "SEARCHING FOR ENTRY # "X3: FOR L = 1 TO SE(X3): CALL 37896: GOSUB 370: IF L = 1  THEN C = C(X3,L): GOSUB 270: GOTO 5260
  291. 5240  IF X1 <1  THEN  HOME : GOTO 5590
  292. 5250  GOSUB 290:X2 = X1:X6 = X6 -X1:X1 = 00
  293. 5260  VTAB 12: PRINT  TAB( 9)"> SEARCHING LEVEL "L" <":PA =  LEN(DT$(X3,L)): IF PA <1  THEN PA = 1
  294. 5280  FOR RS = 1 TO X2: IF Z2$ = "I"  THEN 5660
  295. 5300  IF W9$ = "2"  THEN 5400
  296. 5310  IF Z3$ = "2"  THEN 5360
  297. 5320  IF  LEFT$(S$(RS),PA) = DT$(X3,L)  THEN X1 = X1 +1:X6 = X6 +1: GOTO 5340
  298. 5330  GOTO 5560
  299. 5340  IF L <2  THEN BB(X1) = RS:BC(X6) = RS: GOTO 5560
  300. 5350 BB(X1) = BB(RS):BC(X6) = BB(RS): GOTO 5560
  301. 5360  IF  LEFT$(S$(RS),PA) < >DT$(X3,L)  THEN X1 = X1 +1:X6 = X6 +1: GOTO 5380
  302. 5370  GOTO 5560
  303. 5380  IF L <2  THEN BB(X1) = RS:BC(X6) = RS: GOTO 5560
  304. 5390 BB(X1) = BB(RS):BC(X6) = BB(RS): GOTO 5560
  305. 5400  IF Z3$ = "2"  THEN 5450
  306. 5410  IF S$(RS) = DT$(X3,L)  THEN X1 = X1 +1:X6 = X6 +1: GOTO 5430
  307. 5420  GOTO 5560
  308. 5430  IF L <2  THEN BB(X1) = RS:BC(X6) = RS: GOTO 5560
  309. 5440 BB(X1) = BB(RS):BC(X6) = BB(RS): GOTO 5560
  310. 5450  IF S$(RS) < >DT$(X3,L)  THEN X1 = X1 +1:X6 = X6 +1: GOTO 5470
  311. 5460  GOTO 5560
  312. 5470  IF L <2  THEN BB(X1) = RS:BC(X6) = RS: GOTO 5560
  313. 5480 BB(X1) = BB(RS):BC(X6) = BB(RS): GOTO 5560
  314. 5490  HOME : FOR L = 1 TO X6:RS = BC(L): GOSUB 300: IF P$ = "N"  THEN 5530
  315. 5520  GOSUB 230: GOSUB 2000: GOTO 5540
  316. 5530  GOSUB 3000
  317. 5540  NEXT L:FL = 1: GOSUB 960: FOR XT = 1 TO NC:X4(XT) = 0: NEXT : GOTO 5600
  318. 5560  NEXT RS: NEXT L
  319. 5590  NEXT X3: IF X6 <1  THEN  HOME : GOTO 5620
  320. 5595  GOTO 5490
  321. 5600  IF P$ = "N"  OR A$ = "N"  THEN 5620
  322. 5610  GOSUB 250
  323. 5620  PRINT : PRINT  CHR$(7): INVERSE : PRINT "FINISHED!";: NORMAL : PRINT " A)NOTHER,R)ESTART,'RTN' MENU";: GET Z$: IF Z$ = "A"  THEN PG = 0:CK = 0:LN = 0:S = 0:NO = 0: HOME : PRINT : GOTO 5490
  324. 5630  IF B = 0  THEN  GOSUB 520
  325. 5650  IF Z$ = "R"  THEN 5000
  326. 5652  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. 5654  HOME : VTAB 12: HTAB 11: PRINT ">> LOADING MENU <<"
  328. 5656  PRINT D$"RUN MENU,D1"
  329. 5660 F =  LEN(S$(RS)): FOR X4 = 1 TO F: IF Z3$ = "2"  THEN 5740
  330. 5690  IF  MID$ (S$(RS),X4,PA) = DT$(X3,L)  THEN 5720
  331. 5700  NEXT X4: IF Z3$ = "1"  THEN 5560
  332. 5720 X1 = X1 +1:X6 = X6 +1: IF L <2  THEN BB(X1) = RS:BC(X6) = RS: GOTO 5560
  333. 5730 BB(X1) = BB(RS):BC(X6) = BB(RS): GOTO 5560
  334. 5740  IF  MID$ (S$(RS),X4,PA) = DT$(X3,L)  THEN 5560
  335. 5750  GOTO 5700
  336. 63000  GOTO 5000