Post Reply 
(41) HEPAX usage question
06-08-2022, 04:04 PM
Post: #1
(41) HEPAX usage question
Suppose I saved a program "A" to HEPAX, and deleted it from program memory.
Program A is now part of CAT 2.
I then write a program "B" that calls this program.

LBL"B"
XEQ"A" -> XROM"A"
END

Naturally, the XEQ"A" is converted to XROM"A" when I enter the line in program memory.
But when I now save program B to HEPAX and delete it from program memory,
the XROM instruction in the HEPAX program has been converted back to XEQ"A".
Why, and is there a way to save the program file to HEPAX keeping the XROM?

(the XROM executes way faster, Or So I Think, that's why I want it)
(and yes, I'm aware of the dangers of HEPAX user XROMs. But I want it nonetheless)
(and no, I am not one of those incredibly lucky ones to own a functional 41 with HEPAX - but I do have the DM41X, which should act in exactly the same way).

Cheers, Werner
Find all posts by this user
Quote this message in a reply
06-08-2022, 06:39 PM (This post was last modified: 06-08-2022 06:41 PM by Massimo Gnerucci.)
Post: #2
RE: (41) HEPAX usage question
Try with XQ>XR, originally in W&W RAMBOX, but also in SANDBOX module by Angel.

From SANDBOX manual:

Quote:XQ>XR is without a doubt also a powerful function. It converts the XEQ instructions included
in a FOCAL program (saved in Q-RAM) into the appropriate XROM equivalents, assuming that
the calls were made to other programs residing in a plugged-in module. The need for this
arises when programs are loaded on Q-RAM devices, like the HEPAX RAM.
The net result is substantial byte savings, because any XROM instruction takes only two bytes,
regardless of the label length of the called program. XQ>XR is not strictly a “full-page”
function, but it only operates on RAM pages thus its inclusion here is justified.

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
06-09-2022, 06:51 AM
Post: #3
RE: (41) HEPAX usage question
Thanks Massimo.
I only found one (2003) Sandbox module and manual, on TOS, and that version of XQ>XR
only works on programs in memory. From the description you included, it seems your
version also works on programs in HEPAX RAM. Where can I find that module & manual?

Thanks, Werner
Find all posts by this user
Quote this message in a reply
06-09-2022, 07:15 AM (This post was last modified: 06-09-2022 07:16 AM by Ángel Martin.)
Post: #4
RE: (41) HEPAX usage question
The SandBox is "obsolete" ;-)
It was replaced by the AMC_OS/X module, which indeed includes the XQ>XR function as well.
Manual and MOD available at TOS and here.

Cheers,
ÁM
Find all posts by this user
Quote this message in a reply
06-09-2022, 07:20 AM
Post: #5
RE: (41) HEPAX usage question
(06-08-2022 04:04 PM)Werner Wrote:  Why, and is there a way to save the program file to HEPAX keeping the XROM?

This is done to protect the user from subsequent changes in the HEPAX RAM FAT, which would invalidate the XROM id# assigned to the LBL "A" program. For instance this would happen when deleting a program with an "earlier" (i.e. smaller) XROM id#, which would shift LBL "A";s and everything else below the removed FAT entry.
Find all posts by this user
Quote this message in a reply
06-09-2022, 07:24 AM (This post was last modified: 06-09-2022 07:28 AM by Massimo Gnerucci.)
Post: #6
RE: (41) HEPAX usage question
(06-09-2022 06:51 AM)Werner Wrote:  Thanks Massimo.
I only found one (2003) Sandbox module and manual, on TOS, and that version of XQ>XR
only works on programs in memory. From the description you included, it seems your
version also works on programs in HEPAX RAM. Where can I find that module & manual?

Thanks, Werner

It is also in AMMC_OSX 4M version from July 2014 on Monte's site.

XQ>XR is available also in the Toolbox module, you can find it in Ángel's collection from Swissmicros site.

However I doubt it was ever modified since it came from RAMBOX, but I could be wrong. There's only one that can tell us...

EDIT: Ok, the one and only beat me. Smile

Greetings,
    Massimo

-+×÷ ↔ left is right and right is wrong
Visit this user's website Find all posts by this user
Quote this message in a reply
06-09-2022, 08:20 AM
Post: #7
RE: (41) HEPAX usage question
(06-09-2022 07:20 AM)Ángel Martin Wrote:  
(06-08-2022 04:04 PM)Werner Wrote:  Why, and is there a way to save the program file to HEPAX keeping the XROM?

This is done to protect the user from subsequent changes in the HEPAX RAM FAT, which would invalidate the XROM id# assigned to the LBL "A" program. For instance this would happen when deleting a program with an "earlier" (i.e. smaller) XROM id#, which would shift LBL "A";s and everything else below the removed FAT entry.

I know, Angel, and I accept the risk ;-)
Works like a charm BTW, the XQ>XR, not that I doubted that for a minute ;-)
BTW the module download actually contains three .mod files, a P6 and P7 mod as well, with no explanation that I can find what they are or if I need them.

