home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / DATABASE / KEEPTRAK.LBR / K-TSERCH.BZS / K-TSERCH.BAS
BASIC Source File  |  2000-06-30  |  17KB  |  419 lines

  1. 10  ' **********************************************
  2. 20  ' **********************************************
  3. 30  ' ***               K-TSERCH                 ***
  4. 40  ' ***      PART OF A CLUB MEMBERSHIP     ***
  5. 50  ' ***    FILING SYSTEM CALLED KEEP-TRAK     ***
  6. 60  ' ***                     ***
  7. 70  ' ***                                        ***
  8. 80  ' *** WRITTEN IN MICROSOFT BASIC-80 REV.5.21 ***
  9. 90  ' ***                                        ***
  10. 100 ' ***  (C) COPYRIGHT 1983 BY HARVEY G. LORD  ***
  11. 110 ' ***                                        ***
  12. 120 ' ***   DO NOT ATTEMPT TO RUN THIS PROGRAM   ***
  13. 130 ' ***   ALONE. IT IS CHAINED FROM K-TMENU.   ***
  14. 140 ' **********************************************
  15. 150 ' **********************************************
  16. 160 '
  17. 170 ON ERROR GOTO 20000                ' Error traps (Ch. 10)
  18. 180 COMMON CL$,RECORDTOTAL            ' Pass variables (Ch. 11)
  19. 190 ' Define cursor control (Ch. 8)
  20. 200 DEF FNCUR$(VERT,HORZ) = CHR$(27)+CHR$(61)+CHR$(32+VERT)+CHR$(32+HORZ)
  21. 210 DEF FNCLLN$ = CHR$(27) + CHR$(84)         ' Define clear line from cursor (Ch. 8)
  22. 220 '
  23. 230 '
  24. 240 '
  25. 250 '
  26. 260 '
  27. 270 ' Check for B:K-T.LST's existence.  If it's not there, to error trap
  28. 280 OPEN "I",#1,"B:K-T.LST":CLOSE#1
  29. 290 '
  30. 300 '
  31. 310 '
  32. 320 '
  33. 330 '
  34. 340 ' The rest of the program's executed only if B:K-T.LST exists.
  35. 350 '
  36. 360 PRINT CL$                    ' Clear screen (Ch. 7)
  37. 370 PRINT:PRINT                    ' 2 blank lines
  38. 380 PRINT TAB(14);"***   Search Menu   ***"
  39. 390 PRINT:PRINT                    ' 2 blank lines
  40. 400 PRINT "You may search for (and print, if you like) specific"
  41. 410 PRINT "members'  names and addresses or print  all members'"
  42. 420 PRINT "names and addresses on mailing labels."
  43. 430 PRINT:PRINT                    ' 2 blank lines
  44. 440 PRINT "Names are in the order they were entered, not alpha-"
  45. 450 PRINT "betical order.  If you want a sorted list, return to"
  46. 460 PRINT "the MAIN MENU and press selection 4."
  47. 470 PRINT:PRINT                    ' 2 blank lines
  48. 480 PRINT TAB(11);"S - Search for specific  entries"
  49. 490 PRINT TAB(11);"P - Print the whole mailing list"
  50. 500 PRINT TAB(11);"R - Return to MAIN MENU"
  51. 510 PRINT:PRINT:PRINT                ' 3 blank lines
  52. 520 PRINT TAB(14);"Please choose by letter."
  53. 530 CHOICE$ = INKEY$:IF CHOICE$ = "" THEN 530
  54. 540 IF CHOICE$ = "S" OR CHOICE$ = "s" THEN 1000
  55. 550 IF CHOICE$ = "P" OR CHOICE$ = "p" THEN 2000
  56. 560 IF CHOICE$ = "R" OR CHOICE$ = "r" THEN PRINT:PRINT:GOTO 1170
  57. 570 '
  58. 580 ' Catch illegal choices
  59. 590 '
  60. 600 PRINT CHR$(7);                ' Beep (Ch. 10)
  61. 610 FOR COUNT = 1 TO 3                ' Blink "Please choose" (Ch. 8)
  62. 620    PRINT FNCUR$(22,10);FNCLLN$        ' Clear line (Ch.8)
  63. 630    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  64. 640    PRINT FNCUR$(22,10);"Please press 'S,' 'P,' or 'R.'"
  65. 650    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  66. 660 NEXT COUNT
  67. 670 GOTO 530
  68. 680 '
  69. 690 '
  70. 700 '
  71. 710 '
  72. 720 '
  73. 1000 ' Search B:K-T.LST for entries to print (Ch. 6)
  74. 1010 '
  75. 1020 OPEN "I",#1,"B:K-T.LST"            ' OPEN B:K-T.LST for reading (Ch. 3)
  76. 1030 GOSUB 4000                    ' Enter name to search for
  77. 1040 IF EOF(1) THEN CLOSE#1:GOTO 1100        ' Check for end-of-file (Ch. 3)
  78. 1050 INPUT#1,FIRSTNM$,LASTNM$,STRTADD$,CITY$,STATE$,ZIP$,TELNUMBER$,PAID$
  79. 1060 IF FIRSTNM$ <> FIRSTNAME$ OR LASTNM$ <> LASTNAME$ THEN 1040
  80. 1070 GOSUB 5000                    ' Display record when found
  81. 1080 GOTO 1040
  82. 1090 '
  83. 1100 ' Whole list has been checked
  84. 1110 '
  85. 1120 GOSUB 6000                    ' Ask if user wants to search for more
  86. 1130 IF CHOICE$ = "S" OR CHOICE$ = "s" THEN 1000
  87. 1140 '
  88. 1150 ' If the user doesn't want to search more, return to MAIN MENU
  89. 1160 '
  90. 1170 PRINT:PRINT                ' 2 blank lines
  91. 1180 PRINT TAB(14);"Returning to MAIN MENU"
  92. 1190 CHAIN "K-TMENU",270
  93. 1200 '
  94. 1210 '
  95. 1220 '
  96. 1230 '
  97. 2000 ' Print whole membership list
  98. 2010 '
  99. 2020 GOSUB 7000                    ' Print whole list menu
  100. 2030 IF CHOICE$ = "R" OR CHOICE$ = "r" THEN 1170
  101. 2040 GOSUB 8000                    ' Warning to plug in printer
  102. 2050 OPEN "I",#1,"B:K-T.LST"
  103. 2060 PRINT CL$                    ' Clear screen (Ch. 7)
  104. 2070 IF EOF(1) THEN CLOSE#1:GOTO 2220        ' Check for End-of-file (Ch. 3)
  105. 2080 INPUT#1,FIRSTNM$,LASTNM$,STRTADD$,CITY$,STATE$,ZIP$,TELNUMBER$,PAID$
  106. 2090 PRINT:PRINT:PRINT:PRINT            ' 4 blank lines
  107. 2100 PRINT TAB(14);FIRSTNM$;" ";LASTNM$        ' Display the record
  108. 2110 PRINT TAB(14);STRTADD$
  109. 2120 PRINT TAB(14);CITY$;", "STATE$;"  ";ZIP$
  110. 2130 PRINT TAB(14);"Phone No.  ";TELNUMBER$
  111. 2140 PRINT TAB(14);"Amount Paid:  $";PAID$
  112. 2150 PRINT:PRINT                ' 2 blank lines
  113. 2160 ' Line 2170 uses the value of CHOICE$ returned from the subroutine in lines 7000 and following.
  114. 2170 IF CHOICE$ = "A" OR CHOICE$ = "a" THEN GOSUB 9000 ' Print this record?
  115. 2180 ' Line 2190 uses the value of CHOOSE$ returned from the subroutine in lines 9000 and following.
  116. 2190 IF CHOOSE$ = "N" OR CHOOSE$ = "n" THEN 2060 ' Don't print the record.
  117. 2200 GOSUB 3030                    ' Send record to printer
  118. 2210 GOTO 2060                    ' Loop back for next record
  119. 2220 PRINT:PRINT                ' 2 blank lines
  120. 2230 PRINT TAB(14);"End of membership list."
  121. 2240 GOTO 1170                    ' Return to MAIN MENU
  122. 2250 '
  123. 2260 '
  124. 2270 '
  125. 2280 '
  126. 2290 '
  127. 3000 ' SUBROUTINE ** Print record found via search
  128. 3010 '
  129. 3020 GOSUB 8030                    ' Warning to plug in printer
  130. 3030 LPRINT FIRSTNM$;" ";LASTNM$        ' Send record to printer (mailing label format)
  131. 3040 LPRINT STRTADD$
  132. 3050 LPRINT CITY$;", ";STATE$;"  ";ZIP$
  133. 3060 LPRINT:LPRINT:LPRINT
  134. 3070 RETURN
  135. 3080 '
  136. 3090 '
  137. 3100 '
  138. 3110 '
  139. 3120 '
  140. 4000 ' SUBROUTINE ** Enter names to search for
  141. 4010 '
  142. 4020 PRINT CL$                    ' Clear screen (Ch. 7)
  143. 4030 PRINT TAB(7);"***  Search for and Specific Entries   ***"
  144. 4040 PRINT
  145. 4050 PRINT "  Enter the  first and last  names of the  person"
  146. 4060 PRINT "  whose address  and telephone number you want to"
  147. 4070 PRINT "  find."
  148. 4080 PRINT
  149. 4090 PRINT "  NOTE:  Spelling, including upper and lower case"
  150. 4100 PRINT "  letters, COUNTS."
  151. 4110 PRINT
  152. 4120 PRINT "  Misspelling causes computer errors."
  153. 4130 PRINT:PRINT                ' 2 blank lines
  154. 4140 PRINT "  FIRST NAME (then press RETURN):"
  155. 4150 PRINT "  LAST NAME  (then press RETURN):"
  156. 4160 PRINT FNCUR$(13,36);FNCLLN$        ' Clear line (Ch. 8)
  157. 4170 PRINT FNCUR$(13,36);:LINE INPUT;FIRSTNAME$
  158. 4180 GOSUB 10000:IF ILLEGAL = 1 THEN 4160    ' Check for illegal entry (Ch. 10)
  159. 4190 PRINT FNCUR$(14,36);FNCLLN$        ' Clear line (Ch. 8)
  160. 4200 PRINT FNCUR$(14,36);:LINE INPUT;LASTNAME$
  161. 4210 GOSUB 11000:IF ILLEGAL = 1 THEN 4190    ' Check for illegal entry (Ch. 10)
  162. 4220 PRINT FNCUR$(16,2);"Searching.  Please wait."
  163. 4230 RETURN
  164. 4240 '
  165. 4250 '
  166. 4260 '
  167. 4270 '
  168. 4280 '
  169. 5000 ' SUBROUTINE ** Display entry when found
  170. 5010 '
  171. 5020 PRINT CL$                    ' Clear screen (Ch. 7)
  172. 5030 PRINT "    ***   Here's the entry you asked for   ***"
  173. 5040 PRINT:PRINT:PRINT:PRINT            ' 4 blank lines
  174. 5050 PRINT TAB(14);FIRSTNM$;" ";LASTNM$        ' Display the record
  175. 5060 PRINT TAB(14);STRTADD$
  176. 5070 PRINT TAB(14);CITY$;", "STATE$;"  ";ZIP$
  177. 5080 PRINT TAB(14);"Phone No.  ";TELNUMBER$
  178. 5090 PRINT TAB(14);"Amount Paid:  $";PAID$
  179. 5100 PRINT:PRINT                ' 2 blank lines
  180. 5110 PRINT TAB(10);"Do you want to print this address
  181. 5120 PRINT TAB(8);"on a mailing label?  Y = YES & N = NO"
  182. 5130 CHOICE$ = INKEY$:IF CHOICE$ = "" THEN 5130
  183. 5140 IF CHOICE$ = "Y" OR CHOICE$ = "y" THEN GOSUB 3000:RETURN
  184. 5150 IF CHOICE$ = "N" OR CHOICE$ = "n" THEN RETURN
  185. 5160 '
  186. 5170 ' Catch illegal choices
  187. 5180 '
  188. 5190 PRINT CHR$(7);                ' Beep (Ch. 10)
  189. 5200 FOR COUNT = 1 TO 3                ' Blink "Please choose" (Ch. 8)
  190. 5210    PRINT FNCUR$(18,4);FNCLLN$        ' Clear line (Ch.8)
  191. 5220    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  192. 5230    PRINT FNCUR$(18,4);"Please press 'Y' for 'YES' or 'N' for 'NO.'"
  193. 5240    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  194. 5250 NEXT COUNT
  195. 5260 GOTO 5130                    ' Try for correct response
  196. 5270 '
  197. 5280 '
  198. 5290 '
  199. 5300 '
  200. 5310 '
  201. 6000 ' SUBROUTINE ** End of searching through list
  202. 6010 '
  203. 6020 PRINT CL$                    ' Clear screen (Ch. 7)
  204. 6030 PRINT:PRINT                ' 2 blank lines
  205. 6040 PRINT TAB(14);"***   End of List   ***"
  206. 6050 PRINT:PRINT                ' 2 blank lines
  207. 6060 PRINT "I've searched through the whole list.  If the name"
  208. 6070 PRINT "you wanted did not appear,  either it's not in the"
  209. 6080 PRINT "list or you mistyped it."
  210. 6090 PRINT:PRINT                ' 2 blank lines
  211. 6100 PRINT "Please  remember that upper and lower case letters"
  212. 6110 PRINT "are different to a computer.  If the name was ori-"
  213. 6120 PRINT "ginally  entered with all capital  letters and you"
  214. 6130 PRINT "just asked me to search  with upper and lower case"
  215. 6140 PRINT "letters, I probably wouldn't find the entry."
  216. 6150 PRINT:PRINT:PRINT                ' 2 blank lines
  217. 6160 PRINT TAB(12);"S - Search for another entry"
  218. 6170 PRINT TAB(12);"R - Return to MAIN MENU"
  219. 6180 PRINT:PRINT                ' 2 blank lines
  220. 6190 PRINT TAB(14);"Please choose by letter."
  221. 6200 CHOICE$ = INKEY$:IF CHOICE$ = "" THEN 6200 ' Wait for keypress (Ch. 7)
  222. 6210 IF CHOICE$ = "S" OR CHOICE$ = "s" OR CHOICE$ = "R" OR CHOICE$ = "r" THEN RETURN
  223. 6220 '
  224. 6230 ' Catch illegal choices
  225. 6240 '
  226. 6250 PRINT CHR$(7);                ' Beep (Ch. 10)
  227. 6260 FOR COUNT = 1 TO 3                ' Blink "Please choose" (Ch. 8)
  228. 6270    PRINT FNCUR$(22,13);FNCLLN$        ' Clear line (Ch.8)
  229. 6280    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  230. 6290    PRINT FNCUR$(22,13);"Please press 'S' or 'R.'"
  231. 6300    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  232. 6310 NEXT COUNT
  233. 6320 GOTO 6200                    ' Try for correct response
  234. 6330 '
  235. 6340 '
  236. 6350 '
  237. 6360 '
  238. 6370 '
  239. 7000 ' SUBROUTINE ** Print whole list menu
  240. 7010 '
  241. 7020 PRINT CL$                    ' Clear screen (Ch. 7)
  242. 7030 PRINT:PRINT                ' 2 blank lines
  243. 7040 PRINT TAB(9);"**  Print Whole Membership List  **"
  244. 7050 PRINT:PRINT                ' 2 blank lines
  245. 7060 PRINT "Do you want to stop for each member and give permis-"
  246. 7070 PRINT "sion to print the label or print labels for all mem-"
  247. 7080 PRINT "bers?"
  248. 7090 PRINT:PRINT                ' 2 blank lines
  249. 7100 PRINT TAB(5);"A - Ask  permission to print  each  label"
  250. 7110 PRINT TAB(5);"P - Print the whole list without stopping"
  251. 7120 PRINT TAB(5);"R - Return to MAIN MENU, printing nothing"
  252. 7130 PRINT:PRINT:PRINT                ' 3 blank lines
  253. 7140 PRINT TAB(14);"Please choose by letter."
  254. 7150 CHOICE$ = INKEY$:IF CHOICE$ = "" THEN 7150
  255. 7160 IF CHOICE$ = "A" OR CHOICE$ = "a" THEN RETURN ' Main program uses CHOICE$'s value
  256. 7170 IF CHOICE$ = "P" OR CHOICE$ = "p" THEN RETURN
  257. 7180 IF CHOICE$ = "R" OR CHOICE$ = "r" THEN RETURN ' Return to MAIN MENU
  258. 7190 '
  259. 7200 ' Catch illegal choices
  260. 7210 '
  261. 7220 PRINT CHR$(7);                ' Beep (Ch. 10)
  262. 7230 FOR COUNT = 1 TO 3                ' Blink "Please choose" (Ch. 8)
  263. 7240    PRINT FNCUR$(17,11);FNCLLN$        ' Clear line (Ch.8)
  264. 7250    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  265. 7260    PRINT FNCUR$(17,11);"Please press 'A,' 'P,' or 'R.'"
  266. 7270    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  267. 7280 NEXT COUNT
  268. 7290 GOTO 7150                    ' Try for correct response
  269. 7300 '
  270. 7310 '
  271. 7320 '
  272. 7330 '
  273. 7340 '
  274. 8000 ' SUBROUTINE ** Warning to plug in the printer
  275. 8010 '
  276. 8020 PRINT CL$                    ' Clear screen (Ch. 7)
  277. 8030 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT TAB(4);"Your printer must be plugged in, turned on"
  278. 8040 PRINT TAB(7);"and loaded with 3-1/2 X 15/16 labels."
  279. 8050 PRINT:PRINT:PRINT:PRINT TAB(7);"Press any key when the printer's ready."
  280. 8060 IF INKEY$ = "" THEN 8060            ' Wait for keypress (Ch. 7)
  281. 8070 RETURN
  282. 8080 '
  283. 8090 '
  284. 8100 '
  285. 8110 '
  286. 8120 '
  287. 9000 ' SUBROUTINE ** Do you want to print this record?
  288. 9010 '
  289. 9020 PRINT:PRINT                ' 2 blank lines
  290. 9030 PRINT TAB(6);"Do you want to print this entry?  (Y/N)"
  291. 9040 CHOOSE$ = INKEY$:IF CHOOSE$ = "" THEN 9040 ' Wait for keypress (Ch. 7)
  292. 9050 IF CHOOSE$ = "Y" OR CHOOSE$ = "y" OR CHOOSE$ = "N" OR CHOOSE$ = "n" THEN RETURN
  293. 9060 '
  294. 9070 ' Catch illegal choices
  295. 9080 '
  296. 9090 PRINT CHR$(7);                ' Beep (Ch. 10)
  297. 9100 FOR COUNT = 1 TO 3                ' Blink "Please choose" (Ch. 8)
  298. 9110    PRINT FNCUR$(18,4);FNCLLN$        ' Clear line (Ch.8)
  299. 9120    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  300. 9130    PRINT FNCUR$(18,4);"Please press 'Y' for 'YES' or 'N' for 'NO.'"
  301. 9140    FOR PAUSE = 1 TO 100:NEXT PAUSE        ' Count silently to 100 (Ch. 7)
  302. 9150 NEXT COUNT
  303. 9160 GOTO 9040                    ' Try for correct response
  304. 9170 '
  305. 9180 '
  306. 9190 '
  307. 9200 '
  308. 9210 '
  309. 10000 ' SUBROUTINE ** Prevent illegal FIRSTNAME$ entries (Ch. 10)
  310. 10010 '
  311. 10020 ILLEGAL = 0                ' No illegal entry yet, just checking (Ch. 10)
  312. 10030 IF FIRSTNAME$ = "" THEN FIRSTNAME$ = "N/A":GOTO 10220
  313. 10040 FOR CHECK = 1 TO LEN(FIRSTNAME$)        ' Legal entries on next line
  314. 10050    IF ASC(MID$(FIRSTNAME$,CHECK,1)) >= 65 AND ASC(MID$(FIRSTNAME$,CHECK,1)) <= 90 THEN 10210 ' A through Z
  315. 10060    IF ASC(MID$(FIRSTNAME$,CHECK,1)) >= 97 AND ASC(MID$(FIRSTNAME$,CHECK,1)) <= 122 THEN 10210 ' a through z
  316. 10070    IF ASC(MID$(FIRSTNAME$,CHECK,1)) = 32 OR ASC(MID$(FIRSTNAME$,CHECK,1)) = 38 OR ASC(MID$(FIRSTNAME$,CHECK,1)) = 39 THEN 10210 ' Space apostrophe, & ampersand
  317. 10080    IF ASC(MID$(FIRSTNAME$,CHECK,1)) >= 45 AND ASC(MID$(FIRSTNAME$,CHECK,1)) <= 46 THEN 10210 ' Dash & period
  318. 10090    ILLEGAL = 1                ' ILlegal entry found (Ch. 10)
  319. 10100    PRINT CHR$(7)                ' Beep (Ch. 10)
  320. 10110    PRINT FNCUR$(3,0);FNCLLN$        ' Clear third line from top
  321. 10120    PRINT FNCUR$(5,0);FNCLLN$        ' Clear fifth line from top
  322. 10130    FOR COUNT = 1 TO 3            ' Bink error message
  323. 10140        PRINT FNCUR$(4,0);FNCLLN$        ' Clear fourth line from top
  324. 10150        FOR PAUSE = 1 TO 100:NEXT PAUSE    ' Count to 100 silently (Ch. 7)
  325. 10160        PRINT FNCUR$(4,18);"Illegal Entry!"
  326. 10170        FOR PAUSE = 1 TO 100:NEXT PAUSE    ' Count to 100 silently (Ch. 7)
  327. 10180     NEXT COUNT
  328. 10190     PRINT FNCUR$(5,2);"Please re-enter without digits or punctuation."
  329. 10200     RETURN                    ' Go back to correct entry
  330. 10210 NEXT CHECK
  331. 10220 GOSUB 12000                ' Replace INPUT instructions once illegal INPUT's corrected
  332. 10230 RETURN                    ' No illegal entries, next INPUT
  333. 10240 '
  334. 10250 '
  335. 10260 '
  336. 10270 '
  337. 10280 '
  338. 11000 ' SUBROUTINE ** Prevent illegal LASTNAME$ entries (Ch. 10)
  339. 11010 '
  340. 11020 ILLEGAL = 0                ' No illegal entry yet, just checking (Ch. 10)
  341. 11030 IF LASTNAME$ = "" THEN LASTNAME$ = "N/A":GOTO 10220
  342. 11040 FOR CHECK = 1 TO LEN(LASTNAME$)        ' Legal entries on next line
  343. 11050   IF ASC(MID$(LASTNAME$,CHECK,1)) >= 65 AND ASC(MID$(LASTNAME$,CHECK,1)) <= 90 THEN 11210 ' A through Z
  344. 11060   IF ASC(MID$(LASTNAME$,CHECK,1)) >= 97 AND ASC(MID$(LASTNAME$,CHECK,1)) <= 122 THEN 11210 ' a through z
  345. 11070   IF ASC(MID$(LASTNAME$,CHECK,1)) = 32 OR ASC(MID$(LASTNAME$,CHECK,1)) = 38 OR ASC(MID$(LASTNAME$,CHECK,1)) = 39 THEN 11210 ' Space apostrophe, & ampersand
  346. 11080   IF ASC(MID$(LASTNAME$,CHECK,1)) >= 45 AND ASC(MID$(LASTNAME$,CHECK,1)) <= 46 THEN 11210 ' Dash & period
  347. 11090   ILLEGAL = 1                ' ILlegal entry found (Ch. 10)
  348. 11100   PRINT CHR$(7)                ' Beep (Ch. 10)
  349. 11110   PRINT FNCUR$(3,0);FNCLLN$        ' Clear third line from top
  350. 11120   PRINT FNCUR$(5,0);FNCLLN$        ' Clear fifth line from top
  351. 11130   FOR COUNT = 1 TO 3            ' Bink error message
  352. 11140        PRINT FNCUR$(4,0);FNCLLN$        ' Clear fourth line from top
  353. 11150        FOR PAUSE = 1 TO 100:NEXT PAUSE    ' Count to 100 silently (Ch. 7)
  354. 11160        PRINT FNCUR$(4,18);"Illegal Entry!"
  355. 11170        FOR PAUSE = 1 TO 100:NEXT PAUSE    ' Count to 100 silently (Ch. 7)
  356. 11180     NEXT COUNT
  357. 11190     PRINT FNCUR$(5,2);"Please re-enter without digits or punctuation."
  358. 11200     RETURN                    ' Go back to correct entry
  359. 11210 NEXT CHECK
  360. 11220 GOSUB 12000                ' Replace INPUT instructions once illegal INPUT's corrected
  361. 11230 RETURN                    ' No illegal entries
  362. 11240 '
  363. 11250 '
  364. 11260 '
  365. 11270 '
  366. 11280 '
  367. 12000 ' SUBROUTINE ** Replace INPUT instructions after illegal INPUT's corrected
  368. 12010 '
  369. 12020 PRINT FNCUR$(3,0);"  Enter the  first and last  names of the  person"
  370. 12030 PRINT "  whose address  and telephone number you want to"
  371. 12040 PRINT FNCLLN$;"  find."
  372. 12050 RETURN
  373. 12060 '
  374. 12070 '
  375. 12080 '
  376. 12090 '
  377. 12100 '
  378. 20000 ' ** Error Traps ** (Ch. 10)
  379. 20010 '
  380. 20020 IF ERR <> 53 AND ERL <> 280 THEN 20220    ' Trap File not Found in line 280 (Ch. 10)
  381. 20030 PRINT CHR$(7)                ' Beep (Ch. 10)
  382. 20040 PRINT CL$                    ' Clear screen (Ch. 7)
  383. 20050 PRINT
  384. 20060 PRINT TAB(17);"***   Error   ***"
  385. 20070 PRINT:PRINT:PRINT:PRINT            ' 4 blank lines
  386. 20080 PRINT "There is no membership list on the diskette in B:."
  387. 20090 PRINT:PRINT:PRINT:PRINT            ' 4 blank lines
  388. 20100 PRINT TAB(5);"You can't search through or print a list"
  389. 20110 PRINT TAB(15);"that doesn't exist."
  390. 20120 PRINT:PRINT:PRINT:PRINT            ' 4 blank lines
  391. 20130 PRINT "Please press any key to return to the MAIN MENU."
  392. 20140 IF INKEY$ = "" THEN 20140            ' Wait for keypress (Ch. 7)
  393. 20150 RESUME 1170                ' Return to MAIN MENU
  394. 20160 '
  395. 20170 '
  396. 20180 '
  397. 20190 '
  398. 20200 '
  399. 20210 '
  400. 20220 ' Catch-all Error Trap (Ch. 10)
  401. 20230 '
  402. 20240 PRINT CHR$(7)                ' Beep (Ch. 10)
  403. 20250 PRINT CL$                    ' Clear screen (Ch. 7)
  404. 20260 PRINT:PRINT                ' 2 blank lines
  405. 20270 PRINT "You have generated error number";ERR
  406. 20280 PRINT "on line number";ERL;"."
  407. 20290 PRINT
  408. 20300 PRINT "Please write this fact down. Also write down ex-"
  409. 20310 PRINT "actly what you did before this error took place."
  410. 20320 PRINT
  411. 20330 PRINT "Ask a BASIC  programmer what the error means and" 
  412. 20340 PRINT "how to correct it."
  413. 20350 PRINT:PRINT                ' 2 blank lines
  414. 20360 PRINT "Please press any key to return to the MAIN MENU."
  415. 20370 IF INKEY$ = "" THEN 20370            ' Waiting for keypress (Ch. 7)
  416. 20380 RESUME 1170                ' Return to MAIN MENU
  417. the MAIN MENU."
  418. 20370 IF INKEY$ = "" THEN 20370            ' Waiting for keypress (Ch. 7)
  419. 20380 RESUME 1170                ' Return to M