|Re: 41CL Flash Update Question|
Message #9 Posted by Howard Owen on 24 Dec 2011, 12:56 p.m.,
in response to message #8 by Ángel Martin
Well, I went ahead and bit the bullet. I patched YFNS to XROM 15, and updated CLUT to CLUTILS 2E. The first part of the process is described in this document on the Wiki. However I refrained from patching anything other than the XROM number because it looked to me like the rest of the patch applied to an older version of YFNS. Monte's post confirmed this for me.
I had a bit of an adventure getting your newest CLUTILS onto my calculator though. I've mislaid the burner for my NoV64, which would have been the easiest way to get the bits onboard. What I resorted to was HEPAX + HPIL + PIL-Box. I converted the CLUTLS 2E ROM image to a packed 10 bit format using CLBIN41.EXE (part of JF's EMU41.) I then loaded it in EMU41 and wrote it to LIF using HEPAX's WRTROM. Over on the real calc, I read the image in with HEPAX's READROM. At this point I got a checksum error.
The ROM checksum isn't checked by the 41C's operating system, but the HEPAX complained, rightly or wrongly, that it was invalid. This is ironic since the first page of the HEPAX 1D module has an invalid checksum itself. But I was left wondering whether I had corrupted the image at some point during the transfer or if the checksum didn't actually match, or if HEPAX was crazy.
To resolve this, I decided to dump a disassembly of the ROM to my virtual IL console. I could then compare it to your source listing. Well, it turns out that the HEPAX DISASSEM command doesn't work on the CL for some reason. So I loaded the ZENROM and used MCED's disassembler. The process took a while, but I was left with a usable listing of the code. I grabbed the source code out of your "Blueprint" PDF and set about massaging the two so I could compare them.
Because the two listings used different mnemonics and were formatted very differently overall, I wrote a Perl script that found address offsets and the associated data in each. (I looked for patterns matching the page specific addresses plus 3 hex digits.) I produced two lists of these, one for each source listing. I then tried to compare the two. This was an adventure in chasing down subtle format differences and rationalizing other glitches. I finally decided that my image on the calculator contained the same bits that your listing contained.
Finally, back on the calculator, I followed the procedure you outlined above to update CLUTLS and a patched YFNS. I didn't know there was a new 41Z module, so here we go again. :) It should go much better with most of the wrinkles ironed out. I would very much like your updated CLUTLS. You can email me on gmail. I'm egbokalaka.
Thank you, and Merry Christmas!