home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / BASIC / POWBASIC / LIBRARY3 / BARCODE.BAS < prev    next >
BASIC Source File  |  1993-12-01  |  6KB  |  197 lines

  1. 'Program Name    : Barcode.bas
  2. 'Author          : Lloyd L. Smith for Spectra Technical Support
  3. 'Date            : 10-25-90
  4. 'Compuserve #    : GO PCVENB, Vendor #12/Spectra,  Tech Support ID 71530,2640
  5. 'Tech Support BBS: 813-625-1721, PC-Board, 8,N,1 USR HST 300 - 14.4, 24hrs
  6. 'Tech Support Fax: 813-625-1698  G2 & G3 compatible
  7. 'Tech Support Voc: 813-625-1172  Voice
  8. 'Develop Date    : 01-11-87
  9. 'Illustrative    : Program for use and creation of barcodes
  10.  
  11. DIM CHUNG(5, 450) , barcode(44, 19)
  12.  
  13.  
  14. SCREEN 9
  15. 'read barcode info into the array
  16. RESTORE barcode1:
  17. FOR d = 1 TO 44
  18. FOR e = 1 TO 19
  19. READ barcode(d, e)
  20. NEXT e
  21. NEXT d
  22.  
  23.  
  24. 'constants
  25. BUFF = 0
  26.  
  27. 'Ascii String to print<<<<<<<<<<<<<<<<<
  28. A$ = "*THIS IS A TEST 1010*"
  29.  
  30. PRINT A$
  31. GOSUB INITARRAY
  32. GOSUB STUFFBAR
  33. GOSUB LINEADJ
  34. GOSUB PBAR
  35. GOSUB PSCREEN
  36. GOSUB INITARRAY
  37. GOSUB resetprt
  38. END
  39.  
  40.  
  41. PSCREEN:
  42. LOCATE 11, 27: PRINT A$
  43. COUNT = 1
  44. FOR Y = 1 TO 20
  45. FOR X = 1 TO 300
  46. IF CHUNG(1, X) = 0 THEN PSET (150 + X, 160 + Y), 0 ELSE PSET (150 + X, 160 + Y), 15
  47. COUNT = COUNT + 1
  48. NEXT X
  49. COUNT = 0
  50. NEXT Y
  51.  
  52. LINEADJ:
  53. 'LPRINT CHR$(27); "~0"; CHR$(14):      REM CITIZEN MEMORY LINE FEED INCREMENT
  54. LPRINT CHR$(27); CHR$(51); CHR$(20); : REM EPSON MEMORY LINE FEED INCREMENT
  55. RETURN
  56.  
  57. STUFFBAR:
  58. 'IF LEN(a$) > 15 THEN GOTO stuffbuff
  59. '
  60. FOR C = 1 TO LEN(A$)
  61. CHAR$ = MID$(A$, C, 1)
  62. A = INSTR(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-+* .$/%", CHAR$)
  63. GOSUB setbar
  64. IF CP >= 20 THEN GOTO STUFFBAR
  65. NEXT C
  66. RETURN
  67.  
  68. setbar:
  69. REM BUFFER
  70. FOR J = 1 TO 3 ' make the bars three tall
  71. FOR I = 1 TO 19
  72. CHUNG(J, I + BUFF) = barcode(A, I)
  73. NEXT I
  74. NEXT J
  75. BUFF = BUFF + 20
  76. RETURN
  77.  
  78. PBAR:
  79. REM PRINT THE CHARACTER BUFFER TO THE PRINTER
  80. FOR J = 1 TO 3
  81. LPRINT CHR$(27); "K"; CHR$(194); CHR$(1);
  82. FOR I = 1 TO 450
  83. LPRINT CHR$(CHUNG(J, I));
  84. NEXT I
  85. LPRINT
  86. NEXT J
  87. LPRINT : LPRINT
  88. BUFF = 0
  89. RETURN
  90.  
  91. INITARRAY: 'CLEAR THE PRINT ARRAY BUFFER
  92. FOR J = 1 TO 5: FOR I = 1 TO 450: CHUNG(J, I) = 0: NEXT I: NEXT J
  93. RETURN
  94.  
  95. resetprt:  'RESET THE PRINTER TO THE POWER ON CONDITION
  96. LPRINT CHR$(27); "@"
  97. RETURN
  98.  
  99. barcode1: 'BARCODE DATA FILES
  100. ' the char - A
  101. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255
  102. ' the char - B
  103. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255
  104. ' the char - C
  105. DATA 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255
  106. ' the char - D
  107. DATA 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255
  108. ' the char - E
  109. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255
  110. ' the char - F
  111. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255
  112. ' the char - G
  113. DATA 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255
  114. ' the char - H
  115. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255
  116. ' the char - I
  117. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255
  118. ' the char - J
  119. DATA 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255
  120. ' the char - K
  121. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255
  122. ' the char - L
  123. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255
  124. ' the char - M
  125. DATA 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255
  126. ' the char - N
  127. DATA 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255
  128. ' the char - O
  129. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255
  130. ' the char - P
  131. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255
  132. ' the char - Q
  133. DATA 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255
  134. ' the char - R
  135. DATA 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255
  136. ' the char - S
  137. DATA 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255
  138. ' the char - T
  139. DATA 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255
  140. ' the char - U
  141. DATA 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255
  142. ' the char - V
  143. DATA 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255
  144. ' the char - W
  145. DATA 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255
  146. ' the char - X
  147. DATA 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255
  148. ' the char - Y
  149. DATA 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255
  150. ' the char - Z
  151. DATA 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255
  152. ' the char - 0
  153. DATA 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255
  154. ' the char - 1
  155. DATA 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255
  156. ' the char - 2
  157. DATA 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255
  158. ' the char - 3
  159. DATA 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255
  160. ' the char - 4
  161. DATA 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255
  162. ' the char - 5
  163. DATA 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255
  164. ' the char - 6
  165. DATA 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255
  166. ' the char - 7
  167. DATA 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255
  168. ' the char - 8
  169. DATA 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255
  170. ' the char - 9
  171. DATA 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255
  172. ' the char "-"
  173. DATA 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255
  174. ' the char - +
  175. DATA 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255
  176. ' the char - *
  177. DATA 255, 0, 0, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 255
  178. ' the char -  " " -s pace
  179. DATA 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255
  180. 'the char - .
  181. DATA 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255, 0, 0, 255
  182. 'the char - $
  183. DATA 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255
  184. ' the char - /
  185. DATA 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 0, 0, 255
  186. ' the char - %
  187. DATA 255, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.