 The Museum of HP Calculators

# HP-16C

The HP-16C was HP's first (and so far only) programmer's calculator.

## Numbers and Bases

The HP-16C could display numbers in Hexadecimal, Decimal, Octal and Binary formats using a standard 7 segment display. The hex digits displayed as AbCdE with the "b" and "d" in lower case so they could be distinguished from "8" and "0". Because some bases (especially binary) could result in very long numbers, a windowable display was provided along with an indication of more digits to the right and/or left. The display could be shifted a digit or a window at a time.

## Configurable emulation

Rather than being content to just do basic binary math, HP designed the calculator to be configurable to match the computer the user was currently working with. The word size could be set to anywhere from 1 to 64 bits. And the calculator could be set to perform unsigned, 1's or 2's complement math. Once set, the HP-16C would do math like the user's computer, including setting the overflow and carry flags.

The HP-16C also provided floating point math. Two conversion algorithms were supplied to convert between the HP-16C floating point format and the (then proposed) IEEE format.

## Functions

The HP-16C provided a wealth of functions for the programmer including.

• Integer and floating point math.
• Shift functions: Left and right, arithmetic and non.
• Rotate functions: Rotate a single position or N positions left or right, through carry or not.
• Left justify the bits of a word.
• #B: returned number of bits set in a word
• Multiply/Divide: Provided functions for multiplying single precision numbers into single precision or double precision results. Likewise, allowed single or double precision dividends.
• Bitwise Logic: and, or, not, xor
• Bit setting and testing
• Flag setting and testing: (user flags and overflow/carry)

The calculator also included a few "normal" features like square root, and invert.

## Programming

While designed to debug programs, the HP-16C was programmable itself. The HP-16C used label addressing with labels 0-9 and A-F.

The HP-16C contained 203 bytes of RAM shared between program and register storage. All space was initially allocated to registers until programs were entered. The number of bytes consumed by each register (and therefore the number of registers available) depended on the current word size rounded up to the nibble. For example if the word size was 15 bits, then each register would consume 16 bits and 101 registers would be available if no programs were stored.

## The Lone Programmer

HP has (so far) never made another programmer's calculator which would suggest that sales were poor. This is surprising considering the amount of mail the museum receives praising this model. If you're desperate for an HP-16C and a don't need pocketability, consider this simulation for Microsoft Windows.

Introduction-Discontinuation: 1982-1989 Go back to the main exhibit hall Next Calculator Made Previous Calculator Made