ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

237 lines
6.3 KiB

  1. 5 RESET
  2. 9 PRINT TAB(21);
  3. 10 PRINT "DIRECTORY"
  4. 19 PRINT TAB(7);
  5. 20 PRINT "CHOOSE ONE OF THE FOLLOWING BY NUMBER:"
  6. 29 PRINT TAB(10);
  7. 30 PRINT "1. EXAMINE a record on file"
  8. 39 PRINT TAB(10);
  9. 40 PRINT "2. ADD a record to the file"
  10. 49 PRINT TAB(10);
  11. 50 PRINT "3. DELETE a record from the file"
  12. 59 PRINT TAB(10);
  13. 60 PRINT "4. PRINT OUT the entire file"
  14. 69 PRINT TAB(21);
  15. 70 INPUT "Input #: ",CHOICE
  16. 72 IF CHOICE<1 THEN 70
  17. 73 IF CHOICE>4 THEN 70
  18. 75 ON CHOICE GOTO 80, 120, 130, 170
  19. 80 MATCH=0
  20. 81 GOSUB 600
  21. 83 IF MATCH = 0 THEN 9
  22. 84 LAST.NAME$ = L$
  23. 85 FIRST.NAME$ = F$
  24. 86 STREET$ = S$
  25. 87 CITY$ = C$
  26. 88 STATE$ = ST$
  27. 89 ZIP$ = Z$
  28. 90 TELEPHONE$ = T$
  29. 92 GOSUB 300
  30. 93 IF MID$(RESPONSE$,1,1)="N" THEN 9
  31. 94 GOSUB 200
  32. 95 GOSUB 300
  33. 96 IF MID$(RESPONSE$,1,1)="Y" THEN 94
  34. 97 IF L$+F$ <>LAST.NAME$+FIRST.NAME$ THEN 112
  35. 99 OPEN "R",1,"DIRECTRY.BAS",104
  36. 100 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
  37. 101 LSET L$ = LAST.NAME$
  38. 102 LSET F$ = FIRST.NAME$
  39. 103 LSET S$ = STREET$
  40. 104 LSET C$ = CITY$
  41. 105 LSET ST$ = STATE$
  42. 106 LSET Z$ = ZIP$
  43. 107 LSET T$ = TELEPHONE$
  44. 108 PUT #1, RECORD.NUMBER
  45. 109 CLOSE #1
  46. 110 GOTO 9
  47. 112 PRINT "LAST AND FIRST NAMES MAY NOT BE CHANGED."
  48. 114 PRINT "YOUR MUST DELETE THE OLD RECORD AND THEN"
  49. 116 PRINT "ADD THE NEW ONE."
  50. 118 INPUT "PRESS RETURN TO CONTINUE",Y$
  51. 119 GOTO 9
  52. 120 GOSUB 200
  53. 122 GOSUB 300
  54. 124 IF MID$(RESPONSE$,1,1)="Y" THEN 120
  55. 126 GOSUB 400
  56. 128 GOTO 9
  57. 130 GOSUB 500
  58. 132 GOTO 9
  59. 170 OPEN "R", 1,"DIRECTRY.BAS",104
  60. 172 FIELD #1, 104 AS ENTIRE.RECORD$
  61. 174 LPRINT "DIRECTORY": LPRINT
  62. 176 GET #1
  63. 177 IF EOF(1)=-1 THEN 192
  64. 178 LPRINT MID$(ENTIRE.RECORD$,21,20)
  65. 179 LPRINT MID$(ENTIRE.RECORD$,1,20)
  66. 180 LPRINT MID$(ENTIRE.RECORD$,41,25)
  67. 182 LPRINT MID$(ENTIRE.RECORD$,66,20)
  68. 184 LPRINT MID$(ENTIRE.RECORD$,86,2)
  69. 186 LPRINT MID$(ENTIRE.RECORD$,88,5)
  70. 188 LPRINT MID$(ENTIRE.RECORD$,93,12)
  71. 189 LPRINT: LPRINT: LPRINT
  72. 190 GOTO 176
  73. 192 CLOSE #1
  74. 194 GOTO 9
  75. 200 REM ********** INPUT ROUTINE **********
  76. 202 PRINT CHR$(26)
  77. 204 GOSUB 244
  78. 206 PRINT TAB(21); "DIRECTORY"
  79. 208 PRINT TAB(12); "PLEASE SUPPLY THE FOLLOWING:"
  80. 210 GOSUB 244
  81. 212 PRINT TAB(8);
  82. 214 INPUT "Last Name: ",LAST.NAME$
  83. 216 PRINT TAB(8);
  84. 218 INPUT "First Name: ",FIRST.NAME$
  85. 219 GOSUB 700
  86. 220 PRINT TAB(8);
  87. 222 INPUT "Street Address: ",STREET$
  88. 224 PRINT TAB(8);
  89. 226 INPUT "City: ",CITY$
  90. 228 PRINT TAB(8);
  91. 230 INPUT "State (ex: NY): ",STATE$
  92. 232 PRINT TAB(8);
  93. 234 INPUT "Zip Code: ",ZIP$
  94. 236 PRINT TAB(8);
  95. 238 INPUT "Telephone (###-####): ",TELEPHONE$
  96. 240 GOSUB 244
  97. 242 RETURN
  98. 244 FOR I = 1 TO 5
  99. 246 PRINT
  100. 248 NEXT I
  101. 250 RETURN
  102. 300 REM ************* OUTPUT ROUTINE **********
  103. 302 PRINT CHR$(26)
  104. 304 GOSUB 336
  105. 306 PRINT TAB(21);"DIRECTORY"
  106. 308 GOSUB 336
  107. 310 PRINT TAB(8); "Last Name: "; LAST.NAME$
  108. 312 PRINT TAB(8); "First Name: "; FIRST.NAME$
  109. 314 PRINT TAB(8); "Street Address: "; STREET$
  110. 316 PRINT TAB(8); "City: "; CITY$
  111. 318 PRINT TAB(8); "State: "; STATE$
  112. 320 PRINT TAB(8); "Zip Code: "; ZIP$
  113. 322 PRINT TAB(8); "Tel (###-####): "; TELEPHONE$
  114. 324 GOSUB 336
  115. 325 REM PRINT "DO YOU WISH TO MAKE ANY CHANGES"; RESPONSE$
  116. 326 INPUT "DO YOU WISH TO MAKE ANY CHANGES"; RESPONSE$
  117. 328 IF MID$(RESPONSE$,1,1) = "Y" THEN 334
  118. 330 IF MID$(RESPONSE$,1,1) <> "N" THEN 326
  119. 332 RETURN
  120. 334 GOTO 332
  121. 336 FOR I = 1 TO 5
  122. 338 PRINT
  123. 340 NEXT I
  124. 342 RETURN
  125. 400 REM ************* ADD ROUTINE *************
  126. 402 PRINT CHR$(26)
  127. 404 MARKER = 0
  128. 406 FULL.NAME$ = LAST.NAME$ + FIRST.NAME$
  129. 408 OPEN "R", 1, "DIRECTRY.BAS", 104
  130. 410 OPEN "R", 2, "UPDATE.BAS", 104
  131. 412 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
  132. 414 FIELD #2,20 AS A$,20 AS B$,25 AS D$,20 AS E$,2 AS G$,5 AS H$,12 AS I$
  133. 416 GET #1
  134. 418 IF EOF(1) = -1 THEN 452
  135. 420 IF MARKER = 1 THEN 434
  136. 422 GOSUB 462
  137. 424 IF F.N$ <> FULL.NAME$ THEN 434
  138. 426 PRINT TAB(11);"THAT RECORD IS ALREADY ON FILE."
  139. 428 INPUT "PRESS RETURN TO CONTINUE.",Y$
  140. 429 CLOSE #1: CLOSE #2
  141. 430 KILL "UPDATE.BAS"
  142. 432 GOTO 460
  143. 434 LSET A$ = L$
  144. 436 LSET B$ = F$
  145. 438 LSET D$ = S$
  146. 440 LSET E$ = C$
  147. 442 LSET G$ = ST$
  148. 444 LSET H$ = Z$
  149. 446 LSET I$ = T$
  150. 448 PUT #2
  151. 450 GOTO 416
  152. 452 IF MARKER = 1 THEN 455
  153. 454 GOSUB 466
  154. 455 CLOSE #1: CLOSE #2
  155. 456 KILL "DIRECTRY.BAS"
  156. 458 NAME "UPDATE.BAS" AS "DIRECTRY.BAS"
  157. 460 CLOSE #1: CLOSE #2: RETURN
  158. 462 IF F.N$ <=FULL.NAME$ THEN 482
  159. 466 LSET A$ = LAST.NAME$
  160. 468 LSET B$ = FIRST.NAME$
  161. 470 LSET D$ = STREET$
  162. 472 LSET E$ = CITY$
  163. 474 LSET I$ = TELEPHONE$
  164. 476 LSET H$ = ZIP$
  165. 478 LSET I$ = TELEPHONE$
  166. 480 PUT #2: MARKER = 1
  167. 482 RETURN
  168. 500 REM *********** DELETE ROUTINE *********
  169. 502 MARKER = 0
  170. 504 PRINT CHR$(26)
  171. 506 PRINT TAB(7);
  172. 508 PRINT "FOR THE RECORD THAT YOU WISH TO DELETE:"
  173. 510 PRINT TAB(15);
  174. 516 INPUT "FIRST NAME: ",FIRST.NAME$
  175. 517 GOSUB 700
  176. 518 FULL.NAME$ = LAST.NAME$ + FIRST.NAME$
  177. 520 OPEN "R", 1, "DIRECTRY.BAS", 104
  178. 522 OPEN "R", 2, "UPDATE.BAS", 104
  179. 524 FIELD #1, 40 AS F.N$, 64 AS REST$
  180. 526 FIELD #2, 40 AS F.N2$, 64 AS REST2$
  181. 528 GET #1
  182. 530 IF EOF(1)=-1 THEN 546
  183. 532 IF MARKER = 0 THEN IF F.N$ = FULL.NAME$ THEN 542
  184. 534 LSET F.N2$ = F.N$
  185. 536 LSET REST2$ = REST$
  186. 538 PUT #2
  187. 540 GOTO 528
  188. 542 MARKER = 1
  189. 544 GOTO 528
  190. 546 IF MARKER = 1 THEN 555
  191. 548 PRINT: PRINT: PRINT TAB(17);
  192. 550 PRINT "RECORD NOT ON FILE."
  193. 552 PRINT: PRINT TAB(14);
  194. 554 INPUT "PRESS RETURN TO CONTINUE",Y$
  195. 555 CLOSE #1: CLOSE #2
  196. 556 KILL "DIRECTRY.BAS"
  197. 558 NAME "UPDATE.BAS" AS "DIRECTRY.BAS"
  198. 560 CLOSE #1: CLOSE #2: RETURN
  199. 600 REM ********** SEARCH ROUTINE **********
  200. 602 PRINT CHR$(26)
  201. 604 OPEN "R", 1, "DIRECTRY.BAS", 104
  202. 606 FIELD #1,20 AS L$,20 AS F$,25 AS S$,20 AS C$,2 AS ST$,5 AS Z$,12 AS T$
  203. 608 GOSUB 652
  204. 610 PRINT TAB(12);
  205. 612 PRINT "PLEASE SUPPLY THE FOLLOWING:"
  206. 614 GOSUB 652
  207. 616 PRINT TAB(15);
  208. 618 INPUT "LAST NAME: ";LAST.NAME$
  209. 620 PRINT TAB(15);
  210. 622 INPUT "FIRST NAME: ";FIRST.NAME$
  211. 623 GOSUB 700
  212. 624 RECORD.NUMBER = 1
  213. 626 GET #1, RECORD.NUMBER
  214. 628 IF L$ <> LAST.NAME$ THEN 634
  215. 630 IF F$ <> FIRST.NAME$ THEN 634
  216. 631 MATCH = 1
  217. 632 CLOSE #1: RETURN
  218. 634 IF EOF(1) <> -1 THEN 648
  219. 636 GOSUB 652
  220. 638 PRINT TAB(17);
  221. 640 PRINT "RECORD NOT ON FILE."
  222. 642 PRINT: PRINT TAB(14);
  223. 644 PRINT "PRESS RETURN TO CONTINUE.",Y$
  224. 646 GOTO 632
  225. 648 RECORD.NUMBER = RECORD.NUMBER + 1
  226. 650 GOTO 626
  227. 652 FOR P = 1 TO 6
  228. 654 PRINT
  229. 656 NEXT P
  230. 658 RETURN
  231. 700 SPACER$=" "
  232. 710 LAST.NAME$ = LAST.NAME$+SPACER$
  233. 720 LAST.NAME$ = MID$(LAST.NAME$,1,20)
  234. 730 FIRST.NAME$ = FIRST.NAME$+SPACER$
  235. 740 FIRST.NAME$ = MID$(FIRST.NAME$,1,20)
  236. 750 RETURN