HP Forums
HP41CL serial export of ROM - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: HP41CL serial export of ROM (/thread-7767.html)



HP41CL serial export of ROM - dingebre - 02-13-2017 07:07 PM

I promise I have read the manuals but remain a bit confused.

I know this has been and is done and transferring from the 41CL to the laptop is pretty trivial. It's finding the block of RAM that has become my issue.

I would like to export a block of RAM or FLASH that contains a ROM image to my laptop via the serial link in the HP41CL. I can successfully and consistently transfer a block of data, but I'm struggling trying to figure out the physical address that YEXP needs to transfer the actual block of RAM I am interested in sending.

There are two scenarios:
1. I am building a custom ROM in HEPAX memory stored in Page B and would like to export it and potentially share it as a ROM/MOD image
2. I am looking for unique modules that are not in the library that I can physically plug into a 41 port and then export the ROM image for sharing.

I thought this would do it.
I "YPEEK"ed into the MMU register that contains the pointer to the Page B HEPAX data. On my calculator, I YPEEKed into 0x8040B0 which should be Page B, Bank 1, and got 8808 in return as the "data". I take that to mean location 0x808808, right? When I YPEEK that location, I get 0000 for data. If I YPEEK 0x880800, I get 0514 for data. When I use HEXEDIT at page F000 and F001 I get 01F and 040 as the entries at that memory location.

I think it's pretty clear I'm not grasping the relationship between physical RAM, FLASH memory space and the virtual memory space. I thought the pointers in the MMU registers pointed to the location in either FLASH space or RAM space where the plugged in ROM (or HEPAX memory) module was mapped.

How do I find where in the 41CL RAM memory space the HEPAX RAM is located?

Second, when I physically plug a module into the 41CL, how do I find out where that ROM is mapped so that I can export it? This would also apply to a NOV-64 module that has HEPAX RAM in it, too.

Despite having read the manual, if it's in there, please point me. Just because I read it, doesn't mean I actually understood it. In all fairness, I think it's clear I missed something.

Thanks
David


RE: HP41CL serial export of ROM - Monte Dalrymple - 02-13-2017 07:35 PM

(02-13-2017 07:07 PM)dingebre Wrote:  I "YPEEK"ed into the MMU register that contains the pointer to the Page B HEPAX data. On my calculator, I YPEEKed into 0x8040B0 which should be Page B, Bank 1, and got 8808 in return as the "data". I take that to mean location 0x808808, right? When I YPEEK that location, I get 0000 for data. If I YPEEK 0x880800, I get 0514 for data. When I use HEXEDIT at page F000 and F001 I get 01F and 040 as the entries at that memory location.

How do I find where in the 41CL RAM memory space the HEPAX RAM is located?

Second, when I physically plug a module into the 41CL, how do I find out where that ROM is mapped so that I can export it? This would also apply to a NOV-64 module that has HEPAX RAM in it, too.

Despite having read the manual, if it's in there, please point me. Just because I read it, doesn't mean I actually understood it. In all fairness, I think it's clear I missed something.

Thanks
David

The MMU register arrangement is shown in the figure on page 67 of the manual. The most-significant nibble contains control information (enabled/locked/type), while the lower three nibbles contain the physical page address to substituted for the logical page address. In the example you asked about, RAM page 808 (starting address 0x808000) is what is plugged into page B. The upper nibble indicates that MMU translation is enabled, the page is not locked, and it is a single page image.

For your second question, the figure on page 30 shows how to specify a logical address to copy into RAM. The image needs to be in RAM before it can be exported.

Hope this helps.
Monte


RE: HP41CL serial export of ROM - dingebre - 02-14-2017 05:39 PM

(02-13-2017 07:35 PM)Monte Dalrymple Wrote:  
(02-13-2017 07:07 PM)dingebre Wrote:  I "YPEEK"ed into the MMU register that contains the pointer to the Page B HEPAX [...]

The MMU register arrangement is shown in the figure on page 67 of the manual. The most-significant nibble contains control information (enabled/locked/type), while the lower three nibbles contain the physical page address to substituted for the logical page address. In the example you asked about, RAM page 808 (starting address 0x808000) is what is plugged into page B. The upper nibble indicates that MMU translation is enabled, the page is not locked, and it is a single page image.

For your second question, the figure on page 30 shows how to specify a logical address to copy into RAM. The image needs to be in RAM before it can be exported.

Hope this helps.
Monte
Thanks Monte. This helped a lot. I think I was able to successfully transfer the HPEAX page to the laptop. I just need to re-read about the memory structure a few more times to understand it better before I start to mess with it too much.

David