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

  1. 10 TE$ = "": POKE 216,0: TEXT :D$ =  CHR$(4): PRINT D$"NOMON I,O,C": GOSUB 760: 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 A$(NC),S$(RC),DT$(RC),H$(NC),CL%(NC),PC(NC +5),X4(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 320
  21. 280  PRINT OF$LL",D"D1: FOR I = R1 TO R2:B1 = CL(Z1 -1): PRINT RF$I",B"B1: CALL 783:S$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  22. 300  PRINT OF$LL",D"D1: FOR I = R1 TO R2:B1 = CL(Z2 -1): PRINT RF$I",B"B1: CALL 783:DT$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: POKE 216,0: RETURN 
  23. 320  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 5620
  24. 330  PRINT OF$LL",D"D1: FOR I = 1 TO NC:B1 = CL(I -1): IF I = 1  AND F7$ = "Y"  AND C1 =  >CP -1  AND (P$ = "N"  OR P$ = "")  THEN  PRINT 
  25. 360  PRINT RF$RS",B"B1: CALL 783:A$(I) =  MID$ (TE$,1): NEXT : PRINT CL$: RETURN 
  26. 370 CV =  PEEK(37): POKE 37,(CV -1): CALL  -958: RETURN 
  27. 380  FOR X = 1 TO NC: PRINT  TAB( 4)X;"- ("CL%(X)") ";: HTAB 14: PRINT H$(X): NEXT : RETURN 
  28. 390  FOR X = 1 TO 40: PRINT "-";: NEXT : RETURN : HOME : VTAB 12: PRINT  TAB( 11)"> RECALLING DATA <": RETURN 
  29. 410  ONERR  GOTO 740
  30. 415 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 
  31. 480  INPUT "WHICH: ";Z5$:Z =  VAL(Z5$): IF Z <1  OR Z >I  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 480
  32. 490  HOME : IF Z = I  THEN B = 0: GOTO 4050
  33. 500  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$
  34. 540  RETURN 
  35. 550  IF NR =  >10  THEN 5610
  36. 560  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 370: GOTO 560
  37. 570 B = 1: IF Z5$ = "N"  THEN 5610
  38. 580  IF NR <1  THEN NR = 0
  39. 590  ONERR  GOTO 750
  40. 600  PRINT 
  41. 610  PRINT "ENTER NAME FOR FORMAT (28) ":L = 28: GOSUB 800:R$(NR +1) = B$: IF R$(NR +1) = ""  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 610
  42. 615  IF P$ = "Y"  THEN R$(NR +1) = R$(NR +1) +".P": GOTO 620
  43. 617 R$(NR +1) = R$(NR +1) +".M"
  44. 620 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
  45. 625  IF   NOT NR  THEN 650
  46. 630  FOR J = 1 TO NR: IF R$(NR +1) = R$(J)  THEN  RETURN 
  47. 640  NEXT 
  48. 650  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 
  49. 740  CALL 1013: GOTO 4050
  50. 750  CALL 1013: PRINT  CHR$(7): PRINT "BAD FORMAT NAME-TRY AGAIN": GOTO 600
  51. 760  FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT : RETURN : DATA 104,168,104,166,223,154,72,152,72,96
  52. 800 B$ = "": PRINT : FOR I = 1 TO L: PRINT "_";: NEXT : VTAB ( PEEK(37) +2 -(L/39.9)): HTAB 1
  53. 810  FOR I = 1 TO L +1
  54. 820  GET E$
  55. 822  IF E$ =  CHR$(10)  THEN E$ =  CHR$(92)
  56. 823  IF E$ =  CHR$(11)  THEN E$ =  CHR$(91)
  57. 824  IF E$ =  CHR$(12)  THEN E$ =  CHR$(95)
  58. 825  IF E$ =  CHR$(17)  THEN B$ = E$: RETURN 
  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 TOO LONG": NORMAL : RETURN 
  71. 2000  REM 
  72. 2010 A = 1
  73. 2020  IF W2$ = "Y"  OR WN$ = "Y"  THEN F4 = F1 +5: GOTO 2040
  74. 2030 F4 = F1
  75. 2040 F5 = 0: IF F5$ = "Y"  THEN F5 = F5 +2
  76. 2050  IF F3$ = "Y"  THEN F5 = F5 +2
  77. 2060  IF A$ = "Y"  THEN F5 = F5 +2
  78. 2070 S = 0: IF A$ = "N"  THEN 2390
  79. 2080  IF LN = F5  AND V$ < >"V"  THEN 2110
  80. 2085  IF FM  THEN 2110
  81. 2090  IF CK >0  THEN 2400
  82. 2100 CK = 1:PG = 0: HOME :TA =  INT((CO/2) -( LEN(N$)/2)):TB = (CO/2) -3
  83. 2110  PRINT : IF F5$ = "N"  THEN 2127
  84. 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
  85. 2125  PRINT 
  86. 2127  IF V$ = "V"  THEN 2390
  87. 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
  88. 2200  NEXT :SP =  INT((CO -F4 -1 -CH%)/H1): IF SP <1  THEN  IF H1 +CH% < = CO  THEN SP = 1
  89. 2230  IF SP < = 0  THEN 2880
  90. 2240 HC = 0: IF A$ = "N"  THEN 2390
  91. 2250  IF WR$ = "Y"  THEN H2 = CP -1: GOTO 2270
  92. 2260 H2 = H1
  93. 2270  FOR C1 = 1 TO H2: IF C1 <2  THEN  HTAB F4
  94. 2320  IF WR$ = "Y"  THEN HC = HC +1: IF HC = H1  THEN 2350
  95. 2330  IF C1 =  >H2  THEN 2350
  96. 2340  PRINT H$(PC(C1));: PRINT  SPC( CL%(PC(C1)) - LEN(H$(PC(C1))) +SP);: GOTO 2360
  97. 2350  PRINT H$(PC(C1)):HC = 0: IF C1 <H2  THEN F5 = F5 +1: IF CP < >C1  THEN  HTAB F4
  98. 2360  NEXT : FOR TI = 1 TO CO -1: PRINT "-";: NEXT : PRINT 
  99. 2390 LN = F5:HC = 0
  100. 2400  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  101. 2440  IF   NOT FL  AND HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  102. 2450  IF  ASC(A$(PC(C1))) = 64  THEN 2610
  103. 2455  IF V$ = "V"  THEN 2950
  104. 2460 HC = HC +1: IF HC > = H1  OR C1 = CP -1  THEN 2542
  105. 2470  IF A$ = "Y"  THEN 2505
  106. 2475  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2490
  107. 2480  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  108. 2490  IF HC = 1  THEN  HTAB F4
  109. 2500  PRINT A$(PC(C1));: PRINT " ";: GOTO 2610
  110. 2505  IF FL  THEN  FOR TI = 1 TO CO: PRINT "=";: NEXT :LN = LN +1:FL = 0:FK = 1: PRINT 
  111. 2510  IF F7$ = "Y"  AND C1 =  >H1  THEN 2545
  112. 2515  IF   NOT FK  AND WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2530
  113. 2520  IF   NOT FK  AND W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  114. 2530  IF HC = 1  THEN  HTAB F4
  115. 2535  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  116. 2540  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +SP: PRINT  SPC( PC);: GOTO 2600
  117. 2542  IF A$(PC(C1)) < >" "  AND  RIGHT$(H$(PC(C1)),1) = " "  THEN 2900
  118. 2545  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: GOTO 2560
  119. 2550  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;
  120. 2560  IF HC = 1  OR (F7$ = "Y"  AND C1 =  >H1)  THEN  HTAB F4
  121. 2570  PRINT A$(PC(C1)): IF LF$ = "Y"  AND A$ = "N"  THEN  PRINT  CHR$(10)
  122. 2575 HC = 0: IF F7$ = "Y"  AND C1 =  >H1  THEN HC = C1
  123. 2580 LN = LN +1: IF LN > = LI  THEN 2730
  124. 2582  IF F2 <2  THEN 2600
  125. 2584  FOR X = 1 TO F2 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2587
  126. 2586  PRINT 
  127. 2587 LN = LN +1: IF LN > = LI  THEN 2730
  128. 2588  NEXT 
  129. 2600 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5010
  130. 2610  NEXT C1: IF F7$ = "Y"  THEN HC = 0
  131. 2620  IF F1$ < >"F"  OR F6$ < >"R"  THEN 2640
  132. 2625  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): NEXT : GOTO 2640
  133. 2627  PRINT : NEXT 
  134. 2640  IF C1 < = NC  THEN  IF A$ = "N"  AND HC > = H1  AND PC(C1) <NC  THEN  PRINT 
  135. 2700  IF W2$ = "Y"  THEN F4 = F1 -5
  136. 2710  IF C1 <CP -1  THEN  PRINT OF$LL",D"D1: HOME :A = C1 +1: GOTO 2020
  137. 2720  GOSUB 240: RETURN 
  138. 2730  IF F7$ = "N"  AND WR$ = "N"  AND C1 > = CP -1  THEN  PRINT 
  139. 2740  IF F3$ = "N"  OR V$ = "V"  THEN  PRINT : GOTO 2760
  140. 2745  IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2750
  141. 2747  PRINT 
  142. 2750 PG = PG +1: PRINT  SPC( TB)"PAGE-";PG:HC = 0
  143. 2760  IF F7$ = "Y"  AND RS =  >RT  THEN  GOSUB 240:S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  144. 2770  IF F7$ = "Y"  AND RS =  >RT  THEN  RETURN 
  145. 2780  IF F1$ < >"F"  AND F3 <2  THEN 2790
  146. 2782  FOR X = 1 TO F3 -1: IF LF$ = "Y"  THEN  PRINT  CHR$(10): GOTO 2786
  147. 2784  PRINT 
  148. 2786  NEXT : IF F0  THEN  RETURN 
  149. 2790  GOSUB 240: IF C1 = CP  AND RS = RC  THEN S = 1: IF W2$ = "Y"  THEN F4 = F1 -5
  150. 2800  IF C1 = CP  AND RS = RC  THEN S = 1: RETURN 
  151. 2810  IF F1$ = "F"  AND F8$ = "C"  THEN 2850
  152. 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
  153. 2830  IF Z$ = "E"  AND B = 0  THEN  GOSUB 550
  154. 2840  IF Z$ = "E"  THEN  POP : GOTO 5590
  155. 2850  IF F7$ = "Y"  THEN HC = 0
  156. 2860  HOME : PRINT : GOSUB 230: IF F8 = 3  THEN  PRINT  CHR$(12)
  157. 2865  IF F5$ = "Y"  AND F3$ = "Y"  THEN LN = 6: GOTO 2700
  158. 2870 LN = 4: IF RS <FR  OR (  NOT FL)  THEN 2700
  159. 2875  GOTO 2020
  160. 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 5590
  161. 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)
  162. 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 5590
  163. 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));
  164. 2920  PRINT  MID$ ("0.00",1 +((N +1) <Q),1 +(N -Q +2) *(Q <N +2));
  165. 2930  IF HC > = H1  THEN  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N)): GOTO 2575
  166. 2940  PRINT  RIGHT$(X$,N *(Q >N) +(Q -1) *(Q < = N));: PRINT  SPC( SP);: GOTO 2610
  167. 2950  IF WN$ < >"Y"  AND W2$ < >"Y"  THEN 2990
  168. 2975  IF WN$ = "Y"  THEN  PRINT NO".";: GOTO 2985
  169. 2980  PRINT RS;
  170. 2985  HTAB F4
  171. 2990  PRINT H$(PC(C1))" - "A$(PC(C1)): GOTO 2582
  172. 3000  REM 
  173. 3005 X = 0:X =  PEEK( -16384): POKE  -16368,0: IF X = 17  THEN  PRINT : GOSUB 240: POP : GOTO 5010
  174. 3010 A = 1
  175. 3020 S = S +1:LN = LN +1: IF S >1  THEN 3140
  176. 3040  IF A$ = "N"  OR W3$ = "V"  THEN 3140
  177. 3050  FOR C1 = 1 TO H1: IF (W2$ = "Y"  OR WN$ = "Y")  AND C1 = 1  THEN  HTAB 5
  178. 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 
  179. 3140  FOR C1 = A TO CP -1: IF A$(PC(C1)) = ""  THEN A$(PC(C1)) = " "
  180. 3180  IF HC = 0  AND C1 = 1  AND  ASC(A$(PC(C1))) < >64  THEN NO = NO +1
  181. 3190  IF  ASC(A$(PC(C1))) = 64  THEN 3340
  182. 3200  IF A$ = "Y"  AND W3$ = "H"  THEN 3260
  183. 3210  IF A$ = "N"  THEN 3230
  184. 3220  PRINT : PRINT H$(PC(C1));" - "
  185. 3230 HC = HC +1: IF HC =  >H1  THEN 3295
  186. 3235  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3250
  187. 3240  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  188. 3250  PRINT A$(PC(C1));: PRINT " ";: GOTO 3340
  189. 3260 HC = HC +1: IF HC > = H1  THEN 3295
  190. 3270  IF F7$ = "Y"  AND C1 =  >H1  THEN 3295
  191. 3275  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3290
  192. 3280  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  193. 3290  PRINT A$(PC(C1));:PC = CL%(PC(C1)) - LEN(A$(PC(C1))) +1: PRINT  SPC( PC)"";: GOTO 3340
  194. 3295  IF WN$ = "Y"  AND HC = 1  THEN  PRINT NO".";: HTAB 5: GOTO 3310
  195. 3300  IF W2$ = "Y"  AND HC = 1  THEN  PRINT RS;: HTAB 5
  196. 3310  PRINT A$(PC(C1)):HC = 0:CV =  PEEK(37): IF CV >18  THEN 3370
  197. 3340  NEXT C1: IF H1 <CP -1  AND (F7$ = "N"  OR F7$ = "")  THEN HC = 0: PRINT 
  198. 3360  RETURN 
  199. 3370  PRINT : PRINT :HC = 0: PRINT : PRINT CL$: IF C1 = CP  AND RS = RC  THEN  RETURN 
  200. 3390  PRINT "E)ND,OR 'RTN' TO CONT. ";: GET Z1$: IF Z1$ = "E"  AND B = 0  THEN  GOSUB 550
  201. 3410  IF Z1$ = "E"  THEN  POP : GOTO 5590
  202. 3420 S = 0: PRINT : PRINT OF$LL",D"D1: HOME :A = C1 +1: IF A =  <CP -1  THEN 3020
  203. 3430  GOTO 3360
  204. 4000  REM 
  205. 4010  HOME : PRINT  TAB( 8)"> PRINT-OUT FORMATTING <": GOSUB 390: PRINT 
  206. 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
  207. 4030  IF P$ = "Y"  THEN  HOME : FLASH : PRINT  CHR$(7): VTAB 12: HTAB 11: PRINT "TURN ON PRINTER !!": NORMAL : PRINT  CHR$(7)
  208. 4040 B = 0: GOTO 410
  209. 4050  POKE 216,0: IF B = 1  THEN 4370
  210. 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 370: GOTO 4055
  211. 4057  IF V$ = "V"  THEN 4090
  212. 4060  HOME : GOSUB 380: PRINT 
  213. 4070  INPUT "PRINT FIELD NAMES (Y/N) ? ";A$: IF A$ < >"Y"  AND A$ < >"N"  OR A$ = ""  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4070
  214. 4080  IF A$ = "N"  OR P$ = "N"  THEN 4110
  215. 4090  PRINT 
  216. 4100  INPUT "PRINT FILE TITLE (Y/N) ? ";F5$: IF F5$ < >"Y"  AND F5$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4100
  217. 4110  PRINT 
  218. 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 370: GOTO 4120
  219. 4130  PRINT 
  220. 4135  INPUT "NUMBER LINES (Y/N) ? ";WN$: IF WN$ < >"Y"  AND WN$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4135
  221. 4137  IF WN$ = "Y"  THEN 4150
  222. 4139  PRINT 
  223. 4140  INPUT "PRINT RECORD NUMBERS (Y/N) ? ";W2$: IF W2$ < >"Y"  AND W2$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4140
  224. 4150  PRINT : IF W3$ = "V"  THEN 4200
  225. 4155  IF V$ = "V"  THEN H1 = 1: GOTO 4195
  226. 4160  HOME : GOSUB 380: PRINT 
  227. 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
  228. 4190  PRINT 
  229. 4195  IF V$ = "V"  THEN  HOME : GOSUB 380: PRINT 
  230. 4200  GOSUB 390: PRINT "FIELD SELECTION-ENTER '0' WHEN FINISHED": GOSUB 390: PRINT :CP = 0: FOR CP = 1 TO NC +5
  231. 4220  PRINT "PRINT WHICH FIELD #: ";: INPUT PC(CP): IF PC(CP) = 0  THEN 4260
  232. 4240  IF PC(CP) >NC  THEN  PRINT  CHR$(7): PRINT "INPUT TO HIGH!!": GOTO 4220
  233. 4250  NEXT 
  234. 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
  235. 4270  IF W3$ = "V"  THEN 4370
  236. 4280  IF CP >NC  THEN 4300
  237. 4290  IF PC(CP) = 0  AND CP = H1 +1  THEN 4370
  238. 4300  IF H1 = CP -1  THEN 4370
  239. 4305  IF V$ = "V"  THEN 4370
  240. 4310  PRINT : IF A$ = "N"  OR P$ = "N"  THEN 4340
  241. 4320  INPUT "USE WRAP AROUND OPTION (Y/N) ? ";WR$: IF WR$ < >"Y"  AND WR$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4320
  242. 4330  IF WR$ = "Y"  THEN 4370
  243. 4340  PRINT : IF A$ = "N"  AND P$ = "N"  THEN 4370
  244. 4360  IF H1 =  <CP -1  THEN  INPUT "USE UNDERNEATH FORMATTING (Y/N) ? ";F7$: IF F7$ < >"Y"  AND F7$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 4360
  245. 4370  HOME : RETURN 
  246. 5000  CALL 37896: REM  
  247. 5010 D6 = 0:RT = RC:PG = 0:CK = 0:LN = 0: HOME : PRINT  TAB( 8)"* COMPARE FIELDS ROUTINE *": GOSUB 390: PRINT : HTAB 10: PRINT "* COMPARE OPTIONS *": PRINT : PRINT  TAB( 8)"1- EQUAL TO": HTAB 8: PRINT "2- UNEQUAL TO": HTAB 8: PRINT "3- GREATER THAN": HTAB 8: PRINT "4- LESS THAN"
  248. 5030  HTAB 8: PRINT "5- LESS THAN OR EQUAL": HTAB 8: PRINT "6- GREATER THAN OR EQUAL": PRINT : HTAB 16: INPUT "WHICH: ";Z3$:Z3 =  VAL(Z3$): IF Z3$ < >""  THEN  IF  ASC(Z3$) = 17  THEN 5620
  249. 5040  IF Z3 <1  OR Z3 >6  THEN  PRINT  CHR$(7): GOTO 5010
  250. 5050  HOME : GOSUB 380: PRINT : INPUT "REFERENCE FIELD # ";Z1: IF Z1 <1  OR Z1 >NC  THEN  PRINT  CHR$(7): GOTO 5050
  251. 5060  GOSUB 370
  252. 5070  INPUT "COMPARE TO FIELD # ";Z2: IF Z2 <1  OR Z2 >NC  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 5070
  253. 5080  PRINT 
  254. 5090  INPUT "COMPARE NUMBERS OR WORDS (N/W) ? ";Z2$: IF Z2$ < >"N"  AND Z2$ < >"W"  THEN  PRINT  CHR$(7);: GOSUB 370: GOTO 5090
  255. 5100  GOSUB 4000
  256. 5120  IF RC < = RR/2  THEN R1 = 1:R2 = RC: VTAB 12: PRINT  TAB( 6)"> RECALLING REFERENCE FIELD <": GOSUB 270: VTAB 12: HTAB 5: PRINT "> RECALLING COMPARE TO FIELD <": GOSUB 300: HOME : GOTO 5170
  257. 5140 R1 = 1:R2 = RR/2: VTAB 12: PRINT "> LOADING ";: INVERSE : PRINT "FIRST HALF";: NORMAL : PRINT " OF REFERENCE COL. <": GOSUB 270: VTAB 12: PRINT "> LOADING ";: INVERSE : PRINT "FIRST HALF";: NORMAL : PRINT " OF COMPARE TO COL <": GOSUB 300: HOME : GOTO 5170
  258. 5150  IF Z2$ = "N"  THEN R1 = R2 +1:R2 = RC: GOSUB 290: GOSUB 320: GOTO 5170
  259. 5160 R1 = R2 +1:R2 = RC: GOSUB 270: GOSUB 300
  260. 5170  FOR RS = R1 TO R2: IF Z2$ = "N"  THEN 5200
  261. 5190  ON Z3 GOTO 5220,5240,5260,5280,5300,5320
  262. 5200  IF S$(RS) < >""  AND DT$(RS) < >""  THEN  IF  ASC( LEFT$(S$(RS),1)) = 36  OR  ASC( LEFT$(DT$(RS),1)) = 36  THEN 5460
  263. 5210  ON Z3 GOTO 5340,5360,5380,5400,5420,5440
  264. 5220  IF S$(RS) = DT$(RS)  THEN 5510
  265. 5230  GOTO 5550
  266. 5240  IF S$(RS) < >DT$(RS)  THEN 5510
  267. 5250  GOTO 5550
  268. 5260  IF S$(RS) >DT$(RS)  THEN 5510
  269. 5270  GOTO 5550
  270. 5280  IF S$(RS) <DT$(RS)  THEN 5510
  271. 5290  GOTO 5550
  272. 5300  IF S$(RS) < = DT$(RS)  THEN 5510
  273. 5310  GOTO 5550
  274. 5320  IF S$(RS) > = DT$(RS)  THEN 5510
  275. 5330  GOTO 5550
  276. 5340  IF  VAL(S$(RS)) =  VAL(DT$(RS))  THEN 5510
  277. 5350  GOTO 5550
  278. 5360  IF  VAL(S$(RS)) < > VAL(DT$(RS))  THEN 5510
  279. 5370  GOTO 5550
  280. 5380  IF  VAL(S$(RS)) > VAL(DT$(RS))  THEN 5510
  281. 5390  GOTO 5550
  282. 5400  IF  VAL(S$(RS)) < VAL(DT$(RS))  THEN 5510
  283. 5410  GOTO 5550
  284. 5420  IF  VAL(S$(RS)) < =  VAL(DT$(RS))  THEN 5510
  285. 5430  GOTO 5550
  286. 5440  IF  VAL(S$(RS)) > =  VAL(DT$(RS))  THEN 5510
  287. 5450  GOTO 5550
  288. 5460 LA = 1:LB = 1: IF  LEN(S$(RS)) <2  THEN LA = 0
  289. 5470  IF  LEN(DT$(RS)) <2  THEN LB = 0
  290. 5480  IF S$(RS) < >""  THEN  IF  ASC( LEFT$(S$(RS),1)) = 36  THEN LE =  LEN(S$(RS)):S$(RS) =  RIGHT$(S$(RS),LE -LA)
  291. 5490  IF DT$(RS) < >""  THEN  IF  ASC( LEFT$(DT$(RS),1)) = 36  THEN LE =  LEN(DT$(RS)):DT$(RS) =  RIGHT$(DT$(RS),LE -LB)
  292. 5500  GOTO 5210
  293. 5510  GOSUB 330: IF P$ = "N"  THEN 5540
  294. 5530  GOSUB 230: GOSUB 2000: GOTO 5550
  295. 5540  GOSUB 3000
  296. 5550  NEXT : IF R2 < >RC  THEN 5150
  297. 5570  IF P$ = "N"  OR A$ = "N"  THEN 5590
  298. 5571 F0 = 0:FL = 0:FM = 0:FK = 0: IF A$ < >"Y"  OR TF$ = "N"  THEN 5588
  299. 5572  FOR XT = 1 TO NC: IF  RIGHT$(H$(XT),1) = " "  THEN A$(XT) =  STR$(X4(XT)): GOTO 5574
  300. 5573 A$(XT) = " "
  301. 5574  NEXT 
  302. 5575  FOR XT = 1 TO NC: IF  RIGHT$(H$(XT),1) < >" "  THEN 5580
  303. 5576 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 5588
  304. 5577  IF LN = LI  THEN  GOSUB 230:F0 = 1:FM = 1: GOSUB 230: GOSUB 2780: GOSUB 2000:S = 0: GOSUB 250: GOTO 5588
  305. 5578  IF LN = LI -2  THEN  GOSUB 230: GOSUB 2000:F0 = 1: GOTO 5588
  306. 5579  GOSUB 230: GOSUB 2000: GOTO 5588
  307. 5580  NEXT XT
  308. 5588 FL = 0:FM = 0:FK = 0: IF F0  THEN  GOSUB 250
  309. 5589 F0 = 0
  310. 5590  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 5120
  311. 5600  IF B = 0  THEN  GOSUB 550
  312. 5610  IF Z$ = "R"  THEN 5000
  313. 5620  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$
  314. 5630  HOME : VTAB 12: HTAB 11: PRINT ">> LOADING MENU <<"
  315. 5640  PRINT D$"RUN MENU,D1"
  316. 63000  GOTO 5000