home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib10.dsk / A.R.C..bas next >
BASIC Source File  |  2023-02-26  |  27KB  |  473 lines

  1. 10  REM  ********2.27.84*******
  2. 20  REM  * THE  A.R.C. SYSTEM *
  3. 30  REM  *   BY CHUCK KISS    *
  4. 40  REM  * COPYRIGHT (C) 1982 *
  5. 50  REM  * BY MICRO-SPARC INC *
  6. 60  REM  * LINCOLN, MA. 01773 *
  7. 70  REM  **********************
  8. 80  PRINT  CHR$(4)"BLOAD SEARCH"
  9. 90  POKE 8,0
  10. 100  TEXT : HOME 
  11. 110  PRINT  CHR$(4)"MAXFILES 1":D$ =  CHR$(4)
  12. 120  POKE 1013,76: POKE 1014,2: POKE 1015,3
  13. 130  DIM T$(13),TV%(12),P$(12),TX$(12),TW%(12)
  14. 140  SPEED= 255:SX = 6:DX = 1:FIN = 0:SP = 25: GOTO 490
  15. 150  PRINT D$"OPEN ";FILE$",L";RL
  16. 160  PRINT D$"WRITE ";FILE$",R";RX: RETURN 
  17. 170  HTAB 5: PRINT "     PRESS ";: POKE 50,63: PRINT "RETURN";: NORMAL : PRINT " TO QUIT      ";: POKE 35,22: RETURN : REM  POKE50,63 IS INVERSE
  18. 180  VTAB 3: HTAB (20 - LEN(AA$)/2): POKE 50,63: PRINT AA$: NORMAL : RETURN 
  19. 190  POKE 8,2
  20. 200  PRINT D$"OPEN ";FILE$",L";RL
  21. 210  PRINT D$"READ ";FILE$",R";RX: INPUT REC: IF REC = 0  THEN 240
  22. 220  IF REC = NR  AND Y = 2  THEN  POKE 8,0:FILE$ = "": GOTO 240
  23. 230  FOR R = 1 TO REC: PRINT D$"READ ";FILE$",R";R: INPUT RD$(R): NEXT R
  24. 240  RETURN 
  25. 250  VTAB 7: CALL  -958: PRINT 
  26. 260  VTAB 7: FOR D = 1 TO NF
  27. 270  HTAB (1 +(D <10)): PRINT D;". ";T$(D);" ";
  28. 280  HTAB 16: POKE 50,63: PRINT "                    ";: NORMAL : PRINT "     ";:
  29. 290  NEXT D: CALL  -868: VTAB 7
  30. 300  IF BN = 1  THEN  RETURN 
  31. 310  FOR D = 1 TO NF
  32. 320  HTAB (1 +(D <10)): PRINT D;". ";T$(D);" ";: HTAB 16: POKE 50,63: PRINT P$(D): NORMAL 
  33. 330  NEXT D: RETURN 
  34. 340  VTAB 23: FOR K = 1 TO 38: PRINT "*";: NEXT K: PRINT : VTAB 1: FOR K = 1 TO 38: PRINT "*";: NEXT K: PRINT 
  35. 350  FOR K = 1 TO 22: PRINT "*";: HTAB 38: PRINT "*": NEXT K: RETURN 
  36. 360  HOME : VTAB 3: PRINT D$"CATALOG": PRINT : POKE  -16368,0: POKE 50,63: PRINT "ENTER FILE NAME";G$;: NORMAL : INPUT ": ";FILE$: IF  LEN(FILE$) = 0  THEN  GOTO 480
  37. 370  HOME : VTAB 12: HTAB (13 - LEN(FILE$)/2): PRINT " LOADING ";: POKE 50,63: PRINT FILE$;: NORMAL : PRINT " FILES"
  38. 380  PRINT D$"OPEN ";FILE$ +BC$
  39. 390  PRINT D$"READ ";FILE$ +BC$
  40. 400  INPUT NF: INPUT RL: INPUT NR
  41. 410  FOR K = 1 TO NF: INPUT T$(K): INPUT TV%(K): NEXT K
  42. 420  PRINT D$"CLOSE "FILE$ +BC$
  43. 430  DIM RD$(NR),SRT$(NR),SO%(NR),C%( INT(NR/4))
  44. 440  RETURN 
  45. 450  PRINT D$"OPEN ";FILE$",L";RL
  46. 460  PRINT D$"READ ";FILE$",R0"
  47. 470  RETURN 
  48. 480  POKE 34,0: POKE 35,24: HOME 
  49. 490  REM  *** MENU ***
  50. 500 V1 = 7:B$ = "     "
  51. 510 BC$ =  CHR$(2):D$ =  CHR$(4):G$ =  CHR$(7):H$ =  CHR$(8):V1$ =  CHR$(91):V2$ =  CHR$(93)
  52. 520  GOSUB 340
  53. 530 AA$ = "T H E  A. R. C.  S Y S T E M": GOSUB 180: RESTORE 
  54. 540  FOR K = 1 TO V1: READ M$(K): NEXT K
  55. 550  DATA  "INITIALIZE NEW FILE","ENTER FILE DATA","REVIEW/EDIT DATA","FIND/DIAL DATA"
  56. 560  DATA  "SORT/PRINT DATA","PURGE/PACK DATA","MERGE/SORT FILES"
  57. 570  FOR K = 1 TO V1: VTAB (2 *K +4): HTAB 8: PRINT V1$;K;V2$;"  ";M$(K): NEXT K
  58. 580  VTAB 21: HTAB 5: POKE 50,63: PRINT FILE$;: NORMAL : POKE  -16368,0
  59. 590  ON  PEEK(8) GOTO 600: VTAB 21: HTAB 5: PRINT "<ESC> TO LOAD"
  60. 600  VTAB 21: HTAB 23: PRINT "CHOICE : ";G$;V1$;" ";V2$;H$;H$;: NORMAL : GET Y$: PRINT Y$:Y =  VAL(Y$)
  61. 610  IF Y = 1  OR Y = 7  THEN 660
  62. 620  IF  PEEK(8) = 0  AND Y < >1  AND Y < >7  AND Y$ < > CHR$(27)  THEN 600
  63. 630  IF  PEEK(8) < >0  AND Y >1  AND Y <7  THEN 660
  64. 640  IF Y$ =  CHR$(27)  THEN  POKE 8,1: VTAB 21: HTAB 5: PRINT "FETCH FILE       ": RUN 110
  65. 650  GOTO 600
  66. 660  VTAB 2 *Y +4: HTAB 9: PRINT Y;V2$;"  ";: POKE 50,63: PRINT M$(Y): NORMAL 
  67. 670  IF  PEEK(8) = 1  AND Y >1  AND Y <7  THEN  FOR D = 1 TO 300: NEXT D: GOSUB 360
  68. 680  FOR D = 1 TO 300: NEXT D
  69. 690 NB = Y
  70. 700  ON Y GOTO 720,740,1100,1950,2930,4130,4720
  71. 710  POKE 34,0: HOME : VTAB 12: HTAB 3: PRINT "THIS FILE HAS ONLY BEEN INITIALIZED": PRINT : HTAB 9: PRINT "AND CONTAINS NO RECORDS";G$: HTAB 22: PRINT "--": FOR D = 1 TO 2000: NEXT D: GOTO 480
  72. 720  PRINT D$"RUN INITIALIZE"
  73. 730  REM  ** DATA ENTRY **
  74. 740 RX = 0: IF  PEEK(8) = 1  THEN  GOSUB 190
  75. 750  PRINT D$"CLOSE ";FILE$
  76. 760 REC = REC +1: IF REC >NR  THEN  HOME : VTAB 12: PRINT "THIS FILE ALREADY CONTAINS ";NR;"RECORDS";G$;G$: VTAB 14: HTAB 9: PRINT "PLEASE OPEN A NEW FILE  ": FOR D = 1 TO 2500: NEXT D
  77. 770  IF REC >NR  THEN REC = REC -1: GOTO 480
  78. 780  POKE 34,0: HOME : VTAB 3: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$;: NORMAL 
  79. 790  IF REC = NR +1  THEN  HOME : VTAB 12: HTAB 5: PRINT NR;" RECORDS MAXIMUM FOR THIS FILE";G$;G$: VTAB 22: HTAB 10: PRINT "HIT ANY KEY FOR MENU ";: GET A$:REC = REC -1: GOTO 480
  80. 800  POKE 34,4: HOME : HTAB (13 +(REC <10)): PRINT "RECORD # ";V1$;" ";: POKE 50,63: PRINT REC;: NORMAL : PRINT " ";V2$: POKE 34,6:MOD = 0
  81. 810  VTAB 24: HTAB 9: PRINT "PRESS ";: POKE 50,63: PRINT "RETURN";: NORMAL : PRINT " NOW TO QUIT";: VTAB 8: HTAB 1
  82. 820 BN = 1: GOSUB 260: FOR I = 1 TO NF:P$(I) = "": NEXT 
  83. 830  FOR IN = 1 TO NF
  84. 840 BN = 0:Y = IN
  85. 850  GOTO 1720
  86. 860  IF IN = 1  AND PY$ =  CHR$(13)  THEN 1000
  87. 870  VTAB 23: HTAB 1: CALL  -958: NEXT IN
  88. 880  VTAB 22: CALL  -958: VTAB 22: HTAB 14: PRINT "CORRECT (Y/N) ";G$;: GET Y$: PRINT Y$;
  89. 890  VTAB 21: CALL  -958
  90. 900  IF Y$ = "N"  THEN 1020
  91. 910  IF Y$ < >"Y"  THEN 880
  92. 920  VTAB 22: HTAB 1: CALL  -958: HTAB 13: POKE 50,63: PRINT " FILING RECORD ": NORMAL :RX = REC
  93. 930 RD$(RX) = "": FOR KK = 1 TO NF:RD$(RX) = RD$(RX) +P$(KK): NEXT KK: GOSUB 150: PRINT RD$(RX)
  94. 940 RX = 0: GOSUB 150
  95. 950  PRINT REC
  96. 960  PRINT D$"CLOSE"
  97. 970  FOR I = 1 TO NF:P$(I) = "": NEXT 
  98. 980 REC = REC +1: GOTO 790
  99. 990  PRINT D$"CLOSE"
  100. 1000 REC = REC -1: GOTO 480
  101. 1010  HTAB 1: GOSUB 260
  102. 1020  VTAB (7 +NF): HTAB (1 +(NF <10)): PRINT NF +1;". ";: POKE 50,63: PRINT "A-B-O-R-T": NORMAL 
  103. 1030 MOD = 1: GOTO 1640
  104. 1040  REM  *** PRINT ***
  105. 1050  FOR K = 1 TO NF
  106. 1060  HTAB SP
  107. 1070  PRINT T$(K);: HTAB (SP +14): PRINT P$(K)
  108. 1080  NEXT K: PRINT : RETURN 
  109. 1090  REM  *** REVIEW/EDIT ***
  110. 1100 MOD = 0:RX = 0: IF  PEEK(8) = 1  THEN  GOSUB 190
  111. 1110  PRINT D$"CLOSE ";FILE$
  112. 1120  IF REC = 0  THEN 710
  113. 1130 RD$ = "1": POKE 34,0: HOME : VTAB 3: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$: POKE 34,4: NORMAL 
  114. 1140  IF  VAL(RD$) <1  THEN 1280
  115. 1150  VTAB 5: HTAB 1: CALL  -868
  116. 1160  POKE 37,4: POKE 36,16: POKE 50,63: PRINT "RECORD";: NORMAL 
  117. 1170  IF  VAL(RD$) >REC  THEN RD$ =  STR$(REC):FR = 1
  118. 1180  PRINT " ";: POKE 50,63: PRINT RD$: NORMAL 
  119. 1190  POKE 35,24: VTAB 23: CALL  -958: VTAB 9
  120. 1200 RD =  INT( VAL(RD$)): IF RD < = 0  THEN 1280
  121. 1210 RX = RD: IF RX < = 0  THEN RX = 0
  122. 1220 FL = 0
  123. 1230  FOR K = 1 TO NF:P$(K) =  MID$ (RD$(RX),FL +1,TV%(K)):FL = FL +TV%(K): NEXT K
  124. 1240  GOSUB 260
  125. 1250  IF FR = 0  THEN 1270
  126. 1260  VTAB 23: HTAB 5: FLASH : PRINT " ONLY ";REC;" RECORDS ARE ON FILE ": FOR D = 1 TO 2000: NEXT D:FR = 0: NORMAL 
  127. 1270  VTAB 5: HTAB 24: POKE 50,63: PRINT RD: NORMAL : POKE  -16368,0
  128. 1280  VTAB 21: HTAB 2: POKE 50,63: PRINT "ESC";: NORMAL : PRINT " FETCH    ";: POKE 50,63: PRINT "<--";: NORMAL : PRINT " LAST    ";: POKE 50,63: PRINT "-->";: NORMAL : PRINT " NEXT"
  129. 1290  VTAB 23: HTAB 2: POKE 50,63: PRINT " P ";: NORMAL : PRINT " PRINT    ";: POKE 50,63: PRINT " E ";: NORMAL : PRINT " EDIT    ";: POKE 50,63: PRINT " F ";: NORMAL : PRINT " FIND ";G$;" ";: GET Y$: PRINT 
  130. 1300  IF Y$ = "F"  THEN  VTAB 21: HTAB 2: CALL  -958: POKE 50,63: PRINT "FIELD #";: NORMAL : PRINT " TO SEARCH: ";G$;: INPUT " ";TV$:TV =  VAL(TV$): IF TV <1  OR TV >NF  THEN 1300
  131. 1310  IF Y$ = "F"  THEN  VTAB (6 +TV): HTAB 5: FLASH : PRINT T$(TV): NORMAL 
  132. 1320  IF Y$ = "F"  THEN  VTAB 20: CALL  -958: GOTO 2280
  133. 1330  IF Y$ =  CHR$(27)  THEN  VTAB 21: HTAB 1: CALL  -958: VTAB 22: HTAB 11: PRINT "RECORD TO FETCH : ";G$;: INPUT " ";DA$: VTAB 21: CALL  -958
  134. 1340  IF Y$ =  CHR$(27)  AND  LEN(DA$) = 0  THEN 1280
  135. 1350  IF Y$ =  CHR$(27)  THEN RD$ = DA$: GOTO 1140
  136. 1360  IF Y$ =  CHR$(13)  OR  LEN(RD$) = 0  THEN 480
  137. 1370  IF Y$ =  CHR$(80)  THEN  PRINT D$"PR#1": PRINT  CHR$(9);"80N";: GOSUB 1050: PRINT : PRINT D$"PR#0": GOTO 1280
  138. 1380  IF Y$ =  CHR$(21)  THEN RD = RD +1: IF RD >REC  THEN RD = 1
  139. 1390  IF RD = 1  AND Y$ < >"E"  THEN  VTAB 5: HTAB 24: PRINT "   "
  140. 1400  IF Y$ =  CHR$(21)  THEN  VTAB 5: HTAB 24: POKE 50,63: PRINT " ";: IF RD -1 >9  THEN  PRINT " ";: IF RD -1 >99  THEN  PRINT " "
  141. 1410  IF Y$ =  CHR$(21)  THEN  NORMAL : PRINT " ": GOTO 1210
  142. 1420  IF Y$ =  CHR$(8)  THEN RD = RD -1: IF RD <1  THEN RD = REC
  143. 1430  IF Y$ =  CHR$(8)  THEN  VTAB 5: HTAB 24: POKE 50,63: PRINT " ";: IF RD >9  THEN  PRINT " ";: IF RD >99  THEN  PRINT " "
  144. 1440  IF Y$ =  CHR$(8)  THEN  NORMAL : PRINT " ": GOTO 1210
  145. 1450  IF Y$ < >"E"  THEN 1280
  146. 1460  VTAB 21: HTAB 1: CALL  -958: VTAB 22: POKE 50,63: PRINT " M ";: NORMAL : PRINT " MODIFY   ";: POKE 50,63: PRINT " E ";: NORMAL : PRINT " ERASE   ";: POKE 50,63: PRINT "RTN";: NORMAL : PRINT " ABORT ";G$;" ";: GET Y$
  147. 1470  IF Y$ =  CHR$(13)  THEN  HTAB 1: VTAB 21: CALL  -958: GOTO 1270
  148. 1480  IF Y$ = "M"  THEN 1640
  149. 1490  IF Y$ < >"E"  THEN 1460
  150. 1500  VTAB 21: HTAB 1: CALL  -958: VTAB 22: HTAB 8: PRINT "VERIFY ERASURE (YES/NO) ";G$;: INPUT " ";Y$: IF Y$ = "YES"  THEN 1530
  151. 1510  IF Y$ = "NO"  THEN  VTAB 21: HTAB 1: CALL  -958: GOTO 1270
  152. 1520  PRINT G$: GOTO 1500
  153. 1530  FOR D = 1 TO 250: NEXT D
  154. 1540  VTAB 22: HTAB 1: CALL  -868: HTAB 11: FLASH : PRINT " ERASING RECORD ";RX;" ": NORMAL 
  155. 1550  IF RD < >REC  THEN 1590
  156. 1560 RX = 0:REC = REC -1: GOSUB 160: PRINT REC
  157. 1570  PRINT D$"CLOSE ";FILE$
  158. 1580  FOR D = 1 TO 500: NEXT D: VTAB 22: HTAB 1: CALL  -958:RD$ =  STR$(REC): GOTO 1140
  159. 1590  FOR K = 2 TO NF:P$(K) = "": FOR J = 1 TO TV%(K):P$(K) = P$(K) +" ": NEXT J,K:P$(1) = "*": FOR J = 2 TO TV%(1):P$(1) = P$(1) +" ": NEXT J
  160. 1600 RD$(RD) = "": FOR K = 1 TO NF:RD$(RD) = RD$(RD) +P$(K): NEXT K
  161. 1610 RX = RD: GOSUB 150: PRINT RD$(RX)
  162. 1620  PRINT D$"CLOSE ";FILE$
  163. 1630  FOR D = 1 TO 500: NEXT D: VTAB 22: HTAB 1: CALL  -958:RD$ =  STR$(RD): GOTO 1140
  164. 1640  REM  ** MODIFY/ENTER **
  165. 1650 LC = 0:IN = 0
  166. 1660  VTAB 22: HTAB 1: CALL  -868: PRINT "ENTER ";: POKE 50,63: PRINT "FIELD #";: NORMAL : PRINT " TO CHANGE :";G$;
  167. 1670  INPUT " ";Y$:Y =  VAL(Y$): IF  LEN(Y$) = 0  AND MOD = 0  THEN 1890
  168. 1680  IF  LEN(Y$) = 0  AND MOD = 1  THEN 920
  169. 1690  IF  INT(Y) <1  OR  INT(Y) >NF +1  THEN 1660
  170. 1700  IF MOD = 0  AND  INT(Y) >NF  THEN 1660
  171. 1710  IF  INT(Y) = NF +1  THEN  FOR I = 1 TO NF:P$(I) = "": NEXT : GOTO 800
  172. 1720 HT = 17
  173. 1730  NORMAL :P$ = "":PY$ = "":HT = HT -1: VTAB 22: CALL  -868: HTAB 14: PRINT "ENTER NEW DATA";G$
  174. 1740  VTAB (6 +Y): HTAB (HT): POKE 50,63: GET P$: IF P$ =  CHR$(8)  AND  PEEK(36) = 15  THEN  POKE 36,15: GOTO 1720
  175. 1750  IF P$ =  CHR$(8)  AND  LEN(PY$) = 1  THEN 1730
  176. 1760  IF P$ =  CHR$(8)  THEN HT = HT -1:PY$ =  LEFT$(PY$, LEN(PY$) -1): GOTO 1740
  177. 1770  IF  LEN(PY$) = TV%(Y)  AND P$ < > CHR$(13)  THEN  PRINT G$;: GOTO 1740
  178. 1780  PRINT P$: NORMAL :PY$ = PY$ +P$
  179. 1790  IF IN = 1  AND PY$ =  CHR$(13)  THEN REC = REC -1: GOTO 480
  180. 1800  IF PY$ =  CHR$(13)  AND  LEN(PY$) <2  THEN P$(Y) = "": GOTO 1830
  181. 1810  IF P$ =  CHR$(13)  THEN P$(Y) =  LEFT$(PY$, LEN(PY$) -1): GOTO 1830
  182. 1820 HT = HT +1: GOTO 1740
  183. 1830  IF  LEN(P$(Y)) <TV%(Y)  THEN  FOR J = 1 TO TV%(Y) - LEN(P$(Y)):P$(Y) = P$(Y) +" ": NEXT J: GOTO 1850
  184. 1840  IF  LEN(P$(Y)) = TV%(Y)  THEN 1850
  185. 1850  GOSUB 260:RD$(RX) = "": FOR K = 1 TO NF:RD$(RX) = RD$(RX) +P$(K): NEXT K:LC = 1
  186. 1860  IF MOD = 1  THEN 1020
  187. 1870  IF NB = 2  THEN 860
  188. 1880  GOTO 1660
  189. 1890  IF LC = 0  AND Y$ = ""  THEN 1930
  190. 1900  VTAB 22: HTAB 1: CALL  -958: HTAB 9: POKE 50,63: PRINT "SAVING MODIFIED RECORD": NORMAL 
  191. 1910 RX = RD: GOSUB 150: PRINT RD$(RX)
  192. 1920  PRINT D$"CLOSE ";FILE$
  193. 1930  HTAB 1: VTAB 20: CALL  -958: VTAB 5: HTAB 17: POKE 50,63: PRINT "RECORD": NORMAL : GOTO 1270
  194. 1940  REM  ** KISS' FIND **
  195. 1950 A1$ =  CHR$(91):A2$ =  CHR$(93):Y$ = "NF":MODEM = 1
  196. 1960 RX = 0: IF  PEEK(8) = 1  THEN  GOSUB 190
  197. 1970  PRINT D$"CLOSE ";FILE$
  198. 1980  IF REC = 0  THEN 710
  199. 1990  POKE 34,0: HOME : VTAB 3: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$: POKE 34,4: NORMAL 
  200. 2000  HOME : PRINT : PRINT " THE FOLLOWING FIELDS ARE AVAILABLE ": HTAB 9: PRINT "FOR THE FIND FUNCTION :": PRINT 
  201. 2010 T$(NF +1) = H$ +H$ +H$ +B$
  202. 2020  FOR K = 1 TO NF  STEP 2
  203. 2030  IF K >9  THEN 2070
  204. 2040  IF K = 9  THEN  PRINT "   ";K;". ";T$(K); TAB( 21);K +1;". ";T$(K +1): GOTO 2080
  205. 2050  PRINT "   ";K;". ";T$(K); TAB( 22);K +1;". ";T$(K +1)
  206. 2060  GOTO 2080
  207. 2070  PRINT "  ";K;". ";T$(K); TAB( 21);K +1;". ";T$(K +1)
  208. 2080  NEXT :K = NF
  209. 2090  IF K/2 < > INT(K/2)  THEN  VTAB  PEEK(37): HTAB 21: CALL  -958
  210. 2100  POKE  -16368,0
  211. 2110  VTAB 21: HTAB 10: GOSUB 170: PRINT : VTAB 17: CALL  -868: HTAB 2: PRINT "ENTER ";: POKE 50,63: PRINT " FIELD # ";: NORMAL : PRINT " TO BE SEARCHED : ";G$;: INPUT " ";TV$
  212. 2120  IF  LEN(TV$) = 0  THEN 480
  213. 2130 TV =  INT( VAL(TV$)): IF TV <1  OR TV >NF  THEN 2110
  214. 2140  IF  LEN(TV$) >1  AND TV <10 ^( LEN(TV$) -1)  THEN 2110
  215. 2150  POKE 34,0: HOME : VTAB 1: HTAB 11: POKE 50,63: PRINT " F I N D   R U L E S ": NORMAL 
  216. 2160  PRINT 
  217. 2170  HTAB 4: PRINT "THE FIND FUNCTION WILL SEARCH FOR"
  218. 2180  HTAB 3: PRINT "AND DISPLAY ALL RECORD NUMBERS WHOSE": PRINT 
  219. 2190  HTAB (21 - LEN(T$(TV))/2): POKE 50,63: PRINT T$(TV): NORMAL : PRINT 
  220. 2200  HTAB 3: PRINT "FIELD 'MATCHES' YOUR KEYWORD...";A1$;" K ";A2$
  221. 2210  PRINT : HTAB 5: POKE 50,63: PRINT "KEYWORD";: HTAB 24: PRINT "FIELD MATCH": NORMAL 
  222. 2220  HTAB 3: PRINT "-----------";: HTAB 20: PRINT "-------------------"
  223. 2230  HTAB 5: PRINT "*";A1$;" K ";A2$;: HTAB 21: PRINT "BEGINS WITH ";A1$;" K ";A2$
  224. 2240  HTAB 6: PRINT A1$;" K ";A2$;: HTAB 21: PRINT "CONTAINS ";A1$;" K ";A2$: PRINT : PRINT 
  225. 2250  PRINT : POKE 50,63: PRINT "NOTE";: NORMAL : PRINT ": ";A1$;" K ";A2$;" CAN BE ANY COMBINATION OF"
  226. 2260  HTAB 7: PRINT "LETTERS, NUMBERS, AND SYMBOLS.": PRINT 
  227. 2270  POKE 35,24
  228. 2280 L = 0: PRINT : HTAB 2: POKE 50,63: PRINT "ENTER KEYWORD";: NORMAL : PRINT ": ";G$;: INPUT " ";KEY$
  229. 2290  IF KEY$ = ""  THEN 1950
  230. 2300  IF  LEFT$(KEY$,1) = "*"  THEN L = 1
  231. 2310  IF  LEN(KEY$) >TV%(TV) +L  THEN  VTAB 21: HTAB 16: CALL  -958: HTAB 18: POKE 50,63: PRINT "  KEYWORD > FIELD  ";G$;G$;: FOR D = 1 TO 1000: NEXT D: HTAB 16: CALL  -868: VTAB 20: NORMAL : GOTO 2280
  232. 2320  IF KEY$ =  CHR$(42)  THEN  VTAB 20: HTAB 18: CALL  -958: GOTO 2280
  233. 2330 A$ = KEY$
  234. 2340  FOR D = 1 TO 100: NEXT D
  235. 2350  IF Y$ = "F"  THEN 2390
  236. 2360  HOME : VTAB 3: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$: NORMAL : VTAB 6: POKE 34,4: HOME 
  237. 2370  HTAB (17 - LEN(A$)/2): PRINT A1$;" K ";A2$;" = ";A$: POKE 34,7: PRINT 
  238. 2380  VTAB 22: HTAB (21 - LEN(T$(TV))/2): POKE 50,63: PRINT T$(TV): NORMAL : VTAB 7: HTAB 1
  239. 2390  IF  LEFT$(KEY$,1) < > CHR$(42)  THEN DUM = 2: GOTO 2410
  240. 2400 KEY$ =  RIGHT$(KEY$, LEN(KEY$) -1):DUM = 1
  241. 2410 CC = 0
  242. 2420  IF TV = 1  THEN FL = 1: GOTO 2440
  243. 2430 FL = 0: FOR JK = 1 TO TV -1:FL = FL +TV%(JK): NEXT JK:FL = FL +1
  244. 2440 LO = 1: IF Y$ = "F"  THEN LO = RD +1: IF RD +1 >REC  THEN LO = 1
  245. 2450  FOR K = LO TO REC
  246. 2460  IF Y$ = "F"  THEN 2480
  247. 2470  VTAB 5: HTAB 7: POKE 50,63: PRINT K;: NORMAL 
  248. 2480  IF DUM = 2  THEN 2530
  249. 2490 DUM$ =  LEFT$( MID$ (RD$(K),FL,TV%(TV)), LEN(KEY$))
  250. 2500  & DUM$,KEY$
  251. 2510  IF  PEEK(26) = 0  THEN 2610
  252. 2520  GOTO 2570
  253. 2530 DUM$ =  MID$ (RD$(K),FL,TV%(TV))
  254. 2540  & DUM$,KEY$
  255. 2550 CK = 0
  256. 2560  IF  PEEK(26) = 0  THEN 2610
  257. 2570  IF CC >11  THEN CC = CC +1:CK = 1:: GOTO 2610
  258. 2580  IF Y$ = "F"  THEN Y$ =  CHR$(21):RD = K -1: GOTO 1380
  259. 2590 CC = CC +1:CK = 1:ALPHA = K
  260. 2600  VTAB 6 +CC: HTAB 3: POKE 50,63: PRINT "RECORD   ";: HTAB (10 +(K <100) +(K <10)): PRINT K;: NORMAL : PRINT " ...... "; MID$ (RD$(K),FL,TV%(TV))
  261. 2610  NEXT K
  262. 2620  IF Y$ = "F"  THEN  VTAB (6 +TV): HTAB 5: PRINT T$(TV): GOTO 1280
  263. 2630  IF CC = 0  THEN  VTAB 13: HTAB 7: PRINT "NO SUCCESSFUL CORRELATION"
  264. 2640  IF CC >13  THEN CC = CC -12: VTAB 20: HTAB 3: PRINT "+ ";CC;" ADDITIONAL RECORDS"
  265. 2650  VTAB 24: HTAB 7: PRINT "HIT ";: POKE 50,63: PRINT " F ";: NORMAL : PRINT " FOR ANOTHER SEARCH ";G$;
  266. 2660  IF CC = 1  THEN  VTAB 22: HTAB 9: PRINT "HIT ";: FLASH : PRINT " D ";: NORMAL : PRINT " TO DIAL NUMBER": VTAB 22: HTAB 14
  267. 2670  GET Z$: IF Z$ =  CHR$(70)  THEN  GOTO 1990
  268. 2680  IF Z$ =  CHR$(68)  AND CC = 1  THEN 2720
  269. 2690  IF Z$ =  CHR$(13)  THEN 480
  270. 2700  GOTO 2650
  271. 2710  REM  -> D.C. HAYES MODEM <-
  272. 2720  HOME : VTAB 10:DIAL$ =  CHR$(17)
  273. 2730  FOR I = 1 TO 12: IF  LEFT$(T$(I),5) = "PHONE"  OR  LEFT$(T$(I),4) = "TELE"  THEN 2750
  274. 2740  NEXT I: GOTO 2760
  275. 2750  IF MODEM = 1  THEN 2780
  276. 2760  VTAB 14: HTAB 6: POKE 50,63: PRINT " NO PHONE NUMBERS IN RECORDS ": NORMAL 
  277. 2770  HTAB 6: POKE 50,63: PRINT "   OR  NO MODEM CONNECTION   ";G$;G$: NORMAL : FOR D = 1 TO 2500: NEXT D: GOTO 1980
  278. 2780  PRINT 
  279. 2790 FL = 0: FOR IK = 1 TO I -1:FL = FL +TV%(IK): NEXT IK:FL = FL +1
  280. 2800 NUMBER$ =  MID$ (RD$(ALPHA),FL,TV%(I))
  281. 2810  PRINT D$"PR#2"
  282. 2820 NUMBER$ = NUMBER$ + CHR$(10)
  283. 2830  VTAB 11: PRINT DIAL$;NUMBER$
  284. 2840  FOR D = 1 TO 2000: NEXT D
  285. 2850  VTAB 17: HTAB 8: FLASH : PRINT "                        "
  286. 2860  HTAB 8: FLASH : PRINT "   PLEASE PICK UP THE   "
  287. 2870  HTAB 8: FLASH : PRINT "                        "
  288. 2880  HTAB 8: FLASH : PRINT " THE TELEPHONE-RECEIVER "
  289. 2890  HTAB 8: FLASH : PRINT "                        ": NORMAL : FOR D = 1 TO 5000: NEXT D
  290. 2900 ALPHA = 0: VTAB 13: HTAB 1: CALL  -958: VTAB 13: HTAB 10:GB$ =  CHR$(26): PRINT GB$
  291. 2910  PRINT D$"PR#0": FOR D = 1 TO 500: NEXT D: POKE 34,0: HOME : FOR D = 1 TO 500: NEXT D: GOTO 1990
  292. 2920  REM  ** SORT/PRINT **
  293. 2930 LABEL = 0
  294. 2940 RX = 0: IF  PEEK(8) = 1  THEN  GOSUB 190
  295. 2950  PRINT D$"CLOSE ";FILE$
  296. 2960  IF REC = 0  THEN 710
  297. 2970  REM  USER SETS TOP OF FORM
  298. 2980 B1$ = "LABEL":INDENT = 25
  299. 2990  POKE 34,0: HOME : VTAB 3: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$: POKE 34,4: NORMAL 
  300. 3000 T$(NF +1) = H$ +H$ +H$ +B$: FOR K = 1 TO NF:TX$(K) =  CHR$(13): NEXT K
  301. 3010  HOME :L = 0: PRINT : PRINT " THE FOLLOWING FIELDS ARE AVAILABLE ": HTAB 12: PRINT "FOR THE ";B1$;":": PRINT 
  302. 3020  FOR K = 1 TO NF  STEP 2
  303. 3030  PRINT "  "; TAB( 4 -(K >9));K;". ";T$(K); TAB( 22 -((K +1) >9));K +1;". ";T$(K +1)
  304. 3040  NEXT :K = NF
  305. 3050  IF K/2 < > INT(K/2)  THEN  VTAB  PEEK(37): HTAB 21: CALL  -958
  306. 3060 L = L +1
  307. 3070  IF L >NF  THEN 3150
  308. 3080  VTAB 21: HTAB 10: GOSUB 170: PRINT : VTAB 17: CALL  -868: PRINT "ENTER FIELD # FOR ";: POKE 50,63: PRINT " LINE ";L;G$;: NORMAL : INPUT " : ";TV$
  309. 3090  IF L = 1  AND  LEN(TV$) = 0  THEN 480
  310. 3100  IF  LEN(TV$) = 0  THEN 3150
  311. 3110  IF TV$ =  CHR$(21)  OR TV$ =  CHR$(32)  THEN 480
  312. 3120  IF TV$ = "@"  THEN L = NF +1:TV = NF: FOR I = 1 TO NF:TW%(I) = I: NEXT : GOTO 3150
  313. 3130 TV =  INT( VAL(TV$)): IF TV <1  OR TV >NF  THEN 3080
  314. 3140 TW%(L) = TV: GOTO 3060
  315. 3150  HOME :LINES = L -1: PRINT : HTAB 8:: PRINT "YOUR ";B1$;" WILL CONSIST OF :": HTAB 7: PRINT "----------------------------"
  316. 3160  FOR K = 1 TO LINES: HTAB (14 -(K >9)): PRINT K;". ";T$(TW%(K)): NEXT K
  317. 3170  POKE 34,20: VTAB 22: HTAB 10: PRINT "IS THIS CORRECT (Y/N)  ";G$;: GET Y$: IF Y$ = "N"  THEN  POKE 34,4: GOTO 3010
  318. 3180  IF Y$ =  CHR$(21)  OR Y$ =  CHR$(32)  THEN 480
  319. 3190  IF Y$ < >"Y"  THEN 3170
  320. 3200 LC = 0
  321. 3210  VTAB 21: CALL  -868: VTAB 22: HTAB 6: PRINT "MERGE TWO OR MORE LINES (Y/N) ";G$;: GET Y$: IF Y$ = "N"  THEN 3420
  322. 3220  IF Y$ < >"Y"  THEN 3210
  323. 3230  FOR K = 1 TO NF:TX$(K) =  CHR$(13): NEXT K
  324. 3240  GOTO 3260
  325. 3250  VTAB 21: HTAB 16: CALL  -958: HTAB 16: PRINT "TO FIELD # ": VTAB 23: HTAB 10: GOSUB 170: GOTO 3300
  326. 3260  HTAB 1: VTAB 21: CALL  -958: POKE 50,63: PRINT "JOIN";: NORMAL : PRINT " FIELD #";G$;: INPUT " ";LX$: IF  LEN(LX$) = 0  THEN 3420
  327. 3270  VTAB 21: HTAB 16: CALL  -958:LX =  VAL(LX$)
  328. 3280  IF LX <1  OR LX >LINES -1  THEN  POKE 50,63: HTAB 14: PRINT "INVALID";: NORMAL : PRINT G$;G$: FOR D = 1 TO 500: NEXT D: VTAB 21: HTAB 1: GOTO 3260
  329. 3290 LC = LC -1: GOTO 3250
  330. 3300  VTAB 21: HTAB 27: PRINT LX +1;":"
  331. 3310  VTAB 21: HTAB 32: PRINT "ENTER ";: FLASH : PRINT " ? ";G$;: VTAB 21:: HTAB 39: NORMAL :TX$(LX) = ""
  332. 3320  GET T1$: IF T1$ =  CHR$(13)  THEN TX$(LX) =  CHR$(13): GOTO 3420
  333. 3330  IF T1$ < >" "  THEN 3350
  334. 3340 TX$(LX) = TX$(LX) +T1$: GOTO 3360
  335. 3350 TX$(LX) = TX$(LX) +" " +T1$ +" "
  336. 3360 ZZ$ = T$(TW%(LX)) +T1$ +T$(TW%(LX +1))
  337. 3370 ZZ =  LEN(ZZ$) +2:ZZ = (40 -ZZ)/2 -1
  338. 3380  VTAB 23: HTAB 1: CALL  -958
  339. 3390  HTAB ZZ: POKE 50,63: PRINT T$(TW%(LX));: NORMAL : PRINT " ";: POKE 50,63: PRINT TX$(LX);: NORMAL : PRINT " ";: POKE 50,63: PRINT T$(TW%(LX +1)): NORMAL 
  340. 3400  FOR D = 1 TO 500: NEXT D
  341. 3410  GOTO 3260
  342. 3420  POKE 34,4: POKE 35,23: HOME : PRINT : HTAB 6: PRINT "THE ";B1$;" WILL LOOK LIKE THIS :"
  343. 3430  HTAB 6: PRINT "------------------------------"
  344. 3440  FOR K = 1 TO LINES: PRINT T$(TW%(K));TX$(K);: NEXT K
  345. 3450  VTAB 22: HTAB 14: PRINT "CORRECT (Y/N) ";G$;: GET Y$: IF Y$ = "N"  THEN 3010
  346. 3460  IF Y$ < >"Y"  THEN 3450
  347. 3470  HOME : VTAB 12: HTAB 8: PRINT "WANT SORTED ";B1$;" (Y/N) ? ";G$;: GET Y1$: PRINT Y1$: IF Y1$ < >"Y"  THEN 3740
  348. 3480  HOME : PRINT : PRINT "THE FOLLOWING LINES ARE AVAILABLE FOR"
  349. 3490  PRINT "THE SORT FIELD :": PRINT 
  350. 3500  FOR K = 1 TO NF  STEP 2: HTAB (4 -(K >9)): PRINT K;". ";T$(K); TAB( 22 -(K >8));K +1;". ";T$(K +1): NEXT K: IF NF/2 < > INT(NF/2)  THEN  VTAB  PEEK(37): HTAB 21: CALL  -958: PRINT 
  351. 3510  PRINT : PRINT "SORT ON WHICH FIELD (BY NUMBER): ";G$;: INPUT " ";SF$:SF =  VAL(SF$): IF SF <1  OR SF >NF  THEN 3480
  352. 3520  POKE 34,0: POKE 35,24: HOME 
  353. 3530  VTAB 10: HTAB (13 - LEN(T$(SF))/2): PRINT "*** ";: POKE 50,63: PRINT "SORT ON ";T$(SF);: NORMAL : PRINT " ***"
  354. 3540  PRINT : PRINT : POKE 50,63: PRINT "ASCENDING";: NORMAL : PRINT " OR ";: POKE 50,63: PRINT "DESCENDING";: NORMAL : PRINT " SORT (A/D) : ";G$;: GET S$: PRINT S$;:S1 = (S$ = "A")
  355. 3550  IF S$ < >"A"  AND S$ < >"D"  THEN  VTAB ( PEEK(37) -1): GOTO 3540
  356. 3560 SS$ = "ASCENDING": IF S$ = "D"  THEN SS$ = "DESCENDING"
  357. 3570  VTAB 12: CALL  -958: VTAB 17: HTAB 14: PRINT "S O R T I N G"
  358. 3580  VTAB 7: HTAB 16: POKE 50,63: PRINT SS$;: NORMAL 
  359. 3590  FOR K = 1 TO REC
  360. 3600 SO%(K) = K
  361. 3610  IF SF = 1  THEN FL = 1: GOTO 3630
  362. 3620 FL = 0: FOR I = 1 TO SF -1:FL = FL +TV%(I): NEXT I:FL = FL +1
  363. 3630 SRT$(K) =  MID$ (RD$(K),FL,TV%(SF))
  364. 3640  NEXT K
  365. 3650 M = 1
  366. 3660 M = 3 *M +1: IF M <REC  THEN 3660
  367. 3670 M = (M -1)/3: IF M <1  THEN 3720
  368. 3680  FOR J = M +1 TO REC:LL = J -M:SS$ = SRT$(J):S = SO%(J)
  369. 3690  VTAB 20: HTAB 19: POKE 50,63: PRINT "   ";: HTAB (19 +(J <100) +(J <10)): PRINT J: NORMAL 
  370. 3700  IF S1 = (SRT$(LL) >SS$)  THEN SRT$(LL +M) = SRT$(LL):SO%(LL +M) = SO%(LL):LL = LL -M: IF LL >0  THEN 3700
  371. 3710 SRT$(LL +M) = SS$:SO%(LL +M) = S: NEXT J: GOTO 3670
  372. 3720  REM  SHELL SORT LIST DONE
  373. 3730  FOR D = 1 TO 1000: NEXT D
  374. 3740  IF LABEL >0  THEN 3780
  375. 3750  HOME : VTAB 9: PRINT "HOW MANY ";: POKE 50,63: PRINT "CARRIAGE RETURNS";: NORMAL : PRINT " FROM END OF": PRINT : HTAB 11: PRINT "ONE ";B1$;" TO NEXT ? ";G$;: INPUT " ";CR
  376. 3760  VTAB 15: HTAB 13: POKE 50,63: PRINT "V";: NORMAL : PRINT "IEW OR ";: POKE 50,63: PRINT "P";: NORMAL : PRINT "RINT ? ";G$;: GET VP$: IF VP$ < >"V"  AND VP$ < >"P"  THEN 3760
  377. 3770  PRINT VP$: FOR D = 1 TO 500: NEXT D:XX = 6
  378. 3780  GOTO 3810
  379. 3790  HOME 
  380. 3800  FOR K1 = 1 TO REC:RX = SO%(K1): GOTO 3960
  381. 3810  POKE 35,24: HOME 
  382. 3820  VTAB 23: POKE 50,63: PRINT "PADDLE #1";: NORMAL : PRINT " CONTROLS SCROLL/PRINT SPEED !": POKE 35,21: VTAB 6: FOR D = 1 TO 750: NEXT D
  383. 3830  IF VP$ = "P"  THEN  PRINT D$"PR#1": PRINT  CHR$(9);"80N";
  384. 3840  IF Y1$ = "Y"  THEN 3790
  385. 3850 RX = RX +1: IF RX <1  THEN RX = 1
  386. 3860  IF RX < = REC  THEN 3960
  387. 3870  PRINT D$"PR#0": PRINT : SPEED= 255: HTAB 15: POKE 50,63: PRINT " END OF FILE ": NORMAL : FOR D = 1 TO 1000: NEXT D
  388. 3880  IF VP$ = "P"  THEN  PRINT D$"PR#1": PRINT  CHR$(12): PRINT D$"PR#0"
  389. 3890  POKE 35,24: HOME : VTAB 9
  390. 3900  PRINT : PRINT : PRINT : POKE  -16368,0
  391. 3910  HTAB 5: PRINT "PRESS ";: POKE 50,63: PRINT "RETURN";: NORMAL : PRINT " TO RE-FORMAT COPY": PRINT 
  392. 3920  HTAB 7: PRINT "PRESS ";: POKE 50,63: PRINT " C ";: NORMAL : PRINT " FOR ANOTHER COPY ";G$;: GET Y$: PRINT 
  393. 3930  IF Y$ =  CHR$(67)  THEN  HOME :LABEL = 1:RX = XR: GOTO 3750
  394. 3940  IF Y$ =  CHR$(13)  THEN LABEL = 0:RX = XR: GOTO 2990
  395. 3950  VTAB 14: GOTO 3920
  396. 3960  IF VP$ = "P"  THEN  HTAB (INDENT): IF (XX +LINES +LC) >60  THEN  PRINT  CHR$(12):XX = 6: HTAB (INDENT)
  397. 3970 FL = 0: FOR K = 1 TO NF:P$(K) =  MID$ (RD$(RX),FL +1,TV%(K)):FL = FL +TV%(K): NEXT 
  398. 3980  IF VP$ = "P"  THEN  HTAB (INDENT)
  399. 3990  FOR K = 1 TO LINES
  400. 4000 L =  LEN(P$(TW%(K))): IF L <2  THEN L = 1: GOTO 4040
  401. 4010  FOR J = 1 TO L -1
  402. 4020  IF  MID$ (P$(TW%(K)),L,1) < >" "  THEN 4040
  403. 4030 L = L -1: NEXT 
  404. 4040  PRINT  LEFT$(P$(TW%(K)),L);TX$(K);: IF TX$(K) =  CHR$(13)  THEN XX = XX +1: IF VP$ = "P"  THEN  HTAB (INDENT)
  405. 4050  SPEED=  PDL(1): NEXT K
  406. 4060  ON CR +1 GOTO 4100,4090
  407. 4070  FOR D = 1 TO CR: PRINT :XX = XX +1: NEXT D
  408. 4080  GOTO 4100
  409. 4090  PRINT :XX = XX +1
  410. 4100  IF Y1$ < >"Y"  THEN 3850
  411. 4110  NEXT K1: PRINT D$"PR#0": GOTO 3870
  412. 4120  REM  *** PURGE/PACK ***
  413. 4130 B1$ =  CHR$(91):B2$ =  CHR$(93)
  414. 4140 RX = 0: IF  PEEK(8) = 1  THEN  GOSUB 190
  415. 4150  PRINT D$"CLOSE ";FILE$
  416. 4160  IF REC = 0  THEN 710
  417. 4170  POKE 34,0: HOME : VTAB 2: HTAB (21 - LEN(FILE$)/2): POKE 50,63: PRINT FILE$: POKE 34,4: NORMAL 
  418. 4180 NP = 0:L = 1
  419. 4190  VTAB 5: HTAB 1: POKE 50,63: PRINT "ALL";: NORMAL : PRINT " ERASED/BLANK RECORDS WILL BE PURGED": PRINT 
  420. 4200  PRINT "FROM YOUR FILE AND THE REMAINING RECORDS"
  421. 4210  PRINT "WILL BE REPACKED. FOR EXAMPLE :": PRINT : PRINT 
  422. 4220  HTAB 4: PRINT "1   2   3   4   5   6   7   8   9"
  423. 4230  HTAB 3: PRINT "--- --- --- --- --- --- --- --- ---"
  424. 4240  PRINT : HTAB 3: PRINT B1$;"A";B2$;" ";B1$;"B";B2$;" ";B1$;" ";B2$;" ";B1$;"D";B2$;" ";B1$;"E";B2$;" ";B1$;" ";B2$;" ";B1$;"G";B2$;" ";B1$;"H";B2$;" ";B1$;"I";B2$
  425. 4250  PRINT : HTAB 3: PRINT B1$;"A";B2$;" ";B1$;"B";B2$;" ";B1$;"I";B2$;" ";B1$;"D";B2$;" ";B1$;"E";B2$;" ";B1$;"H";B2$;" ";B1$;"G";B2$
  426. 4260  PRINT : HTAB 3: PRINT "--- --- --- --- --- --- --- --- ---"
  427. 4270  VTAB 21: HTAB 10: PRINT "HIT ";: POKE 50,63: PRINT " P ";: NORMAL : PRINT " TO PURGE FILES"
  428. 4280  VTAB 23: HTAB 13: PRINT "HIT ";: POKE 50,63: PRINT "RTN";: NORMAL : PRINT " FOR MENU ";G$;: GET A$
  429. 4290  IF A$ = "P"  THEN 4320
  430. 4300  IF A$ =  CHR$(13)  THEN 480
  431. 4310  GOTO 4280
  432. 4320  FOR D = 1 TO 100: NEXT D
  433. 4330  VTAB 12: HTAB 1: CALL  -868
  434. 4340  FOR D = 15 TO 17: VTAB (D): HTAB 1: CALL  -868: NEXT D
  435. 4350  VTAB 16: HTAB 11: PRINT "** ";: POKE 50,63: PRINT "PURGING FILES";: NORMAL : PRINT " **"
  436. 4360  VTAB 21: HTAB 1: CALL  -958
  437. 4370  FOR D = 1 TO 1500: NEXT D
  438. 4380 CC = 0
  439. 4390  FOR K = 1 TO REC
  440. 4400  IF  LEFT$(RD$(K),1) = "*"  THEN CC = CC +1:C%(CC) = K
  441. 4410  NEXT K
  442. 4420  IF L >1  THEN 4440
  443. 4430 NP = CC
  444. 4440  IF CC = 0  THEN 4500
  445. 4450  FOR K = 1 TO CC
  446. 4460 RD$(C%(K)) = RD$(REC)
  447. 4470 REC = REC -1
  448. 4480  NEXT K
  449. 4490 L = L +1: GOTO 4380
  450. 4500  HOME : VTAB 10: HTAB 14: PRINT "PURGE COMPLETED"
  451. 4510  VTAB 12: HTAB 13: POKE 50,63: PRINT NP;: NORMAL : PRINT " RECORDS DELETED"
  452. 4520  GOTO 4670
  453. 4530  VTAB 14: HTAB 11: PRINT "HIT ";: POKE 50,63: PRINT "RTN";: NORMAL : PRINT " TO SAVE FILES  ";G$;: GET A$: PRINT " "
  454. 4540  IF A$ < > CHR$(13)  THEN 4530
  455. 4550  PRINT D$"OPEN ";FILE$",L";RL
  456. 4560  PRINT D$"DELETE ";FILE$
  457. 4570  PRINT D$"OPEN ";FILE$",L";RL
  458. 4580  FOR R = 1 TO REC
  459. 4590  PRINT D$"WRITE ";FILE$",R";R
  460. 4600  PRINT RD$(R)
  461. 4610  NEXT 
  462. 4620  PRINT D$"WRITE ";FILE$",R";0
  463. 4630  PRINT REC
  464. 4640  PRINT D$"CLOSE"
  465. 4650  FOR D = 1 TO 1000: NEXT D
  466. 4660  GOTO 480
  467. 4670  VTAB 18: HTAB 9: PRINT "'HOUSECLEANING' - STANDBY ";G$:F =  FRE(0): FOR D = 1 TO 500: NEXT D: VTAB 18: HTAB 1: CALL  -868: HTAB 12: PRINT "FREE MEMORY = ";F
  468. 4680  IF NP < >0  THEN 4530
  469. 4690  VTAB 22: HTAB 13: PRINT "HIT ";: POKE 50,63: PRINT "RTN";: NORMAL : PRINT " FOR MENU ";G$;: GET A$
  470. 4700  IF A$ < > CHR$(13)  THEN 4690
  471. 4710  GOTO 480
  472. 4720  PRINT D$"RUN MERGE FILES"
  473. 4730  END