This is an interesting side note for fanatics. You can skip this if you are not a fanatic.
NOTE: If you have a HP97 don’t use non-normalized numbers (NNNs).
The HP97 is a printing version of the HP67. NNNs burn out the print head on a HP97.
The HP calculators used binary coded decimal (BCD) to fit numbers into registers (X, Y Z, T) and into memories.
Internally, numbers were stored in SCIentific notation with a 10 digit mantissa and a 2 digit exponent. When you add a sign to the mantissa and to the exponent you end up with 14 BCD digits: SMMMMMMMMMMSEE. S is 0 if the mantissa or exponent is positive and 9 if negative.
14 BCD digits occupy 15 display positions as the decimal point is always right of the first mantissa digit and, on the HP67, a decimal point occupies a display position of its own.
BCD defines meanings for 0-9 but each four-bit nibble can also hold other values (0x0a – 0x0f in hexadecimal notation).
The display uses values outside of 0-9 to display the messages you see such as “Error” and “Crd”.
Nibble values in registers display as: 0-9 = 0-9; A = “r”, B= “C”, C=”o”, D=”d”, E=”E”, F=” “.
The 14 BCD digits occupy 7 bytes of memory. Each program step occupies 1 byte (even if it is 3 keystrokes).
One way of creating NNNs was to key in program steps, write these to a mag card and then write a data header over the start of the card (f W/Data, insert card, turn the calculator off midway through the write). You could then load the card back in, as data, and see what appeared in the storage registers.
A more interesting way involved getting the program counter outside of steps 000-224 (it would point into a storage register) and then keying in program steps there.
See also:
Holy Joe
my notes from 22 Dec 2005