An HP16C Calculator (or two) (or three)
Hewlett-Packard has built some of the greatest calculators in the world. And with all due respect to Texas Instruments, I vastly prefer the Reverse Polish Notation of HP calculators.
Unfortunately, they don't keep building some the greatest calculators in the world. My absolute favorite, the HP16C Programmer's Calculator, was discontinued many years ago. So one day, in a fit of frustration, I wrote a simulator for it. I have the illusion that I have done a truly accurate simulation of this wonderful device, but only time will tell.
There are three versions available. Only one is supported.
Some years ago, I took my old 16-bit code for this simulator, which wasn't quite an honest simulation because it limited the word size to 32 bits, and brought it up to date for Win32, where I can emulate the 64-bit arithmetic of the HP calculator itself.
You can download the executable and my somewhat abbreviated manual. Someday when I'm feeling strong I may publish the source, but I don't think it is yet ready for release.
I became frustrated with the AppForge people (see the next section); their "upgrade" prices became far too expensive for me to keep up with, given my only platform was my own Palm pilot. So I wrote a version in C#, with the hope that someday, if I ever get a PocketPC, I'll be able to put it on my pocket PC. It fixes a number of known problems with the MFC version, which at the moment I am declaring legacy code and which will not be maintained.
I plan to make the full source available on this Web site in the near future. It implements everything in the HP16C except DBLR, DBL÷, and DBL×. If you have an LCD font, you can replace the Arial font which is used for the display with a font of your choice. You can save programs, and all save files are in XML format.
There are several packages available (or will be). I consider this the definitive version, so it is the only one that will be receiving maintenance in the future.
|C# Executable and all help files. You must have the .Net framework installed for it to run. (Alpha release...no warranties. Please report bugs to firstname.lastname@example.org)|
|A .msi file that includes the C# executable, the help files. This creates the mapping of .hp16 files to the calculator app|
|The complete C# source.|
|Link to the Microsoft download pages for the .Net framework. Choose one of the ".Net Redistributable" downloads.|
(Note: because of the high cost of updating to AppForge, I have abandoned this version of the HP16C calculator. If you have AppForge, this source may be useful. Or you may choose to try to convert it to regular VB)
In addition, I have a version of the calculator for the Palm Pilot. This is a much smaller subset of the full HP16C. For example, the Palm version is not programmable. This project is still "under construction" and may evolve as I find and fix other problems. Because of the screen size and resolution of the Palm Pilot, I don't show all the functions; instead, I change the captions on the buttons for the various modes. Three screen shots are shown below. While a bit less convenient than having everything visible, I was limited by the screen size to this solution. I also had to rearrange the buttons a bit to fit them all on the screen because it is impossible to fit ten columns of keys across a Palm Pilot screen.
|Decimal display, normal||Decimal display, gold-shift||Hex display, blue-shift|
Since it was written in Visual Basic, there are some anomalies, and the VB I used is lacking some features scheduled for future releases, so I don't have all the functionality in that I would like to have. Also, I chose to omit all programmability functions, which I rarely use, and simply increased the complexity of my Windows implementation. Limitations therefore include:
I could invest a whole lot more effort and fix some of these, and some future releases of the AppForge VB system should solve others, so I'm currently willing to live with these restrictions. No, it isn't perfect, but it's what I've got this week. And it is useful enough that it seemed worth putting up.
A summary of the functions is illustrated in the table below. The operations shown in gray and with a strikeout are not implemented. Those functions shown in gold, white, or blue are implemented, subject to the arithmetic restrictions imposed by the Visual Basic system.
The Visual Basic I use is the AppForge system which integrates into Microsoft's Visual Basic/Visual Studio environment. If you are interested in this, check out www.appforge.com. I really did this as a learning exercise because I'm developing some other Palm applications which integrate with PC applications.
|Download the complete VB project, including the VB source and the .prc executable file for the Palm. (Note that while you can build and run this on Windows as a VB executable, you need the AppForge product to create a Palm application).|
|Download only the .prc executable for the Palm. If you have your Palm Desktop properly installed, double-clicking the .prc file will put it into the download area, and the next HotSync will load it to your Palm Pilot.|
The views expressed in these essays are those of the author, and in no way represent, nor are they endorsed by, Microsoft. And in the case of this page, they do not represent, nor do I have any official affiliation with, Hewlett-Packard or AppForge.