HP Forums
HEPAX to MOD converstion - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: Not HP Calculators (/forum-7.html)
+--- Forum: Not quite HP Calculators - but related (/forum-8.html)
+--- Thread: HEPAX to MOD converstion (/thread-15763.html)



HEPAX to MOD converstion - Marksail2 - 10-21-2020 12:22 PM

I've been programming in i41CX and wish to created MOD files of the work done and stored in the HEPAX memory. I've found a few solutions that can extract the ROM files from the HEXPAX MOD file however as they sit (extracted) can not be directly transformed into a MOD file. I'm wondering if they need to be disassembled and somehow modified for this to happen correctly? Of course I have the RAW programs used.

Any help here would be greatly appreciated! Thanks in advance

/\/\


RE: HEPAX to MOD converstion - MeindertKuipers - 10-21-2020 02:53 PM

If I understand correctly you already have the relevant MOD files on a PC? I that case you can use the MODfile editor in M2kM (see the thread here) to extract the ROM images and create a new MOD, or to directly remove the roms from the MOD file that you do not need. Be careful to edit the correct metadata though, depending on your needs.

Download for M2kM in the quote below

Quote:
RE: How to create custom 41C modules from keystroke programs?
It is now possible to open .ram files with M2kM. This will create a number of.rom files which can be handled in the MOD File tab to create a MOD file for use in V41, DM41X, MLDL2000 or a .rom file for the 41CL, Clonix/NoVRAM or MLDL2000.

I have a new BETA available for M2kM. Many, many changes under the hood, here are the most important:
- various bugs fixed
- many improvements in the disassembler
- support for DM41X .ram files, these are split into individual .rom files, the first
rom image is opened
- hex dump of ROM images now possible
- can recognize 41CL ROM images using upper bits
- disassembler supports 41CL WCMD instruction, does NOT decode useage of upper bits (yet)
- possibility to list 41CL FLDB .rom files (IMDB file support coming)
- FAT listing supports 41CL CRC
- listing from MLDL2000 supports checksum and CRC (slow), use checkbox upper right

Files can be downloaded here:
My DropBox

This is a BETA! No warranty, so protect your data. Please let me know of any possible improvements, additions or bugs.



RE: HEPAX to MOD converstion - Marksail2 - 10-21-2020 08:42 PM

Perhaps I need to be a little more clear...

What I have done is write my own 41 programs in i41CX and saved the collection into the HEPAX module. Using the mail feature of i41CX I've generated RAW files of all programs. Just like V41 (which I am also using) one can take the HEPAX MOD file in either application and extract the 4 ROM files (4 system ROMs and 2 user code ROMs). Using MLDL I can load the 2 ROMs with user code just fine however they don't port over to direct module creation. While I think I'm using the latest version of MLDL200 (Nov 2010) the manual clearly states that it can handle a direct dump (RAM) from i41CX although this doesn't appear to work. Ideally a MAILHEX function or even MAILMOD does the same...create a copy of "The RAM contents" of the HEPAX module for use in MLDL. So the basic bottom line is that I have RAW files for all the code written. I've loaded all into the HEPAX module which is essentially a 8k "application pac" that I wish to hard "burn" into a MOD file for use in either V41 or i41CX. Sounds easy enough but for the life of me can't figure out how to make it happen.

Thanks to all for your input!

/\/\


RE: HEPAX to MOD converstion - MeindertKuipers - 10-22-2020 01:26 PM

Thanks for the clarification. I did have the support for the i41CX working, but cannot test that anymore, sorry.
If you already have a MOD file on your PC from V41 then it will have the HEPAX roms and the pages with your RAW files in it. Verify this with the MOD editor. Best is to do this on a copy of the MOD file. These will show as HEPAX RAM. You can extract a ROM file to the ROM handler and disassmble to see your FOCAL sources. Then delete the HEPAX ROM images from the MOD file (right click). This is almost a working MOD file for you, but probably best to change the metadata to ROM (instead of HEPAX RAM).


RE: HEPAX to MOD converstion - hth - 10-22-2020 05:00 PM

