Sunday, July 23, 2023

HP 45 (and 35 and 80) Calculator Emulator

Retrocomputing Pages: HP-1973

Quick download links:
      MacOS standalone application : please read the README file before running for the first time.
      Windows standalone application (using included embedded Python distribution)
      Python source for use with existing Python 3.10.10+ environment (MacOS/Windows/Linux)

I love the HP-45 calculator. It's beautiful on the outside, but I wanted to show people that it's beautiful on the inside, too. So, as a coding and retrocomputing challenge I decided to rewrite an earlier, terminal-based simulator of mine in Python (but with standalone executables), with a GUI. As with all such 'just a few days on this' projects it spiralled out of control, and the result is HP-1973.

(right-click and open image in new tab to view full size)

It not only runs (included) ROM code from the HP-45, but also the HP-35 and the HP-80. You can select which calculator you wish to use when the application starts, and also have the option to choose between multiple ROM versions for a given calculator (with warnings if a ROM is known to contain bugs). In total, six calculator-ROM variations are included.

(right-click and open image in new tab to view full size)

Calculator operations can be performed with an onscreen keyboard, or using the computer keyboard. The simulator is designed to demonstrate the internal logic and programming of the calculators as operations are executed.

(right-click and open image in new tab to view full size)

The interface is very flexible. The keyboard, for example, can be shown on the left or the right. Values are available in decimal, hex, octal and binary. Storage registers can be shown in raw format, as they are held internally, or in more-easily-read scientific format. And so on. Additionally, the ROM map (which shows which addresses in the calculator's internal ROMs have been accessed), list pane and keyboard can all be hidden completely.

(right-click and open image in new tab to view full size)

The list of executed ROM code can be built up as it is executed, or pre-filled with an entire ROM listing through which execution is then traced. There's also a stepping mode which provides fine-grained control of execution. Steps can be over a certain number of instructions, but can also run all instructions up until the next instruction of a particular type.

(right-click and open image in new tab to view full size)

There's a lot going on. The simulator won't teach you how to use an RPN calculator, but the manuals for the HP35, HP-45 and HP-80 are all available online for that. However, there are thousands of words of help included in the application, covering both the simulator options and also the internal workings of the calculators themselves. So, without leaving the app, you can find out the meaning of all the values shown, and how the calculators use them in processing operations.

(right-click and open image in new tab to view full size)

Finally, if you don't like the way the window looks, the app includes seven different colour themes (and you can always create your own by editing the preference file).

(right-click and open image in new tab to view full size)

Download it here:
      MacOS standalone application : please read the README file before running for the first time.
      Windows standalone application (using included embedded Python distribution)
      Python source for use with existing Python 3.10.10+ environment (MacOS/Windows/Linux)

The standalone versions don't need an existing Python installation: just download, follow the README instructions, and run like any other app. On other operating systems, a Python 3.10.10+ installation with numpy and tkinter is enough to run the simulator.

Oh, and yes, it does implement the secret timer function of the HP-45.



from Hacker News https://ift.tt/Jd6CWnf

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.