The HP-16C Computer Scientist is a programmable pocket calculator that was produced by Hewlett-Packard between 1982 and 1989. It was specifically designed for use by computer programmers, to assist in debugging. It is a member of the HP Voyager series of programmable calculators. It was the only programmer's calculator ever produced by HP, though many later HP calculators have incorporated most of the 16C's functions.
Features
The 16C can display integers in hexadecimal, decimal, octal and binary, and convert numbers from one number base to another. It also deals with floating-point decimal numbers. To accommodate long integers, the display can be 'windowed' by shifting it left and right. For consistency with the computer the programmer is working with, the word size can be set to different values from 1 to 64 bits. Binary-arithmetic operations can be performed as unsigned, ones' complement, or two's complement operations. This allows the calculator to emulate the programmer's computer. A number of specialized functions are provided to assist the programmer, including left- and right-shifting, left- and right-rotating, masking, and bitwiselogical operations.
The back of the 16C features a printed reference chart for many of its functions.[12]
The calculator uses the proprietary HP Nut processor produced in a bulk CMOS process and featured continuous memory, whereby the contents of memory are preserved while the calculator is turned off.[13] Though commonplace now, this was still notable in the early 1980s, and is the origin of the "C" in the model name.
Programming
The 16C, like all other members of the Voyager series, is itself programmable. Keystroke programming is used. Up to 203 program steps are available, and up to 16 program/step labels. Each step and label uses one byte, which consumes register space in 7 byte increments.
Here is a sample program that computes the factorial of an integer number from 2 to 69. The program takes up 9 bytes. The codes displayed while entering the program generally correspond to the keypad row/column coordinates of the keys pressed.
Step
Keystrokes (shift keys not shown)
Displayed code
Comment
001
LBLF
43,22, F
Define label F (mnemonic for "factorial")
002
x<>I
42 22
Store x in register I
003
1
1
Store 1 in x
004
LBL0
43,22, 0
Define label 0
005
RCLI
45 32
Recall register I into x
006
×
20
Multiply x and y
007
DSZ
43 23
Decrement register I and if not zero ...
008
GTO0
22 0
... go back to label 0
009
RTN
43 21
Stop program - result displayed in x
To run the program, enter the argument onto the stack, then press the keystrokes GSBF. The result is displayed when the program terminates.
Legacy
HP has never made another calculator specifically for programmers,[2] but has incorporated many of the HP-16C's functions in later scientific and graphing calculators, for example the HP-42S (1988) and its successors.
Like many other vintage HP calculators, the HP-16C is now highly sought-after by collectors.[14]