If you have .raw files, meaning a separate binary file of each program on your computer, you can put together a .mod file using NutStudio tools. These are command line tools and you will need to edit some fairly simple text files. These includes a Makefile, a linker/memory layout, an MCODE source for the module headers and a module meta data descriptor. Four files and there are examples of how they can look, so a copy-cat with some basic understanding of textual languages should be able to manage. Currently only available on Linux and macOS.

If you insist on using Windows and want a GUI to tinker with, look elsewhere. However, the Windows issue may be solved using a Linux VM or Docker if you are into such things.


RE: HEPAX to MOD converstion - Marksail2 - 10-22-2020 05:43 PM

Thanks to all who answered on this thread. Yes however I am stuck with a WIN10 machine so MLDL is the ticket.

While I consider i41CX then next generation of emulators and its functionality top of the line surpassing what the original 41 inventors ever dreamed of I'm afraid I'm stuck with general 41 support stuff to support my endeavor. Really this shouldn't matter much as V41 users should find any of my questions pertinent to what they are doing.

The trick as I see it is the get the HEPAX.MOD loaded into MLDL (no problem) and extract the two user code ROMs HEP-STD-RAM1 AND HEP-STD-RAM2 into MLDL;s ROM handler. Selecting "List FAT" clearly shows the multiple LBLs for each program contained. From there it is unclear how to make a new MOD file. Understand the HEPAX MOD is full thus the two ROM's. Both would then need to be combined into one MOD file in the end.

Probably what is happening on my end (and I apologize) is I'm clearly missing the steps between the ROM handler and the MOD file handler. I'm almost there just need to figure out what I'm doing wrong.

And ... Meindert I'm now understanding your no longer testing for the acceptance of i41CX RAM files into MLDL. I'd gladly work on things (testing) from my end if you want. Using emailed RAM contents directly out of i41CX and generating ROMs and MODs would be a cleaner and much more productive approach. Let me know as I'd be happy to give it a try.

Again, thanks to all

/\/\


RE: HEPAX to MOD converstion - MeindertKuipers - 10-22-2020 06:25 PM

Good work, there is much progress now that you have extracted the ROM files!

When you close the current MOD file, you can then import one of the ROM files in the MOD handler. Here are the rough steps:
- create a new MODfile, give it a name and save
- open a ROM file
- switch back to the MOD handler, right click in the empty list and select ROM to MOD (append or insert)
- back to the ROM handler, open the next ROM file, and append to the MOD file,and save

You now have a MOD file with your 2 ROM images. But you must also edit the metadata in the headers of the MOD file to allow succesful loading in an emulator.

If you send me a recent i41CX RAM file I can check if it can still be imported, or mail me directly from your emulator. Send me a PM, I will then share my email address. I actually do have my old iPod with i41CX somewhere, but probably cannot update it anymore, it is more than 10 years old.


RE: HEPAX to MOD converstion - Peet - 08-28-2021 09:49 PM

If I create a new module with M2kM from a HEPAX.MOD RAM Page, then this is not displayed in CAT 2 on v41 with CX-ROM but I can start the Programs with XEQ "LBL", with the 41CV-ROM all programs contained in CAT 2 but the MOD title is not displayed.

Does anyone have an idea what is wrong and how I can get the module content displayed in CAT 2?


RE: HEPAX to MOD converstion - rprosperi - 08-29-2021 01:55 AM

(08-28-2021 09:49 PM)Peet Wrote:  If I create a new module with M2kM from a HEPAX.MOD RAM Page, then this is not displayed in CAT 2 on v41 with CX-ROM but I can start the Programs with XEQ "LBL", with the 41CV-ROM all programs contained in CAT 2 but the MOD title is not displayed.

Does anyone have an idea what is wrong and how I can get the module content displayed in CAT 2?

Nothing is wrong. XEQ "HEPDIR", which is the HEPax DIRectory or Catalog list of the FOCAL programs stored in HEPRAM. HEPDIR will give you a CAT-2 like listing of the programs, and then return free HEPRAM space to X. CAT-2 is only for true module catalogs.


RE: HEPAX to MOD converstion - Peet - 08-29-2021 07:29 AM

(08-29-2021 01:55 AM)rprosperi Wrote:  XEQ "HEPDIR", which is the HEPax DIRectory or Catalog list of the FOCAL programs stored in HEPRAM. .... CAT-2 is only for true module catalogs.

