The HP67 and Non-Normalized Numbers

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

It's only fair to share...Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInShare on StumbleUponDigg thisPin on PinterestEmail this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *