|Type||Programmable, Computer science|
|Cost||150 USD (1982) - 120 USD (1989)|
|Display type||LCD seven-segment display|
|Display size||10 digits|
|Programming language(s)||Keystroke programming (fully merged)|
|Memory register||203 bytes (shared with programs)|
|Program steps||up to 203 steps (shared with data registers)|
|Power supply||3× LR44 1.5 V button cells|
|Power consumption||0.25 mW|
|Dimensions||128 × 79 × 15 mm|
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.
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, one's 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, masking, and bitwise logical operations.
Apart from programmer functions, the calculator's abilities are limited to basic arithmetic (and reciprocal and square root), which meant that typical users would also make use of a general scientific calculator. Floating-point numbers are only supported for base 10. However, it is still far more powerful (though also much more expensive) than contemporary competitors such as the non-programmable computer math calculator Casio CM-100 or the TI Programmer, LCD Programmer or Programmer II.
The base of the 16C features a printed reference chart for many of its functions.
The calculator uses the proprietary HP Nut processor produced in a silicon on sapphire process and featured continuous memory, whereby the contents of memory are preserved while the calculator is turned off. Though commonplace now, this was still notable in the early 1980s, and is the origin of the "C" in the model name.
Appropriately for a programmer's calculator, 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.
(shift keys not shown)
|001||LBL F||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||LBL 0||43,22, 0||Define label 0|
|005||RCL I||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||GTO 0||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 GSB F. The result is displayed when the program terminates.
HP has never (as of 2016) made another calculator specifically for programmers, 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, and several emulators are available for desktop computers, web browsers, smartphones and other calculators. There is also an HP-16C emulator application for Android.
In 2012, SwissMicros (aka RPN-Calc) introduced a miniature clone named DM16CC approximating the size of an ID-1 credit card (88 mm × 59 mm × 7 mm). It closely emulates the functionality of the original HP-16C by running the original ROM image in an emulator on an ARM Cortex-M0-based NXP LPC1114 processor. Newer DM16 models feature a better keyboard and more RAM (LPC1115). A DM16 Silver Edition in a titanium case is available as well in three color variants (metal, brown, blue). Deviating from the original, these calculators feature a dot-matrix display, switchable fonts and clock speeds, and they come with an USB serial interface to exchange data with a PC etc. for backup purposes (and possibly to communicate with applications like PC-based HP-16C emulators) or to update the firmware. In December 2015, SwissMicros introduced the DM16L, a version of the calculator about the same size as the original HP-16C.
- Thimet, Tony. "Hewlett Packard HP-16C". Retrieved 2013-07-16.
- "HP-16C". Museum of HP Calculators. Retrieved 2013-07-16.
- Toth, Viktor. "Hewlett-Packard HP-16C". Retrieved 2013-07-16.
- electronic calculator - TI programmer (PDF). Texas Instruments Incorporated. 1977. Archived (PDF) from the original on 2017-03-28. Retrieved 2017-03-28.
- Thimet, Tony. "Texas Instruments LCD Programmer". Retrieved 2013-07-16.
- electronic calculator - TI LCD programmer (PDF). Texas Instruments Incorporated. 1981. Archived (PDF) from the original on 2017-03-28. Retrieved 2017-03-28.
- "Hewlett-Packard 16C aka Voyager PR". MyCalcDB. Retrieved 2013-07-16.
- "HP-16C Owner's Handbook" (PDF). Hewlett-Packard. Retrieved 2013-07-16.
- Albillo, Valentín. "Long Live the HP-16C!" (PDF). Retrieved 2013-07-16.
- Gray, Emmet (2012-02-05). "WRPN Calculator". Retrieved 2013-07-16.
- "Java HP16C Emulator". 2005-08-15. Retrieved 2013-07-16.
- Pfützenreuter, Elvis. "Web HP-16C emulator". Retrieved 2013-07-16.
- "hpcalc-iphone". Retrieved 2013-07-16.
- Schwartz, Jake; Grevelle, Rick (2003-10-20) . HP16C Emulator Library for the HP48S/SX. 1.20 (1 ed.). Retrieved 2015-08-15. (NB. This library also works on the HP 48G/GX/G+. Beyond the feature set of the HP-16C, this package also supports calculations for binary, octal, and hexadecimal floating-point numbers in scientific notation in addition to the usual decimal floating-point numbers.)
- Martin, Ángel M.; McClure, Greg J. (2015-09-05). "HP16C Emulator Module for the HP-41CX - User's Manual and QRG" (PDF). Archived (PDF) from the original on 2017-04-27. Retrieved 2017-04-27. (NB. Beyond the HP-16C feature set this custom library for the HP-41CX extends the functionality of the calculator by about 50 additional functions.)
- Martin, Ángel M. (2015-09-07). "HP-41: New HP-16C Emulator available". Archived from the original on 2017-04-27. Retrieved 2017-04-27.
- "What is HP-1XE?". Retrieved 2017-03-13. (NB. HP-11C/12C/15C/16C microcode emulator package for HP 48S/48SX/48G/48GX/48G+/49G.)
- Thörngren, Håkan (2017-01-10). "Ladybug Documentation" (release 0A ed.). Retrieved 2017-01-29. 
- "New HP-41 module available: Ladybug". 2017-01-10. Archived from the original on 2017-01-29. Retrieved 2017-01-29.
- "WRPN 16C". Retrieved 2016-05-13.
- "SwissMicros.com". Retrieved 2013-06-29.
- Hewlett-Packard HP-16C Computer Scientist Owner's Handbook (PDF). Hewlett-Packard Company. April 1982. 00016-90001. Archived (PDF) from the original on 2017-03-28. Retrieved 2017-03-28.