More Spice on Nonpareil

The 0520 instruction did turn out to be rotate left A (by one digit). The Spice series keycodes are different than the Woodstock series, so I captured some more execution traces with the romsucker to get the keycodes. I made the display code a little bit more general in order to handle the 10 1/2 digit Spice display, but it needs a major overhaul to support the HP-41C and Voyager series. At this point the 33C was working, but the 32E and 37E still had major problems, like overflowing on any addition or subtraction. I released 0.31 with the 33C.

After comparing with romsucker traces, I found that the 32E and 37E problems were due to a change in the behavior of the pointer increment and decrement. A word has fourteen digits, and the four-bit pointer register can point to any of them. On the CTC (Classic series), the increment and decrement will cycle through all sixteen possible four-bit values, including the two “illegal” values. But the ACT (Woodstock series) skips directly from 13 to 0 on increment, and 0 to 13 on decrement. This also applies to the implicit decrement of the load constant instruction.

I’d hoped that this would also solve the problems in the HP-25 with the logarithmic and exponential functions, but unfortunately it does not, so there must be at least one more instruction bug. I need to modify the romsucker hardware to capture a trace from the HP-25.

Release 0.32 includes the HP-32E and HP-37E.

I also tried to implement the bank switch instructions used in the HP-34C, HP-38E, and HP-38C, but I don’t yet fully understand how they work, so my first cut at it does not work. I suppose I’ll have to capture more traces from those models as well. Hopefully the bank switch instruction behaves the same on Woodstock and Spice.

Tonight I’ll try to get ROM dumps from the HP-31E and HP-33E, completing the Spice series.

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

Leave a Reply