Released Nonpareil 0.44, which adds annunciator support to the HP-41 family, making them much more usable. The scanned image of the HP-41CV has been replaced by a stylized rendering from my older NSIM simulator with graphical improvements by Maciej Bartosiak.
Getting the annunciator support working was more difficult than expected. In the process, I found a bug (or perhaps a documentation error) regarding the GDK function gdk_bitmap_create_from_data(). The documentation claims that this function takes an array of data in XBM format.
XBM format is defined such that the most significant bit of a byte is the leftmost pixel of that byte. But gdk_bitmap_create_from_data() uses the least significant bit of the byte as the leftmost pixel. It might be platform-dependent; I’m running on an x86 and don’t have other platforms to test that would likely be different. But XBM format is platform-independent, so either gdk_bitmap_create_from_data() is broken, or the documentation should eliminate the claim that it uses XBM format.
Another bug is that gtk_bitmap_create_from_data() reads past the end of the buffer. I am malloc()ing a buffer to hold my bitmap data, and I found that I have to allocate at least nine bytes more than the “XBM” data occupies in order to prevent a segfault.