home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib27a.dsk / FEBRUARY.1986 / NIBBLE.REMINDER.bas < prev   
BASIC Source File  |  2023-02-26  |  27KB  |  499 lines

  1. 10  REM  **********************
  2. 20  REM  *  NIBBLE.REMINDER   *
  3. 30  REM  * BY MARK R. CRAVEN  *
  4. 40  REM  * COPYRIGHT (C) 1986 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * CONCORD, MA  01742 *
  7. 70  REM  **********************
  8. 80  TEXT : HOME 
  9. 90  LET IN$ = "X": REM  INITIATE INPUT VARIABLE
  10. 100  GOSUB 4770
  11. 110  DIM L$(100,7): REM  LOANER DATA
  12. 120  DIM T$(100,7): REM  TEMP ARRAY FOR INPUT BEFORE DISK WRITE
  13. 130  FOR I = 1 TO 39:L$ = L$ +"=":UL$ = UL$ + CHR$(95): NEXT 
  14. 140  POKE 963,0: REM  ONERR FLAG
  15. 150 D$ =  CHR$(4)
  16. 160 F$ = "REMINDER.FILE": REM  TEXT FILE NAME
  17. 170  PRINT 
  18. 180 EF = 1: ONERR  GOTO 1240: REM  NO DATA FILE
  19. 190  PRINT : PRINT D$;"OPEN"F$
  20. 200  PRINT D$;"READ"F$
  21. 210  INPUT NR$
  22. 220  PRINT D$;"CLOSE"F$
  23. 230  POKE 216,0
  24. 240  REM  ** READ MENU DATA **
  25. 250  FOR I = 1 TO 5: READ MU$(0,I): NEXT : REM  MAIN MENU
  26. 260  READ V%(0): READ H%(0): REM  MAIN MENU
  27. 270  FOR I = 1 TO 8: READ MU$(1,I): NEXT : REM  ADD DATA MENU
  28. 280  READ V%(1): READ H%(1)
  29. 290  FOR I = 1 TO 7: READ T%(I): READ L%(I): NEXT : REM  INPUT TABS , INPUT LENGTH
  30. 300  FOR I = 1 TO 3: READ MU$(2,I): NEXT : REM  DISK MENU
  31. 310  READ V%(2): READ H%(2): REM  TABS FOR DISK MENU
  32. 320  FOR I = 1 TO 4: READ MU$(3,I): NEXT 
  33. 330  READ V%(3): READ H%(3)
  34. 340  FOR J = 940 TO 962: READ I: POKE J,I: NEXT J: REM   DISK INPUT ROUTINE
  35. 350  FOR I = 1 TO 4: READ MU$(4,I): NEXT 
  36. 360  READ V%(4): READ H%(4): REM  PRINTER MENU
  37. 370  FOR I = 1 TO 6: READ P$(I): NEXT : REM  PRINTER HEADINGS
  38. 380  GOSUB 4900: REM  READ IN ML CURSOR BAR ROUTINE
  39. 390  GOTO 430
  40. 400  REM  ** CENTER TEXT **
  41. 410  HTAB 20 - LEN(X$)/2: PRINT X$: RETURN 
  42. 420  REM  ** MAIN MENU **
  43. 430 X$ = "** MAIN MENU - NIBBLE REMINDER **"
  44. 440  POKE 963,1: REM  ONERR FLAG
  45. 450 R = 16:N = 5: REM  RIGHT MARGIN, # OF MENU ITEMS
  46. 460 M1 = 0:M2 = 1
  47. 470  REM  ** CURSOR BAR MENU **
  48. 480  TEXT : HOME : GOSUB 410: PRINT : PRINT L$
  49. 490  VTAB V%(M1)
  50. 500  FOR I = 1 TO N: HTAB H%(M1): PRINT MU$(M1,I): PRINT : NEXT 
  51. 510  IF M1 = 1  THEN  RETURN 
  52. 520  VTAB 22: PRINT L$;
  53. 530  VTAB 23: HTAB 1: INVERSE : PRINT "<-";: NORMAL : PRINT " ";: INVERSE : PRINT "->";: NORMAL : PRINT " TO SELECT .... ";: INVERSE : PRINT "RETURN";: NORMAL : PRINT " TO EXECUTE"
  54. 540  VTAB 24: PRINT L$;
  55. 550  CALL 768,V%(M1),2 *N +V%(M1) -2,H%(M1) -3,R +H%(M1)
  56. 560 LINE = ( PEEK(4) +1)/2
  57. 570  ON M1 +1 GOTO 590,600,610,620,630,650
  58. 580  REM  MAIN MENU CHOICES
  59. 590  ON LINE GOTO 1360,2360,3410,3610,3900: REM  MAIN MENU CHOICES
  60. 600  REM  NO MENU FOR M1=2
  61. 610  ON LINE GOTO 730,1360,4880: REM  DISK MENU (MU$(2,X))
  62. 620  ON LINE GOTO 430,2400,3350,3360: REM  LIST/SEARCH DATA MENU    M1=3
  63. 630  ON LINE GOTO 3370,640,640,3390: REM  PRINTER/SCREEN OPTION M1=4
  64. 640  ON LINE -1 GOSUB 2930,2970: GOTO 3920: REM  SET CPI THEN PRINT
  65. 650  IF LINE = 8  THEN 2360: REM  M1=5
  66. 660  GOTO 2470: REM  M1=5 - SEARCH
  67. 670  REM  ** DISK ROUTINES **
  68. 680 NR =  VAL(NR$) +T%
  69. 690 NR$ =  STR$(NR)
  70. 700  HOME 
  71. 710 EF = 2: ONERR  GOTO 4640
  72. 720 M1 = 2:M2 = 1:N = 3:R = 27: GOTO 480: REM  CURSOR MENU
  73. 730  GOSUB 1220: REM  HEADING
  74. 740  REM  ** UPDATE FILE **
  75. 750  GOTO 1100
  76. 760  PRINT D$;"OPEN"F$
  77. 770  PRINT D$;"WRITE"F$
  78. 780  PRINT NR$
  79. 790  PRINT D$
  80. 800  PRINT D$;"CLOSE"F$
  81. 810  PRINT D$;"APPEND"F$
  82. 820  PRINT D$;"WRITE"F$
  83. 830  FOR I = 1 TO T%
  84. 840  FOR J = 1 TO 7
  85. 850  PRINT T$(I,J): NEXT J,I
  86. 860  PRINT D$
  87. 870  PRINT D$;"CLOSE"F$
  88. 880  POKE 216,0
  89. 890  GOTO 430: REM  MAIN MENU
  90. 900  REM  ** READ DATA FILE **
  91. 910 EF = 3: ONERR  GOTO 4640
  92. 920  PRINT : PRINT D$;"OPEN"F$
  93. 930  PRINT D$;"READ"F$
  94. 940  CALL 940:IN$ =  MID$ (IN$,1)
  95. 950 NR$ = IN$
  96. 960  FOR I = 1 TO  VAL(NR$)
  97. 970  FOR J = 1 TO 7
  98. 980  CALL 940:IN$ =  MID$ (IN$,1)
  99. 990 L$(I,J) = IN$
  100. 1000  NEXT J,I
  101. 1010 IN$ = ""
  102. 1020  PRINT D$
  103. 1030  PRINT D$;"CLOSE"F$
  104. 1040 RF = 1: REM  READ FLAG
  105. 1050  POKE 216,0
  106. 1060  RETURN 
  107. 1070  TEXT : HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN FILE...": VTAB 23: PRINT "PRESS <RETURN> TO CONTINUE...";: POKE  -16368,0: GET X$: GOTO 430
  108. 1080  REM  ** REWRITE FILE **
  109. 1090  GOSUB 1220: REM  HEADING
  110. 1100 EF = 4: ONERR  GOTO 4640
  111. 1110  PRINT : PRINT D$;"OPEN";F$
  112. 1120  PRINT D$;"WRITE"F$
  113. 1125 NR$ =  STR$(NR)
  114. 1127  IF  LEN(NR$) < >3  THEN NR$ = "0" +NR$: GOTO 1127
  115. 1130  PRINT NR$
  116. 1140  IF  VAL(NR$) = 0  THEN 1180
  117. 1150  FOR I = 1 TO  VAL(NR$)
  118. 1160  FOR J = 1 TO 7
  119. 1170  PRINT L$(I,J): NEXT J: NEXT I
  120. 1180  PRINT D$
  121. 1190  PRINT D$;"CLOSE"F$
  122. 1200  POKE 216,0
  123. 1210 ED = 0:DL = 0: GOTO 430: REM  MAIN MENU
  124. 1220  HOME :X$ = "** SAVE TO DISK **": GOSUB 410: PRINT : PRINT L$
  125. 1230  VTAB 12: HTAB 5: PRINT "DO NOT INTERRUPT...": RETURN 
  126. 1240  IF  PEEK(222) < >5  THEN 4640: REM  NOT 'END OF DATA ERROR'
  127. 1250  PRINT D$;"WRITE"F$
  128. 1260  PRINT "000"
  129. 1270  PRINT D$;"CLOSE"F$
  130. 1280  POKE 216,0: GOTO 250
  131. 1290  IF  PEEK(222) < >5  THEN 4640: REM  NOT 'END OF DATA' ERROR
  132. 1300  PRINT D$;"OPEN";F1$
  133. 1310  PRINT D$;"WRITE"F1$
  134. 1320  PRINT "000"
  135. 1330  PRINT D$;"CLOSE"F1$
  136. 1340  GOTO 340
  137. 1350  REM  ** ENTER DATA **
  138. 1360 T% = 0: REM  INPUT RECORD COUNTER FOR DISK WRITE
  139. 1370  TEXT : HOME :X$ = "**" +MU$(0,M2) +"**": GOSUB 410: PRINT : PRINT L$
  140. 1380 M1 = 1:M2 = 1:N = 7: GOSUB 490: REM  PRINT INPUT PROMPTS
  141. 1390  VTAB 21: PRINT L$;
  142. 1400  VTAB 22: HTAB 1: PRINT " <RTN> TO ACCEPT      <ESC> TO BACK UP": REM  6 SPACES
  143. 1410  PRINT " ^Q TO QUIT    ";: INVERSE : PRINT "<--";: NORMAL : PRINT " TO ERASE CHARACTER";
  144. 1420  ON ED GOTO 1440
  145. 1430  VTAB 3: HTAB 16: PRINT "ENTRY # ";T% +1: POKE 35,24: VTAB 20: HTAB 15: PRINT "RECORD # " VAL(NR$) +T% +1" ";: CALL  -868: POKE 35,20
  146. 1440  VTAB 24: CALL  -868
  147. 1450  FOR I = 1 TO 7
  148. 1460  VTAB 24: HTAB 1: CALL  -868: IF I = 5  THEN 1800: REM  INPUT DATES
  149. 1470  IF I >5  THEN 1810
  150. 1480  VTAB V%(M1) +2 *(I -1): REM  PLACE INPUT LINE VERT.
  151. 1490  HTAB T%(I)
  152. 1500  IF ED  THEN 1520
  153. 1510  PRINT  LEFT$(UL$,L%(I));: HTAB T%(I): REM  SET HORIZONTAL INPUT LINE
  154. 1520 I$ = "":I$(I) = "": REM  NULL INPUT STRINGS
  155. 1530  POKE  -16368,0: GET I$: REM  INPUT A CHARACTER
  156. 1540  IF I$ > CHR$(31)  THEN 1760
  157. 1550  REM  ** CHECK FOR <ESC> **
  158. 1560  IF I$ < > CHR$(27)  THEN 1620
  159. 1570  IF I = 1  AND ED = 1  THEN  PRINT  CHR$(7);: HTAB T%(I): GOTO 1490: REM  BACKUP WITH NO PLACE TO GO?
  160. 1580  IF I = 1  THEN  PRINT  CHR$(7);: HTAB T%(I): CALL  -868: GOTO 1490: REM  BACKUP WITH NO PLACE TO GO?
  161. 1590  IF ED  THEN  HTAB T%(I):I = I -1 *(I >1): GOTO 1480: REM  BACKUP TO LAST INPUT
  162. 1600  HTAB T%(I): CALL  -868:I = I -1 *(I >1): GOTO 1480: REM  BACKUP TO LAST INPUT
  163. 1610  REM  ** CHECK FOR <-- **
  164. 1620  IF I$ < > CHR$(8)  THEN 1670
  165. 1630  IF I$(I) = ""  THEN  PRINT  CHR$(7);: GOTO 1480
  166. 1640  IF  LEN(I$(I)) = 1  THEN I$(I) = "": GOTO 1490: REM  <-- WITH NO PLACE TO GO
  167. 1650  POKE 36, PEEK(36) -1: PRINT  CHR$(95); CHR$(8);:I$(I) =  LEFT$(I$(I), LEN(I$(I)) -1): GOTO 1530: REM  <--
  168. 1660  REM  ** CHECK FOR <RTN> **
  169. 1670  IF I$ < > CHR$(13)  THEN 1720
  170. 1680  IF ED  AND  LEN(I$(I)) <1  THEN I$(I) = L$(II,I)
  171. 1690  IF ED  THEN 2180: REM  ACCEPT OLD, ADVANCE TO NEXT FIELD
  172. 1700  PRINT I$;: CALL  -868:I$ = "": NEXT I: REM  ADVANCE TO NEXT FIELD
  173. 1710  REM  ** CHECK FOR ^ CHAR **
  174. 1720  IF I$ < > CHR$(17)  THEN 1750
  175. 1730  IF ED = 1  THEN  RETURN : REM  QUIT FROM EDIT ROUTINE
  176. 1740  GOTO 2330: REM  ^Q=QUIT TO MENU OR DISK
  177. 1750  IF I$ < CHR$(32)  THEN  PRINT  CHR$(7);: GOTO 1530: REM  CONTROL CHARACTERS?
  178. 1760  IF  LEN(I$(I)) = L%(I)  THEN  VTAB V%(M1) +2 *(I -1): PRINT  CHR$(7);: HTAB 40: VTAB  PEEK(37) +1: PRINT " ";: HTAB 40: VTAB  PEEK(37): GOTO 1530: REM  NO INPUT OVERFLOW
  179. 1770  PRINT I$;:HP =  POS(0):I$(I) = I$(I) +I$: ON L%(I) =  LEN(I$(I)) GOTO 1760: PRINT  LEFT$(UL$,L%(I) - LEN(I$(I)));" ";: VTAB  PEEK(37): HTAB HP +1: REM  DISPLAY AND BUILD INPUT STRING
  180. 1780  GOTO 1530
  181. 1790  REM  ** INPUT DATES **
  182. 1800  VTAB 23: HTAB 12: CALL  -868: PRINT  CHR$(7);: REM  BEEP FOR DATE FORMAT
  183. 1810  VTAB 24: HTAB 6: FLASH : PRINT "**";: NORMAL : PRINT " DATE FORMAT = MM/DD/YY ";: FLASH : PRINT "**";: NORMAL 
  184. 1820 I$(I) = "":I$ = ""
  185. 1830  VTAB V%(M1) +2 *(I -1): REM  PLACE INPUT LINE VERT.
  186. 1840  HTAB T%(I): IF ED  THEN  PRINT  LEFT$(D1$(I),2) SPC( 1) MID$ (D1$(I),3,2) SPC( 1) RIGHT$(D1$(I),2);: HTAB T%(I): GOTO 1860
  187. 1850  PRINT  LEFT$(UL$,L%(I));: HTAB T%(I): REM  SET HORIZONTAL INPUT LINE
  188. 1860  HTAB T%(I) +2: PRINT "/";: HTAB T%(I) +5: PRINT "/";: HTAB T%(I)
  189. 1870  IF PL  THEN PL = 0: RETURN 
  190. 1880  FOR J = 1 TO 3: REM  MO,DAY,YR
  191. 1890  FOR K = 1 TO 2: REM  2 DIGITS PER MO,DAY,YR
  192. 1900 T = T%(I) +3 *(J -1) +(K -1): REM  T=TAB POSITON FOR INPUT
  193. 1910  IF K = 1  AND ED  THEN  HTAB T: GOTO 1930
  194. 1920  IF K = 1  THEN  HTAB T: PRINT  CHR$(95); CHR$(95);
  195. 1930  POKE  -16368,0: HTAB T: GET I$: REM  INPUT A CHARACTER
  196. 1940  IF I$ =  CHR$(13)  AND ED  AND J *K >1  THEN PL = 1: GOSUB 1840: GOTO 1880
  197. 1950  IF I$ =  CHR$(13)  AND ED  THEN I$(I) = D1$(I):PL = 1: GOSUB 1840: GOTO 2180: REM  NEXT INPUT
  198. 1960  IF I$ =  CHR$(13)  AND  LEN(I$(I)) >0  AND  LEN(I$(I)) <6  THEN  PRINT  CHR$(7);: GOTO 1800
  199. 1970  IF I$ =  CHR$(13)  THEN I$(I) = "": GOTO 2180: REM  NEXT DATE INPUT - THIS ONE NULL
  200. 1980  IF I$ =  CHR$(27)  AND ED  THEN  HTAB T%(I): PRINT L$(II,I);:I = I -1:J = 3:K = 2: NEXT K,J: GOTO 1460
  201. 1990  IF I$ =  CHR$(27)  THEN  HTAB T%(I): CALL  -868:I = I -1:J = 3:K = 2: NEXT K,J: GOTO 1460
  202. 2000  IF I$ =  CHR$(8)  AND J = 1  AND K = 1  THEN  PRINT  CHR$(7);:I$(I) = "": GOTO 1930
  203. 2010  IF I$ =  CHR$(8)  AND K = 1  AND J = 2  THEN J = 1: HTAB T: PRINT  CHR$(95); CHR$(95);:I$(I) = "": GOTO 1900
  204. 2020  IF I$ =  CHR$(8)  AND K = 1  AND J = 3  THEN J = 2: HTAB T: PRINT  CHR$(95); CHR$(95);:I$(I) =  LEFT$(I$(I),2): GOTO 1900
  205. 2030  IF I$ =  CHR$(8)  AND K = 2  AND J >1  THEN K = K -1: HTAB T -1:I$(I) =  LEFT$(I$(I),2 *J -2): PRINT  CHR$(95); CHR$(95);: GOTO 1900
  206. 2040  IF I$ =  CHR$(8)  AND K = 2  THEN K = K -1: HTAB T -1:I$(I) = "": PRINT  CHR$(95); CHR$(95);: GOTO 1900
  207. 2050  IF I$ =  CHR$(17)  THEN 2330: REM  ^Q=QUIT TO MAIN MENU OR DISK
  208. 2060  IF I$ <"0"  OR I$ >"9"  THEN 1930
  209. 2070  IF I$ < CHR$(32)  THEN  PRINT  CHR$(7);: GOTO 1930
  210. 2080  HTAB T%(I) +3 *(J -1) +(K -1): PRINT I$; CHR$(21);
  211. 2090 I$(I) = I$(I) +I$: REM  BUILD DATE STRING
  212. 2100  NEXT K
  213. 2110  IF J >1  THEN 2140
  214. 2120  IF  VAL( LEFT$(I$(I),2)) <1  OR  VAL( LEFT$(I$(I),2)) >12  THEN  PRINT  CHR$(7);:I$(I) = "": HTAB T%(I): GOTO 1890
  215. 2130  GOTO 2160
  216. 2140  IF  VAL( MID$ (I$(I),3,2)) >31  OR  VAL( MID$ (I$(I),3,2)) <1  THEN  PRINT  CHR$(7);:I$(I) =  LEFT$(I$(I),2): HTAB T%(I): GOTO 1890
  217. 2150  IF ED  AND J = 3  AND I = 2  THEN PL = 1:I$(I) =  LEFT$(I$(I),6): GOTO 1900
  218. 2160  NEXT J
  219. 2170  IF ED  THEN  HTAB T: POKE  -16368,0: GET X$: IF X$ < > CHR$(13)  THEN 2170
  220. 2180  NEXT I
  221. 2190  IF ED  THEN 2210
  222. 2200 RF = 0: REM  CLEAR READ FLAG--NEW DATA--MUST UPDATE READ
  223. 2210  FOR I = 5 TO 7: IF I$(I) = ""  THEN 2240
  224. 2220  IF  LEN(I$(I)) = 8  AND ED  THEN 2240
  225. 2230 I$(I) =  LEFT$(I$(I),2) +"/" + MID$ (I$(I),3,2) +"/" + RIGHT$(I$(I),2)
  226. 2240  NEXT 
  227. 2250 T% = T% +1: REM  RECORD COUNTER
  228. 2260  IF ED  THEN  RETURN : REM  ENTRY COMPLETE FOR THIS ITEM
  229. 2270  REM  ** STORE TEMP VAR. **
  230. 2280  FOR I = 1 TO 7
  231. 2290 L$(T% + VAL(NR$),I) = I$(I): NEXT 
  232. 2300  HOME 
  233. 2310  GOTO 1370
  234. 2320  REM  ** CHECK # OF INPUTS *
  235. 2330  IF T% = 0  THEN 430
  236. 2340  GOTO 680: REM  DISK WRITE MENU
  237. 2350  REM  ** LIST/SEARCH DATA **
  238. 2360  IF  VAL(NR$) = 0  THEN  GOTO 1070: REM  NO DATA MESSAGE
  239. 2370  TEXT : HOME :UN = 0:DS = 0: REM  UN-RETURNED ITEM FLAG FROM LIST/SEARCH
  240. 2380 M1 = 3:M2 = 1:N = 4:X$ = "** " +MU$(0,2) +" **": GOSUB 410: PRINT : PRINT L$
  241. 2390 R = 27: GOTO 490
  242. 2400  TEXT : HOME :K = 0: REM  SEARCH COUNTER
  243. 2410 X$ = "** " +MU$(3,2) +"   **": GOSUB 410: PRINT : PRINT L$
  244. 2420  IF UN  THEN LINE = 7: GOTO 2480
  245. 2430  VTAB V%(1)
  246. 2440  FOR I = 1 TO 8: HTAB 20 - LEN(MU$(1,I))/2: PRINT MU$(1,I): PRINT : NEXT 
  247. 2450 M1 = 5:M2 = 1:H%(5) = 10:V%(5) = 5:N = 8: GOTO 520
  248. 2460  REM  **FIELD= MU$(1,LINE) **
  249. 2470  IF X$ =  CHR$(13)  THEN 2690
  250. 2480  VTAB 2: CALL  -958: VTAB 3: HTAB 4: PRINT "SEARCH FIELD = ";MU$(1,LINE): VTAB 4: HTAB 1: PRINT L$: POKE 34,4: VTAB 19: PRINT L$
  251. 2490  PRINT  TAB( 5)"<";: INVERSE : PRINT "RTN";: NORMAL : PRINT "> BACK TO SEARCH MENU"
  252. 2500  IF UN  THEN 2610
  253. 2510  INVERSE : PRINT "^L";: NORMAL : PRINT " =LIST ALL - OR - ENTER SEARCH STRING";
  254. 2520  IF LINE >4  THEN  VTAB 24: HTAB 11: PRINT "DATE FORMAT= MM/DD/YY";
  255. 2530  VTAB 23: HTAB 5: PRINT "==> "; LEFT$(UL$,25);" <==";
  256. 2540  POKE 34,22: POKE 35,23: POKE 33,25: POKE 32,8: REM  SET INPUT WINDOW TO PREVENT SCROLLING
  257. 2550  VTAB 23: HTAB 1
  258. 2560  CALL 940:IN$ =  MID$ (IN$,1)
  259. 2570 NI$ = IN$
  260. 2580  IF IN$ =  CHR$(12)  THEN  POKE 35,24: POKE 34,4: POKE 32,0: POKE 33,40: VTAB 23: HTAB 1: CALL  -958: GOSUB 2840: GOTO 2520: REM  LIST ALL DATA
  261. 2590  IF  LEN(IN$) = 0  THEN 2400: REM  FIELD CHOICE MENU
  262. 2600  REM  * LOOK FOR STRING *
  263. 2610  IF   NOT RF  THEN  POKE 35,24: POKE 34,4: POKE 32,0: POKE 33,40: VTAB 23: HTAB 1: CALL  -958: GOSUB 910:IN$ = NI$
  264. 2620  POKE 35,24: POKE 34,4: POKE 32,0: POKE 33,40: VTAB 19: CALL  -958: PRINT L$: PRINT 
  265. 2630  PRINT " <";: INVERSE : PRINT "P";: NORMAL : PRINT ">= PRINT SCREEN" TAB( 22)"<";: INVERSE : PRINT "RTN";: NORMAL : PRINT ">= NEXT MATCH": PRINT  TAB( 13)"<";: INVERSE : PRINT "ESC";: NORMAL : PRINT "> TO QUIT"
  266. 2640  POKE 35,17
  267. 2650  HOME : FOR J = 1 TO  VAL(NR$)
  268. 2660  IF UN = 1  AND  LEN(L$(J,7)) = 0  THEN IN$ = L$(J,7):Z = J:K = K +1: GOTO 2700
  269. 2670  IF UN  THEN 2690
  270. 2680  IF  LEFT$(L$(J,LINE), LEN(IN$)) = IN$  THEN K = K +1:Z = J: GOTO 2700
  271. 2690  NEXT : GOTO 2790
  272. 2700  POKE 34,6: VTAB 3 +(UN = 0) +DS: HTAB 16: PRINT " ";Z" OF " VAL(NR$)" ";: POKE 34,4: VTAB V%(1): FOR I = 1 TO 7: IF I = LINE  THEN  INVERSE 
  273. 2710  VTAB 5 +2 *(I -1): HTAB H%(1): PRINT MU$(1,I)" - ";
  274. 2720  NORMAL 
  275. 2730  PRINT  TAB( T%(I))L$(J,I);: CALL  -868: NEXT : REM  DISPLAY
  276. 2740  VTAB 23: HTAB 20: POKE  -16368,0: GET X$
  277. 2750  IF X$ =  CHR$(27)  THEN 2360
  278. 2760  IF X$ = "P"  OR X$ =  CHR$(112)  THEN  GOSUB 4310: GOTO 2700: REM  PRINT SCREEN
  279. 2770  IF X$ =  CHR$(13)  OR X$ =  CHR$(21)  THEN 2690: REM  NEXT MATCH
  280. 2780  GOTO 2740
  281. 2790  IF K = 0  THEN  HOME : VTAB 10: HTAB 10: PRINT "NO MATCH FOUND"
  282. 2800  POKE 35,24: VTAB 20: HTAB 1: CALL  -958: VTAB 22: HTAB 1: PRINT "PRESS <RETURN> TO CONTINUE...";: POKE  -16368,0: GET X$: HTAB 1: CALL  -868: POKE 35,17
  283. 2810  IF UN  THEN LINE = 1
  284. 2820  GOTO 2360: REM  WAS 3015
  285. 2830  REM  * LIST ALL DATA *
  286. 2840  IF   NOT RF  THEN  GOSUB 910: REM  READ FILE
  287. 2850  POKE 35,17: VTAB 5: HOME 
  288. 2860  FOR I = 1 TO  VAL(NR$)
  289. 2870  PRINT  TAB( 5)I"> "L$(I,LINE)
  290. 2880  IF  PEEK(37) = 15  THEN  VTAB 17: HTAB 1: PRINT "PRESS <RETURN> TO CONTINUE...";: POKE  -16368,0: GET X$: POKE 35,17: HOME 
  291. 2890  NEXT 
  292. 2900  REM 
  293. 2910  RETURN 
  294. 2920  REM  * SET PRINTER 10CPI *
  295. 2930 NN$ =  CHR$(27) +"N": REM  CODE FOR IMAGEWRITER AND PROWRITER
  296. 2940 PR = 0
  297. 2950  RETURN 
  298. 2960  REM  * SET PRINTER 17 CPI *
  299. 2970 NN$ =  CHR$(27) +"Q": REM  CODE FOR IMAGEWRITER AND PROWRITER
  300. 2980 PR = 1
  301. 2990  RETURN 
  302. 3000  REM  ** SCROLL DATA **
  303. 3010  TEXT : HOME 
  304. 3020 X$ = "** " +MU$(3, PEEK(963)) +" **": GOSUB 410: PRINT : PRINT L$
  305. 3030  IF   NOT RF  THEN  GOSUB 910: REM  READ FILE IF NOT ALREADY READ
  306. 3040 N = 7:M1 = 1: GOSUB 490: REM  PRINT FIELDS
  307. 3050  IF DL  THEN 3090
  308. 3060  VTAB 20: PRINT L$
  309. 3070  VTAB 22: HTAB 5: PRINT "<";: INVERSE : PRINT "RTN";: NORMAL : PRINT "> OR ";: INVERSE : PRINT "->";: NORMAL : PRINT " TO SCROLL FORWARD"
  310. 3080  VTAB 23: INVERSE : PRINT "<-";: NORMAL : PRINT " TO REVERSE SCROLL";: PRINT "    <";: INVERSE : PRINT "ESC";: NORMAL : PRINT "> FOR MENU"
  311. 3090  FOR I = 1 TO  VAL(NR$)
  312. 3100  FOR J = 1 TO 7
  313. 3110  VTAB 5 +2 *(J -1): HTAB T%(J) -3: PRINT " - ";L$(I,J);: CALL  -868: REM  DISPLAY DATA
  314. 3120  NEXT J
  315. 3130  VTAB 3: HTAB 16: PRINT " ";I" OF " VAL(NR$)" ";
  316. 3140  VTAB 24: HTAB 19 -3 *ED: GET X$: POKE  -16368,0
  317. 3150  IF I =  VAL(NR$)  THEN  IF X$ =  CHR$(13)  OR X$ =  CHR$(21)  OR X$ =  CHR$(10)  THEN I = 1: GOTO 3100: REM  BACK TO BEGINNING
  318. 3160  IF X$ =  CHR$(13)  OR X$ =  CHR$(21)  OR X$ =  CHR$(10)  THEN  NEXT 
  319. 3170  IF I = 1  AND (X$ =  CHR$(8)  OR X$ =  CHR$(11))  THEN I =  VAL(NR$): GOTO 3100: REM  CONTINUE REVERSE SCROLL
  320. 3180  IF X$ =  CHR$(8)  OR X$ =  CHR$(11)  THEN I = I -1: GOTO 3100
  321. 3190  IF X$ =  CHR$(27)  AND DL = 1  THEN  RETURN : REM  BAIL OUT OF EDIT ROUTINE
  322. 3200  IF X$ =  CHR$(27)  AND ED = 1  THEN DL = 0: RETURN : REM  BAIL OUT OF EDIT ROUTINE
  323. 3210  IF (X$ =  CHR$(101)  OR X$ = "E")  AND ED = 1  THEN II = I: RETURN : REM  EDIT OPTION CHOSEN-- GO EDIT
  324. 3220  IF (X$ =  CHR$(115)  OR X$ = "S")  AND ED = 1  THEN 3260: REM  SELECT RECORD #
  325. 3230  IF (X$ =  CHR$(100)  OR X$ = "D")  AND DL = 1  THEN II = I: RETURN : REM  DELETE OPTION CHOSEN--GO DELETE
  326. 3240  IF X$ =  CHR$(27)  THEN 2360
  327. 3250  GOTO 3140
  328. 3260  POKE 34,23: POKE 35,24: POKE 33,17: HOME : PRINT "REC#";
  329. 3270  POKE 32,5: POKE 33,9
  330. 3280  HOME : INPUT "";X$: IF X$ = ""  THEN 3310
  331. 3290  IF  VAL(X$) <1  OR  VAL(X$) > VAL(NR$)  THEN  PRINT  CHR$(7);: PRINT : GOTO 3280
  332. 3300 I =  VAL(X$)
  333. 3310  POKE 32,0: POKE 33,40: POKE 34,5: POKE 35,24: VTAB 24: HTAB 1: PRINT "<";: INVERSE : PRINT "S";: NORMAL : PRINT ">=GET REC#     ";: GOTO 3100
  334. 3320  TEXT : HOME : REM  SCREEN/PRINTER MENU
  335. 3330 M1 = 4:M2 = 1:N = 5:X$ = "** " +MU$(3, PEEK(963)) +" **": GOSUB 410: PRINT : PRINT L$
  336. 3340 R = 26: GOTO 490
  337. 3350 DS = 1:UN = 1:ALL = 0: POKE 963,LINE: GOTO 3320:LINE = 3: REM  SET UNRETURNED FLAG-CLEAR ALL FLAG
  338. 3360 UN = 0:ALL = 1: POKE 963,LINE: GOTO 3320:LINE = 4: REM  SET ALL FLAG-CLEAR UNRETURNED FLAG
  339. 3370  IF UN = 1  THEN 2400: REM  SCROLL UNRETURNED ITEMS TO SCREEN
  340. 3380  GOTO 3010: REM  ALL ITEMS DISPLAY ON SCREEN
  341. 3390 LINE = 2: GOTO 2360
  342. 3400  REM  ** EDIT DATA **
  343. 3410  IF  VAL(NR$) = 0  THEN  GOTO 1070: REM  NO DATA MESSAGE
  344. 3420  TEXT : HOME :M1 = 3:M2 = 1:N = 3:X$ = "**" +MU$(0,3) +"  **": GOSUB 410: PRINT : PRINT L$
  345. 3430 ED = 1:DL = 1: REM  USE BOTH FLAGS
  346. 3440  VTAB 20: PRINT L$
  347. 3450  VTAB 22: HTAB 5: PRINT "<";: INVERSE : PRINT "RTN";: NORMAL : PRINT "> OR ";: INVERSE : PRINT "->";: NORMAL : PRINT " TO SCROLL FORWARD"
  348. 3460  VTAB 23: INVERSE : PRINT "<-";: NORMAL : PRINT " TO REVERSE SCROLL";: PRINT "      <";: INVERSE : PRINT "ESC";: NORMAL : PRINT "> TO QUIT"
  349. 3470  VTAB 24: PRINT "<";: INVERSE : PRINT "S";: NORMAL : PRINT ">=GET REC#    " TAB( 18)"<";: INVERSE : PRINT "E";: NORMAL : PRINT "> TO EDIT DISPLAY";
  350. 3480  POKE 35,19: POKE 34,4: HOME : PRINT : GOSUB 3030: REM  USE 'SCROLL' ROUTINE FOR EDIT
  351. 3490  IF X$ =  CHR$(27)  THEN 3830: REM  EXIT EDIT-FINAL DECISION
  352. 3500  FOR I = 1 TO 7:T$(II,I) = L$(II,I): NEXT : REM  HOLD VALUES FOR DISPLAY
  353. 3510  FOR I = 5 TO 7:D1$(I) =  LEFT$(L$(II,I),2) + MID$ (L$(II,I),4,2) + RIGHT$(L$(II,I),2): NEXT : REM  PACK DATES WITHOUT '/'S
  354. 3520  POKE 35,24: POKE 34,1: REM  OPEN WINDOW
  355. 3530  VTAB 19: HTAB 1: CALL  -958
  356. 3540  GOSUB 1390:ED = 0:: REM  USE INPUT ROUTINE FOR EDIT
  357. 3550  IF I <8  THEN  FOR I = 1 TO 7:L$(II,I) = T$(II,I): NEXT : GOTO 3580
  358. 3560  FOR I = 1 TO 7:T$(II,I) = I$(I): IF L$(II,I) < >T$(II,I)  THEN L$(II,I) = T$(II,I):WR = 1: REM  WRITE FLAG-CHANGED ITEM
  359. 3570  NEXT 
  360. 3580 I = II
  361. 3590  GOTO 3420: REM  DO IT AGAIN
  362. 3600  REM  ** DELETE DATA **
  363. 3610  IF  VAL(NR$) = 0  THEN  GOTO 1070: REM  NO DATA MESSAGE
  364. 3620  TEXT : HOME :DL = 1:ED = 0:X$ = "**" +MU$(0,4) +" **": GOSUB 410: PRINT : PRINT L$
  365. 3630  REM  DL=DELETE FLAG
  366. 3640  VTAB 20: PRINT L$
  367. 3650  HTAB 6: INVERSE : PRINT "<--";: NORMAL : PRINT " ";: INVERSE : PRINT "-->";: NORMAL : PRINT "  OR <";: INVERSE : PRINT "RTN";: NORMAL : PRINT ">  TO SCROLL"
  368. 3660  PRINT : HTAB 2: PRINT "<";: INVERSE : PRINT "D";: NORMAL : PRINT "> TO DELETE ENTRY   <";: INVERSE : PRINT "ESC";: NORMAL : PRINT "> TO QUIT";
  369. 3670  POKE 35,19: POKE 34,4: HOME : PRINT : GOSUB 3030: REM  USE 'SCROLL' ROUTINE FOR DELETEING
  370. 3680  IF X$ =  CHR$(27)  THEN 3830: REM  MAIN MENU
  371. 3690  REM  ** DELETE CHOSEN **
  372. 3700 A =  PEEK(35):B =  PEEK(34):C =  PEEK(33):D =  PEEK(32):WR = 1
  373. 3710  POKE 35,14: POKE 34,7: POKE 33,15: POKE 32,15: HOME 
  374. 3720  PRINT "**************": HTAB 1: PRINT "*";: HTAB 14: PRINT "*": PRINT "* ";: FLASH : REM  14 *'S
  375. 3730  PRINT " DELETION ";: NORMAL : PRINT " *":: PRINT "*     IN     *": PRINT "*  PROGRESS  *": PRINT "**************";: REM  5,5 SPACES-14 *'S
  376. 3740  FOR X = 1 TO 1000: NEXT 
  377. 3750 NR =  VAL(NR$): IF NR = 1  THEN NR = 0:NR$ = "0": GOTO 3830: REM  FINAL DECISION
  378. 3760  IF I <NR  THEN  FOR J = I TO NR -1: FOR K = 1 TO 7:L$(J,K) = L$(J +1,K): NEXT : NEXT :NR = NR -1: GOTO 3780
  379. 3770  IF NR = I  THEN NR = NR -1
  380. 3780 NR$ =  STR$(NR)
  381. 3790  POKE 35,15: POKE 34,6: POKE 33,16: POKE 32,14: HOME 
  382. 3800  POKE 35,A: POKE 34,B: POKE 32,D: POKE 33,C
  383. 3810  GOTO 3670: REM  DO IT AGAIN
  384. 3820  REM  *FINAL DECISION <ESC>*
  385. 3830  IF   NOT WR  THEN ED = 0:DL = 0: GOTO 430: REM  NO CHANGES
  386. 3840  TEXT : HOME 
  387. 3850  VTAB 12: HTAB 7: PRINT "SAVE CHANGES (Y/N)  ";: CALL  -958: HTAB 27: PRINT "N";: HTAB 27: POKE  -16368,0: GET X$: PRINT X$
  388. 3860  IF X$ = "Y"  OR X$ =  CHR$(121)  THEN WR = 0: GOTO 1090: REM  WRITE ENTIRE FILE
  389. 3870  IF X$ = "N"  OR X$ =  CHR$(110)  OR X$ =  CHR$(13)  THEN DL = 0: HOME : VTAB (12): PRINT  TAB( 5)"EDITS CANCELLED - READING FILE": GOSUB 910: GOTO 430
  390. 3880  GOTO 3850
  391. 3890  REM  ** END **
  392. 3900  TEXT : HOME : VTAB 10: INPUT "ARE YOU SURE YOU WANT TO QUIT? ";YN$: ON YN$ < >"Y" GOTO 430: POKE 963,0: HTAB 19: PRINT "END": END 
  393. 3910  REM  ** PRINT 80/132 COL **
  394. 3920  TEXT : HOME :K = 0: REM  COUNTER
  395. 3930  IF   NOT RF  THEN  PRINT : GOSUB 910: REM  READ DATA FILE
  396. 3940  PRINT : PRINT D$;"PR#1"
  397. 3950  PRINT  CHR$(9); STR$(80 +52 *PR);"N": REM  NO SCREEN OUTPUT
  398. 3960  PRINT NN$;
  399. 3970  PRINT 
  400. 3980  IF UN = 1  THEN  PRINT  SPC( 31 +30 *PR)"INCOMPLETE RECORDS ONLY"
  401. 3990  IF ALL = 1  THEN  PRINT  SPC( 31 +30 *PR)"FULL DATA REPORT"
  402. 4000  GOSUB 4300: REM  LONG LINE
  403. 4010  PRINT : PRINT P$(1); SPC( 10);P$(2); SPC( 15);MU$(1,3);
  404. 4020  IF   NOT PR  THEN  PRINT  SPC( 14 +13 - LEN(MU$(1,3)));"DATE"
  405. 4030  IF   NOT PR  THEN  PRINT  SPC( 70);P$(3): GOTO 4060
  406. 4040  PRINT  SPC( 25 - LEN(MU$(1,3)));"COMMENTS"; SPC( 25);"DATE"; SPC( 6);"DATE"; SPC( 6);"DATE"
  407. 4050  PRINT  SPC( 103);P$(4); SPC( 3)P$(5) SPC( 2)P$(6)
  408. 4060  GOSUB 4300: REM  LONG LINE
  409. 4070  PRINT 
  410. 4080  IF ALL = 1  AND PR = 1  THEN 4210
  411. 4090  IF UN = 1  AND PR = 0  THEN 4120
  412. 4100  IF ALL = 1  AND PR = 0  THEN K = 1: GOTO 4120
  413. 4110  IF UN = 1  AND PR = 1  THEN 4210
  414. 4120  FOR I = 1 TO  VAL(NR$)
  415. 4130  IF ALL = 1  THEN 4160
  416. 4140  IF  LEN(L$(I,7)) = 0  THEN K = K +1: GOTO 4160
  417. 4150  NEXT : IF K = 0  THEN  PRINT  TAB( 20 +40 *PR)"NO ITEMS OUTSTANDING...": GOTO 4280
  418. 4160  PRINT L$(I,1);
  419. 4170  PRINT  SPC( 22 - LEN(L$(I,1)))L$(I,2);
  420. 4180  PRINT  SPC( 25 - LEN(L$(I,2)))L$(I,3);
  421. 4190  PRINT  SPC( 25 - LEN(L$(I,3)))L$(I,5): IF I < VAL(NR$)  THEN  NEXT 
  422. 4200  GOTO 4280: REM  END OF REPORT
  423. 4210  FOR I = 1 TO  VAL(NR$)
  424. 4220  IF UN = 1  AND  LEN(L$(I,7)) = 0  THEN 4240
  425. 4230  IF UN  THEN  NEXT I: GOTO 4280
  426. 4240  PRINT L$(I,1);
  427. 4250  FOR J = 2 TO 7
  428. 4260  PRINT  SPC( L%(J -1) +2 - LEN(L$(I,J -1)))L$(I,J);: NEXT : PRINT 
  429. 4270  NEXT I: GOTO 4280
  430. 4280  PRINT : PRINT "**** END OF REPORT ****"
  431. 4290  PRINT : GOSUB 4300: PRINT : PRINT D$;"PR#0": GOSUB 2930: GOTO 2360
  432. 4300  FOR I = 1 TO 80 +52 *PR: PRINT "=";: NEXT : RETURN : REM  LONG LINE
  433. 4310 FA = 128:SP = 160:Q =  -16384:A = 1
  434. 4320  POKE 34,22: POKE 34,23: POKE 33,1
  435. 4330  VTAB 23: HTAB 1: PRINT  CHR$(13);: PRINT D$;"PR#1": FOR P = A TO 19
  436. 4340  PRINT  CHR$(9);"80N": PRINT NN$;
  437. 4350  FOR K = 0 TO 2: FOR B = 0 TO 7: ON K <2  OR (K = 2  AND B <4) GOSUB 4360: NEXT B,K: GOTO 4370
  438. 4360 PQ = 1024 +128 *B +40 *K: FOR PJ = PQ TO PQ +39:PK =  PEEK(PJ):PK = PK +(PK <32) *192:PK = PK +(PK <64) *128:PK = PK +(PK <96) *64:PK = PK +(PK <128) *64:PK = PK +(PK <160) *64: PRINT  CHR$(PK);: NEXT PJ: PRINT  CHR$(13);: RETURN 
  439. 4370  PRINT : PRINT : PRINT 
  440. 4380  POKE  -16368,0: PRINT D$;"PR#0"
  441. 4390  POKE 35,24: POKE 34,0: POKE 33,40
  442. 4400  RETURN 
  443. 4410  END 
  444. 4420  REM  ** MAIN MENU DATA **
  445. 4430  DATA "  ENTER DATA","LIST/SEARCH DATA","  EDIT DATA"," DELETE DATA"," QUIT PROGRAM"
  446. 4440  DATA  7,12
  447. 4450  REM  ** ADD DATA MENU **
  448. 4460  DATA NAME OF BORROWER,OWNER OF ITEM,ITEM BORROWED,COMMENT,DATE LOANED,RETURN EXPECTED,DATE ITEM RETURNED,RETURN TO LIST/SEARCH MENU
  449. 4470  DATA  5,1
  450. 4480  REM  ** INPUT TABS,LENGTH *
  451. 4490  DATA  20,20,17,23,17,23,11,29,22,8,22,8,22,8
  452. 4500  REM  ** DISK READ MENU **
  453. 4510  DATA  "   SAVE ENTRIES TO DISK",CANCEL ENTRIES-START OVER,"   MAIN MENU (NO SAVE)"
  454. 4520  DATA  8,8
  455. 4530  DATA  "  RETURN TO MAIN MENU","  SEARCH BY DATA FIELD",DISPLAY ALL INCOMPLETES,"   DISPLAY ALL ENTRIES   "
  456. 4540  DATA  8,8
  457. 4550  DATA  162,0,32,117,253,160,2
  458. 4560  DATA  138,145,105,200,169,0
  459. 4570  DATA  145,105,200,169,2,145
  460. 4580  DATA  105,76,57,213
  461. 4590  DATA  "     SCREEN ONLY",PRINTER-10 CPI (80 COL),PRINTER-17 CPI (132 COL),RETURN TO LIST/SEARCH MENU
  462. 4600  DATA  8,8
  463. 4610  REM  PRINTOUT HEADINGS
  464. 4620  DATA  "BORROWER    ","OWNER     ","  LOANED  "," LOANED","EXPECTED","RETURNED": REM  12,10,10,8,8,8+ CHARACTERS
  465. 4630  REM  ** ERROR TRAPPING **
  466. 4640  TEXT : HOME : CALL  -3288:PK =  PEEK(222): POKE 216,0: PRINT D$"CLOSE"
  467. 4650 X$ = "** ERROR ENCOUNTERED **": GOSUB 410: PRINT : PRINT L$: VTAB 12:
  468. 4660  IF PK = 9  THEN  PRINT "DISK FULL ERROR";: GOTO 4730
  469. 4670  IF PK = 10  THEN  PRINT "FILE LOCKED ERROR IN ";: GOTO 4730
  470. 4680  IF PK = 6  THEN  PRINT "FILE NOT FOUND ERROR ";: GOTO 4730
  471. 4690  IF PK = 8  THEN  PRINT "I/O ERROR ";: GOTO 4730
  472. 4700  IF PK = 11  THEN  PRINT "DISK SYNTAX ERROR";: GOTO 4730
  473. 4710  IF PK = 4  THEN  PRINT "WRITE-PROTECT ERROR ";: GOTO 4730
  474. 4720  PRINT "ERROR "PK
  475. 4730  PRINT "IN LINE " PEEK(218) + PEEK(219) *256
  476. 4740  VTAB 22: HTAB 1: PRINT "PRESS <RETURN> TO CONTINUE...";: POKE  -16368,0: GET X$: PRINT 
  477. 4750  IF  PEEK(963) = 0  THEN  TEXT : HOME : GOSUB 4770: GOTO 140
  478. 4760  ON EF GOTO 180,700,910,1100
  479. 4770  INVERSE 
  480. 4780 X$ = "": FOR I = 1 TO 39:X$ = X$ +" ": NEXT : REM  ONE SPACE IN QUOTES
  481. 4790  PRINT X$
  482. 4800  FOR I = 1 TO 10: VTAB I: HTAB 1: PRINT " ";: HTAB 39: PRINT " ";: NEXT : PRINT 
  483. 4810  PRINT X$: NORMAL 
  484. 4820 X$ = "THE NIBBLE REMINDER": VTAB 4: GOSUB 410
  485. 4830 X$ = "BY MARK R. CRAVEN": VTAB 5: GOSUB 410
  486. 4840 X$ = "COPYRIGHT (C) 1986": VTAB 6: GOSUB 410
  487. 4850 X$ = "BY MICROSPARC, INC": VTAB 7: GOSUB 410
  488. 4860 X$ = "CONCORD, MA  01742": VTAB 8: GOSUB 410
  489. 4870  POKE  -16368,0: VTAB 21: PRINT "PRESS <RETURN> TO CONTINUE...";: GET X$: RETURN 
  490. 4880 NR$ =  STR$( VAL(NR$) -T%):T% = 0: GOTO 430
  491. 4890  REM  ** READ AND POKE IN CURSOR BAR ROUTINE
  492. 4900  FOR I = 0 TO 171: READ ML: POKE 768 +I,ML: NEXT I: RETURN 
  493. 4910  DATA  32,190,222,32,103,221,32,251,230,202,134,2,134,4,32,190,222,32,103,221,32,251,230,202,134,3
  494. 4920  DATA  32,190,222,32,103,221,32,251,230,202,134,6,32,190,222,32,103,221,32,251,230,202,134,7,165,4
  495. 4930  DATA  32,193,251,164,7,177,40,201,160,208,5,136,16,247,48,19,164,7,177,40,41,63,145,40,136,196
  496. 4940  DATA  6,16,245,173,16,192,174,0,192,224,136,240,34,224,149,240,30,224,141,208,241,164,7,177,40,9
  497. 4950  DATA  128,145,40,136,196,6,16,245,165,4,56,229,2,133,4,230,4,173,16,192,96,164,7,177,40,9
  498. 4960  DATA  128,145,40,136,196,6,16,245,165,4,224,149,240,14,197,2,208,6,165,3,133,4,208,152,198,4
  499. 4970  DATA  16,148,197,3,208,6,165,2,133,4,16,138,230,4,208,134,162