Post Reply 
Barcode generator
05-04-2024, 07:06 PM
Post: #1
Barcode generator
Just bought an HP-41C Wand barcode reader.
I would like to generate barcodes for some programs (the magnetic cards I have are not very reliable anymore). Found a few options but many of the download links are broken. Can someone suggest an available software for PC for barcode generation?

Also, I am trying to understand the checksum algorithms but the HP documentation is not very clear - is there a simple explanation somewhere?

Thank you,
Find all posts by this user
Quote this message in a reply
05-04-2024, 10:48 PM
Post: #2
RE: Barcode generator
I’m using Leo Duran excellent HP41UC - User-Code Utility.
Find all posts by this user
Quote this message in a reply
05-05-2024, 06:53 AM
Post: #3
RE: Barcode generator
You are never better served than by yourself...
I therefore use my own interface to generate the barcodes.
[Image: interf_EN.jpg]
You can therefore download it from my site clone.phweb.me
or directly here.
(works in Excel)

http://ti58c.phweb.me
http://clones.phweb.me
http://www.instagram.com/ti58c
"No! Do or Do not. There is no try!" [Master Yoda]
Visit this user's website Find all posts by this user
Quote this message in a reply
05-05-2024, 02:32 PM
Post: #4
RE: Barcode generator
Thank you both - will give it a try
Find all posts by this user
Quote this message in a reply
05-06-2024, 12:25 PM (This post was last modified: 05-06-2024 12:26 PM by ThomasF.)
Post: #5
RE: Barcode generator
(05-04-2024 07:06 PM)Benoit Maag Wrote:  Also, I am trying to understand the checksum algorithms but the HP documentation is not very clear - is there a simple explanation somewhere?


Hi,

The algorithm is fairly easy, for most bar codes the first byte is a 8-bit checksum of all bytes in the code:

Code:
    int chkSum = firstLine ? 0 : prevLineChecksum;
    for(int n=1; n<bLen; n++) // Loop over all bytes (except the first one)
        chkSum += barcode.bytes[n];
    while( chkSum & 0xFF00 ) // Check if any overflow
        chkSum = (chkSum&0xFF) + (chkSum>>8);
    barcode.bytes[0] = chkSum; // Save the checksum in the array
bLen is the length of the array holding the bytes, and barcode.bytes is the array.
barcode.bytes[0] will contain the calculated checksum.

For program bar codes (multiple lines), the checksum is initialized with zero (0) for the first line, and for all other lines the checksum is initialized to the checksum of the previous line (a running checksum).

The exception are paper keyboard bar codes.
- The one-byte bar codes which has no checksum, instead the second nibble is the same as the first but reversed (e.g. hex "DB" = binary "1101 1011").
- And two bytes codes, where the checksum is only 4 bits (nibble[0]) and is the 4-bit checksum of the other three nibbles.

Hope that clear up any confusion ... Wink

Cheers,
Thomas

[35/45/55/65/67/97/80 21/25/29C 31E/32E/33E|C/34C/38E 41C|CV|CX 71B 10C/11C/12C/15C|CE/16C 32S|SII/42S 28C|S 48GX/49G/50G 35S 41X]
Find all posts by this user
Quote this message in a reply
05-09-2024, 02:04 PM (This post was last modified: 05-09-2024 02:41 PM by aurelio.)
Post: #6
RE: Barcode generator
(05-05-2024 06:53 AM)Pierre Wrote:  You are never better served than by yourself...
I therefore use my own interface to generate the barcodes.
[Image: interf_EN.jpg]
You can therefore download it from my site clone.phweb.me
or directly here.
(works in Excel)

Thank you Pierre, your is really a great tool, I've "played" with it a few years ago, and I remember at the beginning a problems with the new OS W10, problem that I think meanwhile you sure had solved.. For that reason I decided to keep a PC with XP for that usage (and not only) but later, actually I don't remember well how, I succeded with a workaround in using it it with the new OS.
Happy to read you and thank you one time more.

Edit: typos
greetings from Italy
Find all posts by this user
Quote this message in a reply
05-09-2024, 10:07 PM
Post: #7
RE: Barcode generator
(05-09-2024 02:04 PM)aurelio Wrote:  Thank you Pierre...
Thank you especially to you and to all those who use my programs which I only do to have fun and to please others.
I always liked producing bugs to have to fix them so I continue in retirement.
So don't hesitate to let me know what you find.
(I have just made corrections in my interface thanks to Benoit Maag)

http://ti58c.phweb.me
http://clones.phweb.me
http://www.instagram.com/ti58c
"No! Do or Do not. There is no try!" [Master Yoda]
Visit this user's website Find all posts by this user
Quote this message in a reply
05-11-2024, 04:13 PM
Post: #8
RE: Barcode generator
Thank you Pierre - I love your tool and the interface could not be any simpler to use.

