Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

HP-35 and HP-45 Simulator for PDP-8

Kyle Owen - 9 September 2016

This program is a simulator using the original HP-35 and HP-45 microcode. Thus, the same key sequences on this simulator will result in the same answer as an original calculator.

This work was heavily inspired by Eric Smith's casmsim and nonpareil simulators. nonpareil can be found at


This software is provided as-is, without a warranty of any kind, either express or implied.


This has been tested and works fine under SimH. Previous versions have run well on Omnibus hardware. With macros, a 4k HP-35 only version is available, but otherwise, it requires two fields (8k words) to run. This program relies on the over-typing of a single line of text with the video terminal switch set; hence, a video terminal is recommended. However, a rudimentary printing terminal option has been developed.

palbart is used to assemble the file for use under SimH. gcc or clang is used to compile obj2oct, which is a simple utility used to convert a nonpareil object file to an octal syntax used in the program. A simple Makefile is provided in order to assemble the binary for SimH use, and can be used assuming palbart is installed as pal in your path.


Starting the program at 0200 will run the simulator; switching SR0 (the left-most switch) will toggle between HP-35 (0) and HP-45 (1) modes if assembled with the default options. Typing ? will print the valid keys used to interact with the simulator, again assuming the full version was assembled.


Ensure the switches are set correctly; the default options are for the 8k full-featured OS/8 version, which should work fine. Transfer the file to the OS/8 image of your choice using PIP, but first, ensure that the assembly file has DOS line endings. In VIM, you can do this with :e ++ff=dos followed by a :w.

If you're using SimH, you'll need to ensure you've attached the file to the reader using at ptr [file].

The basic PIP usage in OS/8 is:



PIP will print a ^; press return, then ctrl-c, and then assemble it using PAL: PAL DSK:HPCALC. No errors should be generated.

To run the program, you can LOAD DSK:HPCALC.BN /G. Or, if you are so inclined, you can save it as a .SV file by first running LOAD DSK:HPCALC.BN, then:

SAVE DSK HPCALC 00000-04777,10200-17377;00200=0000

This saves locations 0-4777 in the first field, 200-7377 in the second field, sets the starting address to 200, and sets the job status word to the appropriate value (page 1-37 in the OS/8 Handbook).

Now, you can RUN DSK HPCALC to start the program. Assuming you have enough room on SYS:, you can COPY SYS:HPCALC.SV<DSK:HPCALC.SV and now start the program with R HPCALC. A ctrl-c should return you to the OS/8 prompt.



  • Better support for printing terminals (more challenging)


Thanks to Eric Smith for his inspiration in creating casmsim followed by nonpareil.


HP-35 and HP-45 simulator for PDP-8



No releases published


No packages published