Thanks, Werner
Find all posts by this user
Quote this message in a reply
06-09-2022, 11:58 AM
Post: #8
RE: (41) HEPAX usage question
(06-09-2022 08:20 AM)Werner Wrote:  BTW the module download actually contains three .mod files, a P6 and P7 mod as well, with no explanation that I can find what they are or if I need them.

Thanks, Werner

Those are versions that are hard-coded to load into Pages 6 and 7 respectively (regardless of which Port you put them in), which is sometimes desired in order to not conflict with other modules and/or appear in a lower/higher port. They are functionally the same.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-09-2022, 12:26 PM
Post: #9
RE: (41) HEPAX usage question
(06-09-2022 11:58 AM)rprosperi Wrote:  Those are versions that are hard-coded to load into Pages 6 and 7 respectively (regardless of which Port you put them in), which is sometimes desired in order to not conflict with other modules and/or appear in a lower/higher port. They are functionally the same.

Thanks Bob, I had an inkling it would be something like that when I saw Gene's post on Page 6&7-friendly modules.

Now, for some reason, I can't get (Lib4),OSX, Zenrom and HEPAX_8H installed all at once, I get a BAD CONFIG error, regardless of the OSX rom that I use.

When I have Lib4, HEPAX_8H and Zenrom, the Rom map looks like

Pg 6 HEPAX_8H
Pg 7 Free
Pg8;9;A;B HEPAX RAM
Pg C Zenrom

So it looks like the PG7 version of OSX would fit? But it doesn't. Nor does the 'normal' one.

Cheers, Werner
Find all posts by this user
Quote this message in a reply
06-09-2022, 06:25 PM
Post: #10
RE: (41) HEPAX usage question
(06-09-2022 12:26 PM)Werner Wrote:  
(06-09-2022 11:58 AM)rprosperi Wrote:  Those are versions that are hard-coded to load into Pages 6 and 7 respectively (regardless of which Port you put them in), which is sometimes desired in order to not conflict with other modules and/or appear in a lower/higher port. They are functionally the same.

Thanks Bob, I had an inkling it would be something like that when I saw Gene's post on Page 6&7-friendly modules.

Now, for some reason, I can't get (Lib4),OSX, Zenrom and HEPAX_8H installed all at once, I get a BAD CONFIG error, regardless of the OSX rom that I use.

When I have Lib4, HEPAX_8H and Zenrom, the Rom map looks like

Pg 6 HEPAX_8H
Pg 7 Free
Pg8;9;A;B HEPAX RAM
Pg C Zenrom

So it looks like the PG7 version of OSX would fit? But it doesn't. Nor does the 'normal' one.

Cheers, Werner

OS/X and ZENROM both use ROM ID 05, so the conflict is unrelated to the port which OS/X uses. Yes, it's frustrating as I too consider OS/X to be a fundamental part of any serious 41 configuration I use, and would be great to have it, even if I want to use ZENROM.

One feasible solution is to change (via some hex editor) the ROM ID byte of the ZENROM image you load, but that would make it custom and programs which use ZENROM Fns would not be portable. But if only used interactively this would be OK, and likely have no side-effects. To consider this, verify the ROM IDs of all the modules you plan to use in this configuration and pick an unused one. It's easy to see the ROM ID in the 41X's Module ROM Map, at the left edge of the Modules by Page column.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-10-2022, 05:12 AM
Post: #11
RE: (41) HEPAX usage question
Besides the XROM id# issue that Bob points out, the ZENROM and CCD Module were never compatible with each other (conflicting usage of scratch digits in status regs). This wasn't a big problem since the OS extensions functionality was very similar in both modules, so the main difference was the MC Editor.

With the AMC_OSX we have the same situation, but the MC Editor "gap" does not exist because it includes ROMED. So there's no real reason to use the ZENROM anymore on this context.

Cheers
Find all posts by this user
Quote this message in a reply
06-10-2022, 06:43 AM
Post: #12
RE: (41) HEPAX usage question
Thanks, Bob and Angel.
I feel ever so slightly very silly now, for not having thought of that ;-)
And Angel, I used the Zenrom to enter synthetics, but I see now that the OSX (of course) offers the same functionality, so all is well ;-)

Thanks, Werner
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)