I thought with M2kM I can create a "true" module? Without loading Hepax there is no longer the function HEPDIR but all FOCAL programs from the new Module works with XEQ "name" (if you now the name).

If I load Hepax (which I don't want), the new module won't work at XROM 11,xx. After patching the Module with Angel's & your instructions from the "HEPAX ROM XROM Numbers"-thread on e.g. XROM 9,xx the ROM also works with Hepax loaded, but HEPDIR does not display the content.

As a workaround, I simulate the missing CAT 2 with a program in CAT 1, for example:

LBL "DIR"
LBL "ZINS"
XROM "ZINS"
RTN
LBL "D-B"
XROM "D-B"
RTN
LBL "H-D"
XROM "H-D"
RTN
... etc.
END

But a real CAT 2 would of course be much more elegant.


RE: HEPAX to MOD converstion - MeindertKuipers - 08-29-2021 11:33 AM

Even with HEPAX the FOCAL programs should appear in CAT 2, you can verify by checking the FAT listing in M2kM. Only issue is that if you do not have a proper module name (first function starting with a "-", must be an mcode function if I remember correctly) the HP41CX will skip this indeed.

You may send a copy of the ROM or MOD file to me so I can check this.


RE: HEPAX to MOD converstion - Peet - 08-29-2021 12:30 PM

(08-29-2021 11:33 AM)MeindertKuipers Wrote:  Even with HEPAX the FOCAL programs should appear in CAT 2, you can verify by checking the FAT listing in M2kM. Only issue is that if you do not have a proper module name (first function starting with a "-", must be an mcode function if I remember correctly) the HP41CX will skip this indeed.

You may send a copy of the ROM or MOD file to me so I can check this.

I tried a first label with "-" as 1st char, once in hepax (my1_hp), once with rambox (my1_rb) but neither of them apears with a CX-ROM in CAT2.


RE: HEPAX to MOD converstion - MeindertKuipers - 08-29-2021 02:05 PM

Your ROM seems quite fine, and I have loaded one of your MODs in my DM41X, and the title does show in CAT 2. No need for HEPDIR, but I also have HEPAX plugged.

It does not show in my V41 emulator, I found out that I have Angels OS/X loaded (VERY recommended) and that has a modified CAT functions. Without that your ROM does not show in CAT 2.

On a virgin 41CX (i.e. no HEPAX or OS/X loaded) the name of the ROM should start with a "-", must have a minimum length (could be 6 but I am not certain) and may have to be an MCODE function (yours is a FOCAL program).

What is tricky here is that the ROM still contains the info for the HEPAX chain. But since the MOD is not marked as HEPAX RAM it is unlikely to cause any problems with HEPAX plugged, just be aware of any XROM conflicts.


RE: HEPAX to MOD converstion - Peet - 08-29-2021 02:56 PM

(08-29-2021 02:05 PM)MeindertKuipers Wrote:  What is tricky here is that the ROM still contains the info for the HEPAX chain. But since the MOD is not marked as HEPAX RAM it is unlikely to cause any problems ...

Thanks for taking a look. I don't know how a MOD can be marked as hepax-ram. In your HP41 ROM Handler are two switches which sound like this, on the ROM-Handler-Page is a checkbox Hepax RAM page - is this the one to check? Or RAM on MOD File Handler page?

I think RAMBOX is for a beginner a bit easier to handle then HEPAX. Does the RAMBOX Version need this mark too?

Unfortunately, I can't get any further with the visualization in CAT 2, because I don't know how to create an mcode program and copy it into the rampage of the hepax or rambox.


RE: HEPAX to MOD converstion - MeindertKuipers - 08-29-2021 05:31 PM

The MOD file can be marked with various settings in the MOD File Handler, this allows you to edit the metadata that is used by V41 or the DM41X. This is not trivial unfortunately.
The selections in the tab for the ROM Handler are used only for the header listing or disassembler, and do not change anything in the ROM or MOD file!

A MOD file will need the RAM setting checked for the V41 or DM41X to be able to recognize the page as RAM. Details on how it is handled may depend on the actual implementation. Best is to use an existing image from DM41X or V41 with the desired functionality as an example.

And to create an mcode program you will have to learn. Recommended start is to use the HEPAX manual Vol 2.

(08-29-2021 02:56 PM)Peet Wrote:  
(08-29-2021 02:05 PM)MeindertKuipers Wrote:  What is tricky here is that the ROM still contains the info for the HEPAX chain. But since the MOD is not marked as HEPAX RAM it is unlikely to cause any problems ...

Thanks for taking a look. I don't know how a MOD can be marked as hepax-ram. In your HP41 ROM Handler are two switches which sound like this, on the ROM-Handler-Page is a checkbox Hepax RAM page - is this the one to check? Or RAM on MOD File Handler page?

I think RAMBOX is for a beginner a bit easier to handle then HEPAX. Does the RAMBOX Version need this mark too?

Unfortunately, I can't get any further with the visualization in CAT 2, because I don't know how to create an mcode program and copy it into the rampage of the hepax or rambox.



RE: HEPAX to MOD converstion - Peet - 08-29-2021 08:34 PM

(08-29-2021 05:31 PM)MeindertKuipers Wrote:  Recommended start is to use the HEPAX manual Vol 2.

thanks again, that was an outstanding tip to understand some of the basics of modules.
i had a first success now, the module now appears in CAT 2. with rambox it seems to be possible even for beginners to create a template for your HP41 ROM handler.

With a little luck now i can find the right workflow to create my own "true" modules.


RE: HEPAX to MOD converstion - rprosperi - 08-29-2021 08:35 PM

As I stated above, the native CAT-2 does not show the programs stored in HEPRAM.

Angel's AMC-OSX (derived from the CCD module) enhances and expands the CAT-2 feature of the OS ROM, and it does show the programs stored in HEPRAM.

So, your program which displays the programs names is likely the best stand-alone solution, but a better answer is to install OSX, which I do recommend for this and many other reasons.

For me, the AMC-OSX module is so much a part of every 41 I use, I am often confused when I use a 41 without it.


RE: HEPAX to MOD converstion - Peet - 08-29-2021 09:25 PM

(08-29-2021 08:35 PM)rprosperi Wrote:  Angel's AMC-OSX (derived from the CCD module) enhances and expands the CAT-2 feature of the OS ROM, and it does show the programs stored in HEPRAM.

I use the 41 not for work, only for fun - like other people play with LEGO. Because of this I like to look at new modules and various programs from different authors. In the both great collections (MoHPC, ToS) are reading material for more than one lifetime. The AMC-OSX (as well as the CCD) are amazing, but I am far away to understand even 10% of it. But sometimes I want to understand a little bit, so I startet the the attempt to put my 40 year old personal program-collection in my own rom. Angel gave this idea new fire when he packed a part of my game collection into a stand-alone module.

(08-29-2021 08:35 PM)rprosperi Wrote:  So, your program which displays the programs names is likely the best stand-alone solution, but a better answer is to install OSX, which I do recommend for this and many other reasons.

My self-set goal is to create a stand alone module for a native 41 C/CV/CX which I can put into a fresh DM41X/v41/go41cx etc. and use it. Maybe because this was the unrealizable dream 40 years ago with my HP41CV. So yesterday I sat down and read a lot in older forum posts how I could get my "own" module.


RE: HEPAX to MOD converstion - Ángel Martin - 08-31-2021 05:38 AM

Fact:
On a CX machine and 41X w/out OX Extension modules CAT 2 only shows the HEADERS, i.e. MCODE functions that start with a hyphen.

This is probably why you don't see the programs in HEPAX RAM listed in a CAT 2.
You can use the enhanced CAT"2 which also displays the FIRST function in the ROM FAT for each page.
Or somehow write a "proper" header function (using HEPAX this is possible, see their manual).

Cheers,
ÁM


RE: HEPAX to MOD converstion - Peet - 08-31-2021 06:24 AM

(08-31-2021 05:38 AM)Ángel Martin Wrote:  On a CX machine and 41X w/out OX Extension modules CAT 2 only shows the HEADERS, i.e. MCODE functions that start with a hyphen.

I got around the problem by switching from hepax to rambox. The rambox module has easy to use functions to do this, so I could create a module which is listed in CAT 2.