BTW I tried to laminate some barcode pages to limit wear but the wand could not read the laminated barcodes, I suppose because the laminator film is glossy. Does anyone know whether matte finish laminator pouches work?
Find all posts by this user
Quote this message in a reply
05-11-2024, 04:19 PM
Post: #9
RE: Barcode generator
Thank you Thomas for the clear explanation.

(05-06-2024 12:25 PM)ThomasF Wrote:  
(05-04-2024 07:06 PM)Benoit Maag Wrote:  Also, I am trying to understand the checksum algorithms but the HP documentation is not very clear - is there a simple explanation somewhere?


Hi,

The algorithm is fairly easy, for most bar codes the first byte is a 8-bit checksum of all bytes in the code:

Code:
    int chkSum = firstLine ? 0 : prevLineChecksum;
    for(int n=1; n<bLen; n++) // Loop over all bytes (except the first one)
        chkSum += barcode.bytes[n];
    while( chkSum & 0xFF00 ) // Check if any overflow
        chkSum = (chkSum&0xFF) + (chkSum>>8);
    barcode.bytes[0] = chkSum; // Save the checksum in the array
bLen is the length of the array holding the bytes, and barcode.bytes is the array.
barcode.bytes[0] will contain the calculated checksum.

For program bar codes (multiple lines), the checksum is initialized with zero (0) for the first line, and for all other lines the checksum is initialized to the checksum of the previous line (a running checksum).

The exception are paper keyboard bar codes.
- The one-byte bar codes which has no checksum, instead the second nibble is the same as the first but reversed (e.g. hex "DB" = binary "1101 1011").
- And two bytes codes, where the checksum is only 4 bits (nibble[0]) and is the 4-bit checksum of the other three nibbles.

Hope that clear up any confusion ... Wink

Cheers,
Thomas
Find all posts by this user
Quote this message in a reply
05-11-2024, 04:20 PM
Post: #10
RE: Barcode generator
Thank you Thomas for the clear explanation.

(05-06-2024 12:25 PM)ThomasF Wrote:  
(05-04-2024 07:06 PM)Benoit Maag Wrote:  Also, I am trying to understand the checksum algorithms but the HP documentation is not very clear - is there a simple explanation somewhere?


Hi,

The algorithm is fairly easy, for most bar codes the first byte is a 8-bit checksum of all bytes in the code:

Code:
    int chkSum = firstLine ? 0 : prevLineChecksum;
    for(int n=1; n<bLen; n++) // Loop over all bytes (except the first one)
        chkSum += barcode.bytes[n];
    while( chkSum & 0xFF00 ) // Check if any overflow
        chkSum = (chkSum&0xFF) + (chkSum>>8);
    barcode.bytes[0] = chkSum; // Save the checksum in the array
bLen is the length of the array holding the bytes, and barcode.bytes is the array.
barcode.bytes[0] will contain the calculated checksum.

For program bar codes (multiple lines), the checksum is initialized with zero (0) for the first line, and for all other lines the checksum is initialized to the checksum of the previous line (a running checksum).

The exception are paper keyboard bar codes.
- The one-byte bar codes which has no checksum, instead the second nibble is the same as the first but reversed (e.g. hex "DB" = binary "1101 1011").
- And two bytes codes, where the checksum is only 4 bits (nibble[0]) and is the 4-bit checksum of the other three nibbles.

Hope that clear up any confusion ... Wink

Cheers,
Thomas
Find all posts by this user
Quote this message in a reply
05-11-2024, 05:42 PM
Post: #11
RE: Barcode generator
(05-11-2024 04:13 PM)Benoit Maag Wrote:  Thank you Pierre - I love your tool and the interface could not be any simpler to use.

BTW I tried to laminate some barcode pages to limit wear but the wand could not read the laminated barcodes, I suppose because the laminator film is glossy. Does anyone know whether matte finish laminator pouches work?

The protective plastic film inside the wand box was matte IIRC.

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
05-11-2024, 11:05 PM
Post: #12
RE: Barcode generator
(05-11-2024 04:13 PM)Benoit Maag Wrote:  Thank you Pierre - I love your tool and the interface could not be any simpler to use.

Thanks to you who trusted me (despite a bug that I was able to quickly correct).
Don't hesitate to let me know of any improvements or corrections I could make.

Merci à toi qui m'a fait confiance (malgré un bug que j'ai pu corriger rapidement).
N'hésite pas à me signaler les améliorations ou corrections que je pourrai apporter.

http://ti58c.phweb.me
http://clones.phweb.me
http://www.instagram.com/ti58c
"No! Do or Do not. There is no try!" [Master Yoda]
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)