HP-16C emulator

## HP-16C emulator

2013.03.31

This article expresses the author's opinion at the time of writing. There are no guarantees of correctness, originality or current relevance. Copying the whole article is forbidden. Transcription of selected parts is allowed provided that author and this source are mentioned.

After some four months of work, here is the newest of my HP-1xC series' emulators: HP-16C, the programmer's calculator.

It is an RPN calculator and follows the generic layout and operation approach of the HP-12C (the only of the HP-1xC series that is still in production), but tailored for "programmers and computer scientists".

HP-16C implements integer binary arithmetic, with hexadecimal, octal, decimal and binary display modes. Many common CPU operations like rotation, shift, mask etc. are present, as well as overflow and carry flags that behave as expected by people familiar with assembly. Implementing those functions was a nice exercise on low-level stuff.

It also has a "vestigial" floating-point mode similar to those in HP-12C, 11C and 15C. I call it vestigial because very few floating-point operations are implemented beyond basic arithmetic: square root and reciprocal. (To put this limitation into perspective, the financial HP-12C has transcendental functions like exponential and logarithm.) So this calculator cannot double as a scientific/general purpose calculator, which is surely a reason why it was discontinued around 1987.

Nowadays, even developers and CS people would not need such a calculator very often. But, from time to time, we need to make some calculation in hex or binary. Then it might be useful to have an HP-16C around, even in the emulator/Web form.

In case you are curious why I wrote the emulator of such a thing. Because I could, that's why :) I like the HP-1xC calculators, I appreciate how careful the 1970's and 1980's products were designed and perfected — and they came with thick, nicely-written manuals. I need to do some binary arithmetic myself, from time to time, so it is useful to me at least.

After all, the HP-12C is quite outdated (it does not have Black-Scholes!!) and it still sells a lot — the emulators and the real HP units, too. I wrote the HP-11C emulator (11C is scientific, not financial) thinking it would "sell" to no more than a couple users. And guess what, the page has hundreds of accesses every day. Who would have guessed?

The emulator still takes a lot of testing to be deemed stable. Bug reports are welcome. The emulator is a clean-room implementation, as usual. It is not a hardware emulator and it does not use a HP-16C ROM dump. That would be too easy — and an intellectual property violation as well.

Also, the operation is not very intuitive, so I will add some basic instructions at emulator's page very soon. For now, I have added a link to a HP-16C manual PDF. Meanwhile, feel free to ask at comment's section at the bottom of the page. Enjoy!