JRPN - Jovial Reverse Polish Notation Calculators
Click either calculator to run! Installation instructions here; web version notes here.
JRPN 16C is calculator simulator inspired by the HP 16C "Computer Scientist" calculator. JRPN 15C is similarly inspired by the HP 15C. Both came out in 1982, and for my money, there were marvels of their time. The 15C I bought in early '83 still works great! If you're looking for a user guide, it's available here.
I've tried to make them work the same as a real 16C/15C, and to mimic the appearance as closely as possible. This is a completely clean-room implementation; I didn't have access to any of the calculators' source code. I just read the manuals (very closely!), asked a question or two about how the real thing behaves, and I played around with a couple of other simulators out there. A couple of algorithms were ported from Torsten's Tcl code (e.g. for numeric integration), but they are known to not be based on HP's code.
The User's Guide for each simulator is basically the Owner's Handbook, which can be easily found on the web. A couple of little things are different:
One nice aspect of these simulators is that they scale the UI to any screen size, without any pixelization. The entire UI is drawn using graphics primitives (with the exception of a logo on the back panel), so it should never look "grainy." As for me, I mostly wrote these because it was fun.
A bit of history: I bought a 15C when I was a freshman at UCLA, back in January of 1983. It still works great, but while traveling it was nice to have a good calculator on my laptop. I used Torsten's 15C simulator starting in the late '90s, mostly on MacOS.
Much later, I ran across Emmet Gray's wonderful WRPN calculator. I always wanted a 16C, but I never really needed it, and I was a starving student at the time :-) WRPN works great on Android, but the UI uses images that were created back when screen resolutions weren't so high, so I dropped Emmet a line, and re-did some of the UI and published that as what I'm now calling "Legacy JRPN".
When COVID hit, I had some spare time :-) I was playing around with Flutter, and decided it would be fun to do a complete rewrite, with the goal of making the UI a close match to the real calculator. Starting with the LCD display, I went to ridiculous lengths to mimic the real appearance. The result is a calculator with a UI that's completely drawn from graphics primitives, so it can scale to any screen size or resolution, across a wide variety of platforms.
My still-working 15C from 1983 sits on my desk most of the time, and it just seemed to make sense to make a 15C simulator off of the same codebase. So I did. I must say, I have a whole new level of appreciation fot the sophistication of the 15C. The amount of functionality they were able to pack into such limited hardware is amazing!
Here are some links to the web version:
Full source is available here. It's built using Google's Flutter, which means it can be built for a large variety of platforms. It's available free of charge, and doesn't do any advertising or tracking or anything like that; it's basically a labor of love. Of course, there is no warranty of any kind. For avoidance of doubt:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The input model for these calculators is very sophisticated -- it's a little like "vi" in terms of getting the most out of limited hardware. The simulator is a bit like a modern Harley Davidson motorcycle. I rented one once, and they engineer in a certain amount of vibration and engine noise that are totally unnecessary, but that make you feel like you're "taming the iron horse." In a similar way, this simulator displays results on what looks like a limited 7 segment display (though it will scale it down to fit in more digits, if you enable that in the settings.). It includes a slight delay and a bit of a blink on the LCD when you do a calculator operation, and in other ways it attempts to behave like a 1982-vintage calculator running on a low-power 4 bit CPU.
The web version of JRPN works pretty well, but the web target for Google's Flutter sometimes comes with nasty surprises. To be clear, I don't particularly blame the Dart team -- JavaScript is an awfully shaky foundation on which to implement decent language semantics, and I'm sure the team can't wait to jettison it in favor of WASM. Anway, JRPN's web versions do work, but the primary, best-supported platforms for JRPN are desktop and mobile phone.
You can get JRPN 16C and 15C at the following locations: