Nonpareil status

I’m still making progress towards a new release on Nonpareil.  Sometimes it seems like the more work I do, the more I find that needs to be done.

The ability to cross-compile a Windows version has been broken for a while, but now I’ve got it going again, thanks in no small part to Ronald Burkey’s IMCROSS, a package which automates building cross-development environments for Windows and Mac OS X.

I’ve nearly completed the conversion to having each calculator defined by two files, an .ncd (Nonpareil Calculator Definition) file that defines everything about the behavior of the calculator, and an .nui (Nonpareil User Interface) file that defines GUI interface.  The .ncd file is a compressed XML file, while the .nui is a ZIP file containing a .kml file defining the user interface, and a lot of .png files for the calculator background (without buttons or legends), overlay (shifted legends), and buttons.  The intent is that a given calculator model (e.g., 34C) needs only one .ncd file, which would normally never need to be altered, but any number of .nui files that might present different appearances, window sizes, etc.

For the 41C family only, the actual firmware for the mainframe, peripheral, and option ROMs comes from .mod files rather than the .ncd file.

I still need to integrate an NSIS installer builder into the Nonpareil build system.  Some time back, Christoph Giesselink contributed an .nsi file that will serve as the basis.  However, rather than having the details of which calculator models are included and which files they need present in the .nsi file, I want to have the SConstruct generate them from its own data structures and the .ncd and .nui files.

Aside from some bug fixes, there probably won’t actually be that much in the way of new features visible to the user.  There will be support for the 29C and for a 67 without card reader.  Jacques Laporte helped me quite a bit with figuring out how the card reader instructions work, and he has the card reader working in his Java-based simuulator, but I don’t want to hold up the Nonpareil release until I get it working in my simulation code.  I do plan to have it in a future release.  I still don’t have a complete understanding of the ACT processor’s pointer wraparound behavior, but I know how to fake it well enough to avoid the hang in the label search code in the 19C, 29C, 67 and 97.

The Voyager calculators (11C, 12C, 15C, and 16C) will NOT be included in the next Nonpareil release, but will be in a separate add-on package.  This is because the ROM files for the Voyager calculators are not available under a Free Software license, so a package containing them cannot be included in Fedora, Debian, or various other Linux distributions.  By splitting them into a separate package, at least the base Nonpareil package can be accepted into Linux distributions.   I really should have avoided this problem by putting them in a separate add-on package in the first place.

The new release (other than the Voyager add-on package) will be released  under the GPLv3, rather than the GPLv2 that was previously used.

This entry was posted in Calculators, Nonpareil. Bookmark the permalink.

8 Responses to Nonpareil status

  1. Lokkju says:

    Hey, I was wondering what your reaction was to the iPhone AppStore release of hpcalc-iphone, which is based on your code?
    According to the author, he ported your code to the iPhone, and he is now selling each *c app for around $19.99. What confuses me is though he has released multiple version to the AppStore, he has not updated his public source repositories (on Google code hosting) since Feb 2008, and the application very definitely links to non-free libraries (it is required to build for the AppStore).
    Both the lack of source code and the linking against non-free libraries sound like a violation of your GPL license…

  2. Eric says:

    Thomas Fors LLC has licensed the code from me under non-GPL terms, so his applications are not required to be Open Source. Otherwise it would be a problem, as you’ve observed.


  3. Minh says:

    Hello. I just wanted to say I love your work. I have the iPhone version of the 15C ported by Thomas Fors. I am looking forward to having a Windows version. Thanks a bunch!

  4. Hallo,

    the last Blog entry is now 6 month old. Any news?

    BTW nonpareil is now available for the Mac via MacPorts:


  5. Roberto says:


    I’m checking every week from long time ago for new updates of nonpareil.

    I’m the proud owner of my hp15c (24 years old, still working, no fails, no repairs done), but i learned to program in a HP97. Is there any posibility of an limited release for it? it would be lovely …

    Thanks for you great work


  6. Mick Mueck says:


    Is there any possibility of making a Mac OS X widget for some of these calculators? Of the versions available, my favorite is the HP15c :-).

  7. mathew says:

    Any chance of the Voyager ROM release, with or without improvements to the core nonpareil code?

  8. Peter Simpson says:

    Hi Eric -

    I’m a very happy user of the HP41 in Nonpareil. If there were one enhancement I would choose, it would be the ability to support the Application packs. I know this involves creating a whole mechanism for assigning base addresses based on which slot the cartridge is plugged into, but it seems a shame not to be able to use all those wonderful apps.

    Anyway, thanks for Nonpareil, it’s the calculator that sits open on my Linux desktop all day at work.

    Happy New Year!
    Peter Simpson

Leave a Reply