HP-97 in Nonpareil (work in progress)


I've now got the HP-97 up and running in Nonpareil well enough that I can start debugging the printer instructions. It's taken a lot of time studying disassembled 67 and 97 firmware to get to this point.

The most recent hurdle was figuring out that the paper advance button sets one of the ACT flags if the button is NOT pressed. Previously I wasn't getting anything on the display, and the code seemed to be stuck in a loop, the purpose of which was unknown.

Once the 97 is done, the 19C should follow very quickly, as it uses hardware nearly identical to the 97, other than having no card reader and fewer keys. The 91, 92, and 95C should also be easy, but I don't yet have ROM dumps.

I'm hoping to get a new release of Nonpareil finished up in time for HHC 2008. The main changes will be new model support (67, 97, 19C, 29C, and possibly the 10C) and some bug fixes. There's a lot more changes under the hood.

For ROM licensing reasons the 11C, 12C, 15C, and 16C will not be present in the main Nonpareil package, but will instead be part of a separate Voyager package. The details of the Voyager package have not yet been determined.


Brilliant - good luck Eric.

I'm really looking forward to the next release.

Mike T.


Having the microcode version of the HP-97 for nonpareil would be great!

Looking around - I haven't been able to find a working kml/obj/png set for the HP-67.

Anyone know where to find one?




Edited: 14 July 2008, 2:29 p.m.


The HP-67 doesn't work in the released version of Nonpareil. That's one of the things I've been working on since that release.


Good to know. I was hoping I'd overlooked a recent announcement.

I finally ran across the patent PDFs you've collected. Wow, what a treasure trove of information. I'm a little overwhelmed!

I'd really like to learn how to write assembly for these processors - one of my many other "sure would like to..." items ;)

You've done a huge amount of work in this area Eric. I'm looking forward to meeting you in Corvallis.



I've got the HP-97 printer now almost completely working in Nonpareil. Currently I'm not simulating the timing of the printer, and as a result, things that should be on one printed line are split across two. For example, with 0.00 in X, hitting PRINT X should result in one line with "0.00 ***", but I'm getting the asterisks on one line and the number on the next.

The printer prints right to left, and my simuluation is finished printing the asterisks before the firmware is ready to print the number. In the real calculator, it prints part of the line, gets more stuff ready to shove into the print buffer, polls the chip until it says it has "seen the carriage return" (but not yet acted on it, then tells it to print more, which winds up on the same line. The process is described in the HP Journal article on the HP-91, but I had to figure out some of the details.

I can print program listings, which for the reason given above wind up with the keycodes on one line and the instruction on the next (in TRACE mode).

Running a program in TRACE mode doesn't work, as the X register gets corrupted. NORM and MAN modes are OK, including printing functions. It's possible that this corruption is related to the timing problem.

It's always fun to get another calculator model running in Nonpareil, but this one has been especially interesting since it involved reverse-engineering the behavior of the CRC and PICK chips. Jacques Laporte helped with the CRC.


I've got the printer timing fixed, so now things that belong on the same printed line are not split across multiple lines. Unfortunately that apparently was not the cause of the problems with corruption of the X register in TRACE mode or after printing a program listing.

Using the simulated printer is more annoying than the real thing, because there's no indication of activity until the whole line appears in the GUI, after a delay. I may eventually have to rework the code so the progress of the printhead is visible. Adding a sound effect might be nice. Does anyone have a clean audio recording of an HP-97 printing?

There's an anomaly some extraneous digits being printed to the left of the first program step in a program listing. I suspect that it is related to the TRACE problem.

Screenshot of the Nonpareil 97 calculator window:


(I'm not very good with graphic arts, so Nonpareil mostly uses graphics from others, but I didn't have anything to use for the 97 so this is my own crude attempt. The color of the small keys is too close to the background color, but that was true of the photo I was using as a reference.)

Screenshot of the Nonpareil 97 printer window:


Shows calculations of e to the pi and pi to the e, and a listing of a simple program to display consecutive factorials.

There are a few mistakes in the 97 printer font I haven't yet corrected; I think the numeral "1" is the most noticable.

Possibly Related Threads…
Thread Author Replies Views Last Post
  emu48 - copy stack doesn't work (as expected) Thomas Radtke 2 1,963 11-11-2013, 02:19 PM
Last Post: Thomas Radtke
  Another Prime mystery - templates don't work anymore Michael de Estrada 2 1,342 11-02-2013, 11:34 AM
Last Post: Michael de Estrada
  Does the HP Prime software only work with Win 7/ 8 ? Michael de Estrada 3 1,670 10-12-2013, 02:52 PM
Last Post: John Ioannidis
  Nonpareil Rom files davorin 2 1,449 09-20-2013, 06:20 PM
Last Post: Didier Lachieze
  Back to School/Work/Other Calculator Poll Eddie W. Shore 63 16,820 09-12-2013, 06:03 AM
Last Post: bhtooefr
  Nonpareil + HP10C Mike (Stgt) 0 961 05-13-2013, 04:58 AM
Last Post: Mike (Stgt)
  How I use my HP50G at work. David Bengtson 7 2,481 05-06-2013, 02:57 PM
Last Post: Ingo
  Does IR printing not work on your converted WP34s? Then read on... Harald 3 1,645 04-04-2013, 05:46 PM
Last Post: Harald
  No luck getting flash disk to work in 95lx Harald 7 2,947 03-18-2013, 08:11 AM
Last Post: Harald
  35s refuses to work Silvio A. Bensi 19 5,646 10-18-2012, 12:48 AM
Last Post: Reth

Forum Jump: