|Addendum... (a little clearer... hope so...)|
Message #2 Posted by Diego Diaz on 5 May 2008, 5:44 p.m.,
in response to message #1 by Diego Diaz
I've just re-read my previous post and found it somehow confusing myself, sorry for that. My excuse is that it was 6:00 on a sleepless night and just wanted to let everybody know I've finally got it to work...
Here are the details to clarify things a bit:
- A new code for NoVRAM named RAM2ROM.HEX has been build.
- Use your IC-Prog and PIC programmer to burn it into your NoVRAM module.
- The code is a barebones HEPAX emulation including a Flash ROM self-burning routine, i.e. no extra pages allowed, for two good reasons:
---- Reason 1: We need the Flash ROM area to copy our RAM page into.
---- Reason 2: The self-burning routine also uses part of the extra Flash ROM area.
- Currently the code is only available for NoVRAM, it can be used in NoV-32 but will only access RAM block #0 (i.e. H'4100 = H'000). The full version for NoV-32 allowing both RAM blocks to be selected will be ready in short.
- Ok, you have now your NoVRAM programmed with RAM2ROM.HEX, note that you can use it in the regular way, and use the well known HEPAX features to build your own ROM image into any RAM page #8, #9, #A or #B... or all of'em if you're a M-code guru!!.. ;-) Usually the big deal came in that point, when the user had built his/her ROM image into RAM but the ways to take it to the outer world (i.e. making a .ROM file into your PC hard drive) were complicated... and involved several steps and hard-to-find, bulky, and expensive hardware (IL-PC cards, 9114A/D disk drives, old PC to run LIFUTILS... etc.) NoVRAM allows the average user (and average budget :-) to gain access to HEPAX functionality, but it lacks the possibility of "connecting" the RAM area to your PC. Only Flash ROM is accessible from the PIC programmer... and still is, but, as we say in Spanish: "Si Mahoma no va a la montaña, la montaña tendrá que ir a Mahoma" ("If Mohammed doesn't go to the mountain, the mountain must go to Mohammed") So I started to think in a way to make a copy of RAM into Flash.
- Now that you have your RAM page working all you have to do is run HEXEDIT and write a control word to H'4100. The control word determines which page will be burnt into PIC's Flash: H'200 for page #8, H'204 for #9, H'208 for #A or H'20C for #B.
- As soon as you enter the control word the RAM to ROM dumping process will start. It will take about 2.5 seconds so be patient (if you press any key during this 2.5 seconds the burning process won't be affected but your call will more likely go to [MEMORY LOST] Anyhow be sure that by no means you can harm your calculator or your module even if you press whatever keys you want. This warning is just to avoid [MEMORY LOST]. After waiting for those *eternal* 2.5 seconds (I would rather prefer 3 seconds) you can step back [TAN] to see H'4100 contents. It should have changed deleting the heading "2".
- At this point you have a copy of the RAM page you selected into PIC's ROM. Plug your module back in your PIC programmer, run IC-Prog, and "Read" it giving an appropriate "filename.HEX" (8 character long maximum) to the resulting file.
- Last, run RAM2ROM.EXE and enter the "filename" you've used for the .HEX file in the previous step (Source) as well as the "myromname.ROM" (also 8 character long maximum) for the .ROM image file (Destination)... Yes, that is *the file* we've been doing it all for!!
- Next step, of course, is spread your new, wonderful, and fully-featured .ROM image with the rest of the world!!... But I'm pretty sure you know of a good number of ways to achieve this task by your own... ;-)
Best wishes from the Canary Islands.
PS. As the final version of RAM2ROM.HEX and RAM2ROM.EXE are not ready, these files are not in my web pages, anyone wnating to experiment with the Beta versions is welcome. (Experienced users preferred... ;-)