HP-41 Bar Code Printing


To All:

This all started when I was looking into whether or not I wanted to buy an HP-41 Plotter ROM from that unmentionable site. That got me interested in figuring out how to print HP-41 bar codes. After doing some googling (I love the "site:www.hpmuseum.org" option), there is a lot of old information on the subject. I am specifically interested in using either my PC's HP printer or a ThinkJet on the HP-IL loop. (Side thought, is fan-fold paper still available? Right now I'm feeding individual sheets through mine.) I found Gene's pages on bar code printing to a ThinkJet as well as Christoph's pages on printing bar code using EMU41.

This brings me to the SKWIDBC module for the 41 which I also ran across. It appears to be the perfect solution but it's designed specifically to drive the ThinkJet or LaserJet printers. The plus version only talks to the LaserJet Plus or the LaserJet Series II, according to the manual. Also, there is a warning in the manual that bar code generated with this module might not be able to be read by the 1E version of the Wand, but is fully compatible with with the 1F version.

So, my questions are: Does the SKWIDBC module work properly with EMU41 using the host PC's HP 990Cxi inkjet printer connected to a parallel port? How big a problem is SKWIDBC bar code compatibility between the 1E and 1F Wands? After 5 years, are there any easier, cleaner or better solutions to printing 41 bar codes under windows, or any other OS than has been discussed in the archives?

All comments and feedback is appreciated. This little detour into 41 bar code printing has been keeping my busy for the last two days, time permitting.

Thank you for your time,



The Modules and PLOTTER ROM are one way to go. There are at least two other alternatives than the HP41 modules.

If you already have a HP-IL ISA card or PIL box, you can export to EMU41, then from EMU-> Text file -> then use 41uc.exe

Not sure if that will do exactly what you seek?


Thank you for your response, Allen. I do have EMU41, and an HP-IL ISA card. My PIL Box I/F doesn't allow EMU41 on my Laptop to talk directly to external HP-IL devices. J-F tells me he's working on a new version of EMU41. I can use the PIL Box to migrate files between my 41C and EMU41 using HDRIVE1 as he presently recommends.

I've never used EMU41 to generate a text file so I'm not sure how to do that. I assume you would use the DOSLINK device to send data to the emu41out.dat file; but what would you do then, open that file using Notepad to print it out to my system printer? This is where I get vague as I don't know specifically how to implement this workflow.

My interest is to backup my old 41C program cards to 3.5" floppies (I have 9114B drives) as well as back them up to paper as bar code. That's why when I was reading about SKWIDBC and saw the restrictions, I wondered if there were anyone who had experience with this software. I have looked at the 41uc.exe page on this website and to be honest, it's a bit overwhelming. I need to understand the workflow of getting from a program stored on an EMU41 HDRIVE to printout on either the local PC printer or one on the HP-IL loop. Even though I have hardware, I still have a lot to learn on how to use it.

Anyway, that's what I was thinking. Any more feedback or comments are appreciated.




If your program is in EMU41, then try this:

  1. Edit EMU41.INI, and change HDRIVE1 to HDRIVE1 progname.lif, this specifies that you want to use progname.lif as your virtual floppy drive (the default is HDRIVE1.DAT).
  2. In your EMU41 directory type >progname.lif, this creates a blank disk.
  3. Start up EMU41
  4. Type XEQ NEWM 001, this formats the blank disk with a single record. (NOTE: You may want to ; out HDRIVE2 in your .INI file so that you do not accidentally hose HDRIVE2.DAT).
  5. Type ALPHA PROGNAME ALPHA, then XEQ WRTP. That should copy your program to the virtual floppy drive and thus to progname.lif
  6. Exit EMU41
  7. Type: hp41uc /l=progname.lif /r=progname.raw
  8. Type: hp41uc /r=progname.raw /s=progname.ps PROGNAME
  9. Use any freely available PS to PDF converter.
Now you have a PDF of your barcode that you can distribute or print on any printer with any PDF viewer. Example multipage barcode PDF: http://sense.net/~egan/41cx/cpi.pdf

I made an easy to follow step-by-step movie for you here: http://sense.net/~egan/emu41barcode.avi

If your program is on your 41CX, then:

  1. In your ILPER directory type >progname.lif
  2. Connect up your PIL-Box and 41CX.
  3. Start up ILPER, and set it to use progname.lif as your HDRIVE.
  4. Type XEQ NEWM 001
  6. Exit ILPER
  7. Do 7-9 from above.

Sorry, no movie.

I should mention that if you want to do multiple files and save time then make the argument to NEWM equal to the number of files or greater. Then ALPHA PROGNAME ALPHA WRTP PROGNAME for each program. Then change:

hp41uc /l=progname.lif /r=progname.raw
hp41uc /l=allprogs.lif /r=progname.raw PROGNAME
The later command will search the LIF image for PROGNAME and save it as progname.raw. Do that for each program.

