Bits and Pieces

Literally! Now that the biggest problems with the Y2010 problem on the Apple Newton are fixed (the patch for the German MessagePads is under testing, and eMates should be next), here are some other things that I played around with along the way.

First, as written before, it would be great to move patch creation to a more modern tool chain. It is already now possible to use tntk to create packages on macOS and Linux (Windows as well with some effort), but creating a patch would be great. A patch package consists of three parts, the ROM patch, the ROM Extension (REx) patch, and the patch loader, and tntk is in theory capable of producing multi-part packages, but in practice, there are some issues with combining the parts. It seems that the garbage collection in NEWT/0 which compiles the packages collects a bit more than I expected, resulting in a crash. Something to improve I gu ess!

Then, to get the patches onto actual hardware, I was planning to use RDCL, but I haven’t used it in a long time, and the Ruby world has moved on, so that there’s still quite a bit of work needed to update to Ruby 3.4. The alternative is zdcl, but Zig has a very fast update rate, and also here, an update to the latest version didn’t work out of the box. Next up was gdcl, and since I anyway wanted to use Go more, I did spend a bit more time to get it to at least cover package installation.

Finally, and more on topic for the actual Y2010 problem, I was wondering how to fix any issues that would go beyond the original issue, and which would require more deeper reverse engineering. I did dig out the earlier artifacts such as symbol tables and ROM listings, but I was curious about the more recent advances in the world of rev erse engineering. Specifically, AI seems like a very good fit: Using the old Norcroft compiler to create lot of sample binary code, and then training a dedicated model with it. I didn’t go as far yet, but I did come across Ghidra in the process. And that tool seems to be covering quite a few cases. I’m planning to play more with it and post my findings, even though right now it looks the immediate problems are under control :)

2025-01-12