HP-41 card reader bug

It occurred to me while studying simulator traces that it might be interesting to investigate a bug in early versions of the 82104A card reader for the HP-41C calculator. The bug was fairly esoteric and easily avoided, as it seemed to occur when backspacing over a four-digit numeric prompt after EEX and two digits have been entered. (This is somewhat reminiscent of the famous Therac-25 bug, though without the fatal consequences.)

The card reader bug is present in the 1E version of the card reader (and probably 1D), and fixed in the 1G version. I haven’t got a 1D or 1F to check. I discovered the bug around 1981, and I think I saw it mentioned by someone else in the PPC Journal at one point.

With the card reader plugged in, press the key sequence

GTO . EEX 0 0 backspace backspace

What you should see after that is

GTO .1__

If you have the bug, the display rotates so it reads

0      GTO .1

From study of a instruction trace, it appears that the bug is due to the card reader ROM’s I/O service poll routine violating one of the requirements of the mainframe polling code. From the mainframe source code:

All subroutine levels are available except in I/O service entry. If PKSEQ is set then I/O service routines must either preserve three subroutine returns on the subroutine stack or else terminate the partial key sequence.

The CR-1E I/O service poll code uses two levels of subroutines. Perhaps the CR-1G ROM was changed to not need two levels of subroutines, though I haven’t yet disassembled the code to determine what the actual changes are.

This entry was posted in Calculators, Nonpareil, RetroChallenge. Bookmark the permalink.

2 Responses to HP-41 card reader bug

  1. JOHAN F. BATTIE says:

    Just a used Card-reader, which when I put in my cards for a program I have, I got to card #6, and the card got “stuck” and my computer gave a reading of “LOW BAT”
    I tried it again, and this time it stopped at card #3. same message. Tried one more time, and this time it did not accept card #1. When I did not activate USER’ the cards fed through!
    Is there any information about this kind of problem?

  2. Eric says:

    A standard problem with the HP card readers is that the rubber roller turns to goo. They can reportedly be replaced with commonly available O-rings or model airplane fuel line, though I haven’t tried either one myself. For example: card reader repair thread on hpmuseum.org forums

Leave a Reply