Lastly use hp41uc to convert all your .raw programs to .bin and .txt. The .txts can be used as listing. The .bins can be loaded into V41 or your shiny new iPhone rendering your 41CX useless. Send your useless 41CX to me. :-)

Edited: 4 Nov 2009, 5:34 p.m.



Thanks for the step by step. I had been playing with HDRIVE2 in EMU71 to bring LIF files that I had downloaded from the internet into EMU71 and see what I could do with them. It's also teaching me about using BASIC commands as I just got the full version of EMU71 from J-F just a few days ago. I bought a real HP-71B a few months ago but I've done nothing with it to work on understanding HP-IL, EMU41, etc.

I was also going to try some LIF files from the internet for EMU41 and see how that worked this weekend, time permitting. So, using WRTP with HDRIVE1, I'm converting a native HP-41C program file to a LIF filetype. THAT'S AMAZING!! I didn't know you could do that. File conversion in an emulator, what a concept! But thinking about it, it does make sense. Thanks for sharing that. I get the feeling that I'm just seeing the tip of the iceberg when it comes to what these EMU41/71 emulators can do. What other file formats does EMU41 support when writing to HDRIVE1? If I specified a RAW or Postscript (PS) filetype, would EMU41 or 71 support that as well? What about PDF or is that too much?

I have been re-reading the 41uc user file and it appears that the bar code generation happens when you convert from RAW to PCL or PS so I doubt EMU41 supports that. Something for J-F to add given how busy he is right now? The poor man, I'm sure he must roll his eyes at all my suggestions.

Anyway, this is very exciting. I'll have to give that a try this weekend. Thanks again, Egan for explaining that. EMU41's docs only hint at this and I didn't pick it up. I wonder what else am I missing?

Thanks again,


What other file formats does EMU41 support when writing to HDRIVE1?

None--only LIF. It does not matter what filename or extension you use with HDRIVE1 or HDRIVE2 the format of the file will be LIF. i.e. HDRIVE1.DAT, FOO.BAR, BACKUP.LIF--all LIF. LIF is not a program format like BIN, DAT, RAW, or TXT (hp41uc supported types). LIF is more like an archive (a zip file without compression). You can have multiple files of various types in a LIF image. LIF images are simply dumps of tapes or disks. HDRIVE1 and HDRIVE2 in both EMU41/EMU71 are simulating 9114B drives. With the right tools you can create LIFs from diskettes and vv.
I have been re-reading the 41uc user file and it appears that the bar code generation happens when you convert from RAW to PCL or PS

As outlined above you need RAW to convert to PS. It shouldn't take more than a few minutes to backup each EMU41 program to a single LIF image. From there you can write a dos batch program to take a program name as an argument and run all the hp41uc commands for you.


Read IL2000 Interface System manual Page IX.46 : Easy and fast Barcode print directly from EMU41 with help of the Skwid BC-Rom...

Best regards - Christoph Klug


Read IL2000 Interface System manual Page IX.46 : Easy and fast Barcode print directly from EMU41 with help of the Skwid BC-Rom...

Thanks. IMHO, its a bit limiting and requires a Laser Jet. I find the above method I outlined a bit more complex, but I also end up with a PDF--something easy to share and print on any printer.

If I get time I'll try to find a PCL -> PDF converter and see if I can use that with DOSLINK.


SKWIDBC.MOD just locks up EMU41. I tried various .INI setups. Same results. I guess SKWIDBC.MOD really wants a Laser Jet to be there.

Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-41(CL): The easiest way to transfer FOCAL programs from a Linux PC to the HP-41 Geir Isene 13 2,237 12-05-2013, 02:40 AM
Last Post: Hans Brueggemann
  HP PRIME: APP program code DISAPPEARS !! Joseph Ec 0 401 11-25-2013, 11:35 AM
Last Post: Joseph Ec
  Printing the HP Prime manual BobVA 3 737 10-25-2013, 09:53 PM
Last Post: BobVA
  Where to the 32-bit version of User Code Utiltiy for HP-41 ? Olivier (Wa) 2 583 09-26-2013, 01:55 AM
Last Post: Olivier (Wa)
  A HP42S Code Editor Andreas 9 1,263 09-22-2013, 03:17 AM
Last Post: Andreas
  3D printing custom molds Han 3 652 08-02-2013, 03:26 AM
Last Post: Bruce Larrabee
  Dynamic Gaussian Quadrature code in Excel VBA Namir 4 759 07-30-2013, 07:37 PM
Last Post: Namir
  Printing HP 9825 data Norman Pillsbury 3 699 06-01-2013, 10:08 PM
Last Post: David Ramsey
  Does IR printing not work on your converted WP34s? Then read on... Harald 3 731 04-04-2013, 05:46 PM
Last Post: Harald
  WP34s IR Printing Update? Thomas Chrapkiewicz 2 517 02-24-2013, 01:53 PM
Last Post: Marcus von Cube, Germany

Forum Jump: