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.