HP Forums

Full Version: Updated AMC_OS/X and New Manual
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
That's it folks, to receive the new year nothing better than a new manual and the updated ROM version - which somehow goes together with writing the manuals; with a couple of new ideas and correction of some glitches.

Nothing radically new but still nice to be documented in a single document. Hope you enjoy it - all available at a TOS near you, as usual.

Vielen Dank, Ángel.
Thank you Angel for the wonderful New Year gift. Happy New Year! Perfect timing while I was updating my 41CL modules with the most recent revs.
Hello Angel,
Thank you very much.
I have just downloaded the updated ROM image and I am currently reading the manual. 8-)
Best wishes for 2014!
Kind regards,
Nothing Arch in my name, except perhaps Arch-aic SW developer, ;-)

Once you have the three ROM images in consecutive locations in RAM or Flash, it's as simple as issuing a PLUG command with the proper address/Size in ALPHA. For instance, say you have them loaded in blocks 834, 835, and 836 in sRAM:

Alpha contains: "834-16k", XEQ "PLUGxx" (the choice of page is yours).
The OS/X Module takes only one page. It is compatible with pages 6 and 7, so you can use PLUGH and PLUGP as well. Just make sure it's not competing with the printer of course.

As per the LIBRARY#4, you need to do it a bit more manually since there's no direct PLUG command for page#4. Say you have it loaded in sRAM location 83F, then:

Alpha contains: "804040-883F", XEQ "YPOKE".
Here you must remember to never have a "real" HP-IL module with the printer switch in "DISABLE" mode - which sets the printer ROM to page#4 as well.

That's all there's to it... good luck!

Hi Geir,

Alternatively you can save those three ROM images in RAM into Flash and plug the User ROM XXXF image already in the IMDB. You need to be extra careful when erasing/writing/copying into the Flash area. XXXF is already setup in the IMDB for 16K User ROM image.

First you need to copy YFNZ from Flash to RAM. Since you need to be running YFNZ from RAM in order to make changes to Flash. Then Plug YFNZ to 1L using the RAM location where you saved it "8XX-RAM" PLUG1L

Erase the Flash sector from 0E0-0E7 (which will erase any previously saved User ROM images in XXXD, XXXE and XXXF if there is any). You can only erase Flash one sector or 8 pages at a time. So if you have any ROM images in those areas that you want to retain, you may want to move them to RAM before erasing that Flash sector so that you can copy back to Flash afterwards.

Copy the ROM images you have in the RAM to Flash, 834>0E4, 835>0E5 and 836>0E6 using YFWR

Plug Flash version of the YFNS by "YFNS" PLUG1L to protect any further changes in Flash.

Now you can plug these ROM images by using XXXF.

I have limited the details of the recipe in order to prevent inexperienced users erasing or corrupting the Flash area unintentionally and potentially bricking their calculator. Let me know I can provide more details.

Another method, you can copy these images saved in RAM into an empty part of the Flash above >180 (first must Erase that sector), then use 41CL "Extra Functions" or YFNP, IMDBINS to insert a proper image ID with that Flash ROM image address location. Now you can plug these modules with your own image ID.

The .rom file format is the correct one to transfer to the 41CL. YFWR operates on 4k pages, or one .rom file at a time. A step-by-step set of instructions for writing one page (one .rom file) to Flash memory is contained in the "Working With Flash" chapter in the 41CL manual. If you go through that chapter it should become clear exactly what you need to do to write more than one page to Flash. I would download the current 41CL manual from the website to make sure that you have the latest information. If you are worried about corrupting existing Flash contents, I suggest doing a practice run on an empty sector (or one of the user sectors with your V2 board). If you are still hesitant about writing to Flash, I suggest using 'Angel's instructions earlier in the thread and use a RAM copy. You'll need to use the correct designation to tell the PLUG function that you want to access a banked image, and have the individual .rom files placed appropriately in RAM. All of this is covered in the manual.
Interesting. I need a manual too. Smile
Hello Angel,
Thanks for the update of the OS/X adaptation.I find it very comfortable to use.
Howerver, I had a problem with extracting the rom-files from the mod file. I use the modfileutility (WIndows/Dos-program). It refused to extract the first rom (-AMC"OS/X) since it contain a forbidden "/" in its name. I used a hex-file editor to replace the character by an allowed one. After that, I could extract the files. Is there another way to circumvent this problem? If not, I would recommend to rename the rom to -AMC"OS_X or something similar.

(01-04-2014 05:28 PM)Geir Isene Wrote: [ -> ]SUCCESS

Got the MOD-file extracted to three ROM files (the three banks) via the MLDL2K software.
Then cleared out three RAM 4K blocks on my 41CL (821, 822, 823)
Then loaded these three RAM blocks into pages 1L, 1U and 2L
Transfered the three ROM images to my 41CL using my Ruby program "pc41" to the three RAM blocks (821, 822, 823)
Checked to see that the ROMs were active using PGCAT. They were.
Erased the Flash block where I wanted to store the updated AMC-OSX module ("180000" YFERASE)
Wrote the three ROM bank files into Flash ("821>181" YFWR, "822>182" YFWR, "823>183" YFWR)
Unplugged the three modules from pages 1L, 1U and 2L
Added the new, updated module to the Image DB ("4OX3-2-181" IMDBINS)
Loaded the module into page 2U ("AOX3" PLUG2U)
And yes, it works!


There is no need to plug in the RAM pages during the procedure. The Extra Functions are happy to work with the entire physical address space. The YCRC function is the best way to check the integrity of an image, because it uses every bit in all 4k words to contribute to the final value.
(01-19-2014 10:32 AM)Geir Isene Wrote: [ -> ]A word of caution to the users of modules that are updated:

Make sure to use a list of your FOCAL programs that make use of functions in modules such as the AMC_OS/X. When functions in the modules are updated or functions are added or removed, XROM numbers may change - and functions in your FOCAL programs may change to some other function, potentially with dangerous, even catastrophic results.

Very good point. In fact the best approach is always to update the AMC_OS/X and the POWER_CL together to ensure the matching, as there's one routine YEDIT that uses functions from the OS/X. No other dependencies between those two.
Reference URL's