I think I've finally figured out how to hack the HP-16C microcode to support more user RAM than the original, which had only 203 bytes. I first studied this in 2004-2005, but at that time was only able to understand the HP-15C firmware enough to patch that.
#Nonpareil #hp16c #rpn #calculator
#nonpareil #hp16c #rpn #calculator
@BrideOfLinux I was going to reply with some flippant comment about how I might be biased, but #Nonpareil is the best Linux calculator. It's a good thing I actually read the article before replying, because to my utter amazement, #Nonpareil actually made the list!
Over the holiday, I did more reverse-engineering of the HP Voyager calculator firmware, mostly HP-12C and HP-16C. The 100 LCD segments are scattered throughout the high 50 bits of each of two memory-mapped registers. It's not random, but superficially there only appears to be a vague left-to-right ordering. It turns out that the bits for seven-segment digits have uniform offsets a per-digit bit position, EXCEPT the d segment, which are special-cased for each digit.
Not #nonpareil, but related
I did a bit more work with #nonpareil on HP calculator reverse-engineering. I figured out the HP-16C miscellaneous function dispatch table, for instruction bytecodes 0xa1 through 0xef. It uses a table of two-word entries similar to what's done in the 10C and 12C, and probably the 11C and 15C though I haven't checked those. The first word is the function address, within a specific 1K "quad" of the ROM, and the second word gets decoded to show keycodes for those instructions.
Today I worked on #nonpareil some more. There is a longstanding issue with register addressing on the HP-55. Someone else figured out how to solve it in their simulator. I tried their method, and it seems to work. It's unclear whether the real hardware does the same thing. It's possible that the ROM image, which I typed in from a US patent, may not match the real HP-55.
This evening I worked a bit on adding the HP-65 to #Nonpareil, mostly on having partially reverse-engineered ROM source code, building on the work of the late Jacques Laporte. I also worked a little on further reverse-engineering of the 32E, 34C, and 38C ROMs. I started work on verifying the assembled output of various ROMs using SHA256 hashes.
I did some Nonpareil (HP calculator microcode simulator) work, and HP calculator ROM reverse engineering, over the weekend, but it doesn't seem like I got anything significantly accomplished. As usual. Maybe next weekend.
#nonpareil #hpcalc #rpn
I did some Nonpareil (HP calculator microcode simulator) work, and HP calculator ROM reverse engineering, over the weekend, but it doesn't seem like I got anything significantly accomplished. As usual. Maybe next weekend.
#nonpareil #hpcalc #rpn
Like many HP programmable calculators, the HP-12C uses one byte of memory to represent each program step. I'm studying the code that interprets the byte values to understand how the dispatching works.
#nonpareil
Like many HP programmable calculators, the HP-12C uses one byte of memory to represent each program step. I'm studying the code that interprets the byte values to understand how the dispatching works.
#nonpareil
I'm still hoping to switch to SVG for #nonpareil graphics, and do away with this icky pixel stuff. I've started experimenting with that.
After a lot of tedious pixel-pushing, I have #nonpareil graphics for the HP-92. The new graphics for the 19C, 91, 92, and other calculators, can be seen in this flickr album:
https://www.flickr.com/photos/_brouhaha_...0303041763