Bar Code from the HP-2225B Thinkjet Printer #1
using the HP-IL Development and Plotter Modules

Back to main page | Email me at: Gene!


This program is taken from the V2N2P14 (March 1985) issue of the CHHU Chronicle and was written by Daniel R. Benniger. Thanks to Daniel!

To minimize the sythetic programming required to enter some text lines of alpha characters in his program (in this case, I eliminated the need for them), I changed Daniel's program to use XTOA's instead. This added some program bytes, but is much easier to key in this way.

Note: Each row of bar code takes over two minutes to generate and print. Each page takes over 30 minutes at 14 rows per page. Note: Make sure the HP-41's batteries are fresh and the thinkjet's batteries are too (and that it is hooked up to its AC adaptor).

Requirements:
1) This program requires the HP-IL Module, the HP-IL 2225B thinkjet printer, the HP-41 Plotter Module, and the HP-IL Development Module.
2) The program also requires two input/output buffers to be created in the HP-41's memory. The Plotter module uses 26 free registers to create an I/O buffer and the HP-IL Development Module uses up to 28 registers as an I/O buffer. These registers will remain "used" until you clear them by turning the HP-41 off, removing the respective module, then turning the HP-41 back on again.

The program below can print out bar code of programs that are up to about 1200 bytes in length.

Instructions: Make sure SIZE is at least 008. Put the name of the program into the alpha register that you want to print bar code for and XEQ "PCB". Fairly easy.


Program Listing: The strange functions you see in the program listing below are functions from the Plotter and HP-IL Development Modules. Note: Line 36 is Append 10 spaces. Line 38 is an alpha line of 7 spaces. Line 95 shows spaces between the X, the <> and the FLAG part of the instruction. Don't key the spaces in - key the function in without them. Since HTML uses <> for formatting instructions, sometimes my listings, which I hand type, get messed up if I don't put spaces on either side of a <> part of an instruction.
Line      Instruction
01         LBL "PBC"
02         AUTOIO
03         ASTO 00
04         FS 25
05         PINIT
06         193
07         BSIZEX
08         AIPT
09         CLA
10         15
11         XTOA
12         ASTO 01
13         CLA
14         240
15         XTOA
16         ASTO 02
17         CLA
18         255
19         XTOA
20         ASTO 03
21         CF 29
22         FIX 0
23         1.15
24         STO 04
25         LBL 15
26         CLA
27         27
28         XTOA
29         38
30         XTOA
31         107
32         XTOA
33         49
34         XTOA
35         83
36         ->"          "
37         ACA
38         "       "
39         ARCL 00
40         127
41         XTOA
42         27
43         XTOA
44         38
45         XTOA
46         107
47         XTOA
48         48
49         XTOA
50         83
51         XTOA
52         ACA
53         0.013
54         STO 07
55         LBL 16
56         PRBUF
57         "R"
58         ARCL 04
59         ->", L"
60         ACA
61         RCL 00
62         RCL 04
63         BCP
64         STO 04
65         RCL Z
66         ACX
67         45
68         ACCHR
69         RDN
70         FRC
71         1 E3
72         *
73         ACX
74         ASIZE?
75         DSE X
76         LASTX
77         /
78         SIGN
79         7
80         PT=
81         RCL 02
82         X-BUF
83         X-BUF
84         SF 08
85         55
86         ACCHR
87         32
88         ACCHR
89         66
90         ACCHR
91         LBL 01
92         LASTX
93         A-XX
94         ACX
95         X <> FLAG  (* Note: don't key in the spaces *)
96         7
97         STO 05
98         8
99         STO 06
100        LBL 02
101        FC? 08
102        GTO 04
103        FS? IND 05
104        GTO 03
105        RCL 02
106        X-BUF
107        SF 08
108        GTO 06
109        LBL 03
110        RCL 03
111        X-BUF
112        CF 08
113        GTO 06
114        LBL 04
115        RCL 01
116        X-BUF
117        FS? IND 05
118        GTO 05
119        CF 08
120        GTO 06
121        LBL 05
122        RCL 02
123        X-BUF
124        SF 08
125        LBL 06
126        DSE 05
127        CLX
128        DSE 06
129        GTO 02
130        ISG L
131        GTO 01
132        FC? 08
133        GTO 07
134        RCL 03
135        X-BUF
136        RCL 01
137        X-BUF
138        GTO 08
139        LBL 07
140        RCL 01
141        X-BUF
142        RCL 02
143        X-BUF
144        X-BUF
145        LBL 08
146        PRBUF
147        PT?
148        STO 06
149        7
150        -
151        CLA
152        27
153        XTOA
154        RDN
155        42
156        XTOA
157        RDN
158        98
159        XTOA
160        RDN
161        99
162        X <> Y
163        X < = Y?
164        ->"0"
165        9
166        X <> Y
167        X < = Y?
168        ->"0"
169        ARCLX
170        ->"W"
171        0.035
172        STO 05
173        CLX
174        PT=
175        A-BUF
176        CLA
177        27
178        XTOA
179        RDN
180        42
181        XTOA
182        RDN
183        114
184        XTOA
185        RDN
186        49
187        XTOA
188        RDN
189        50
190        XTOA
191        RDN
192        56
193        XTOA
194        RDN
195        48
196        XTOA
197        RDN
198        83
199        XTOA
200        RDN
201        ACA
202        1
203        LAD
204        LBL 09
205        CLX
206        PT=
207        RCL 06
208        OUTBUFX
209        ISG 05
210        GTO 09
211        CLA
212        27
213        XTOA
214        RDN
215        42
216        XTOA
217        RDN
218        114
219        XTOA
220        RDN
221        66
222        XTOA
223        RDN
224        ACA
225        RCL 04
226        X = 0?
227        GTO 10
228        ISG 07
229        GTO 16
230        CLA
231        12
232        XTOA
233        RDN
234        ACA
235        GTO 15
236        LBL 10
237        CLA
238        12
239        XTOA
240        RDN
241        ACA
242        CLX
243        BSIZEX
244        PCLBUF
245        END

That's it. Hope it's useful!