Post Reply 
(SOLVED) 41CL - DOUBLE HEPAX ACCESS and MMU CONFIG
08-19-2019, 06:13 PM
Post: #21
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, I have the need to use the same Hepax RAM area from
two different MMU configurations.
But the solution to have more than one Hepax RAM set is
also very interesting!
But I am still in doubt:
To make place to my config in MMU 0, that is a copy of 9PWR,
I think to remove the modules 4TBX and ROMX from ports B and C
respectively, than to install HEP2 in port B and the four Hepax RAM
pages in ports C to F.
Equally, I need to free the ports B to F in 9HIL ho hold a new install
of HEP2 and to make space for the same Hepax RAM pages from C
to F locked before the install of MMU F in MMU 0.
to do so, I think to modify the 9HIL, deleting the DACQ, the DEV2 and
EXTI or EXIO. And moving YFNX from port D to port 9.
Then installing MASS in port A, HEP2 in port B and ports C to F ready
to receive the Hepax RAM pages installed in the modified version of 9PWR.
All this is exact or I am wrong??
Again, thank you very, very much to ALL you!!!
Find all posts by this user
Quote this message in a reply
08-19-2019, 06:50 PM
Post: #22
RE: 41CL - DOUBLE HEPAX ACCESS
I am at work, so I cannot gives you a detailed example but since you seems to want to create your own setup, what I would do is:
  1. do my first setup in set 0 (from scratch or from one of the 9... configuration)
  2. copy MMU configuration set 0 to one of the in secondary MMU configuration (4..F), here for example, use 4, replacing Monte default configuration made by CFGINI
  3. do my second setup in set 0 (from scratch or from one of the 9... configuration)
  4. copy MMU configuration set 0 to one of the in secondary MMU configuration (4..F), here for example, use 5, replacing Monte default configuration made by CFGINI
  5. ...
  6. backup secondary MMU configuration to an alternate location in RAM and on an offline media

Sylvain
Find all posts by this user
Quote this message in a reply
08-20-2019, 01:48 AM
Post: #23
RE: 41CL - DOUBLE HEPAX ACCESS
(08-19-2019 06:50 PM)Sylvain Cote Wrote:  I am at work, so I cannot gives you a detailed example but since you seems to want to create your own setup, what I would do is:
  1. do my first setup in set 0 (from scratch or from one of the 9... configuration)
  2. copy MMU configuration set 0 to one of the in secondary MMU configuration (4..F), here for example, use 4, replacing Monte default configuration made by CFGINI
  3. do my second setup in set 0 (from scratch or from one of the 9... configuration)
  4. copy MMU configuration set 0 to one of the in secondary MMU configuration (4..F), here for example, use 5, replacing Monte default configuration made by CFGINI
  5. ...
  6. backup secondary MMU configuration to an alternate location in RAM and on an offline media

Sylvain

If you don't want to step on the pre-initialized alternate configurations, numbers 1, 2 and 3 are left for custom user configurations. These custom configurations can still be used with the PLUG functions: 1 uses the alias 9CFA, 2 uses the alias 9CFB, and 3 uses the alias 9BAS
Visit this user's website Find all posts by this user
Quote this message in a reply
08-20-2019, 03:40 AM
Post: #24
RE: 41CL - DOUBLE HEPAX ACCESS
(08-20-2019 01:48 AM)Monte Dalrymple Wrote:  If you don't want to step on the pre-initialized alternate configurations, numbers 1, 2 and 3 are left for custom user configurations.
Understood, the reason I was not using set 1 to 3 was because of Ángel CL modules who I think uses them, at least set 1 if I remember correctly.
I need to re-read Ángel manuals for those CL modules.

(08-20-2019 01:48 AM)Monte Dalrymple Wrote:  These custom configurations can still be used with the PLUG functions: 1 uses the alias 9CFA, 2 uses the alias 9CFB, and 3 uses the alias 9BAS
Thanks, I was not aware of those names.

Podalirius questions gave me an excuse to shave off my laziness and finally dig into the multiple MMU configuration feature.
It took me quite a while to really understood what he wanted which made me do a lot of reading and testing which was outside of what he was asking, but in the end I have a better understanding on how things are working.

The CFGINI is a good startup which gave me the understanding on how to setup the MMU configuration table.
In my case, I use HP-IL and the magnetic card reader all the time, so the actual MMU configuration table is not working for me, but I now know how to setup my own custom table. Smile

Thank you!

Sylvain
Find all posts by this user
Quote this message in a reply
08-20-2019, 04:24 AM (This post was last modified: 08-20-2019 04:25 AM by Sylvain Cote.)
Post: #25
RE: 41CL - DOUBLE HEPAX ACCESS
(08-19-2019 06:13 PM)Podalirius Wrote:  To make place to my config in MMU 0, that is a copy of 9PWR, I think to remove the modules 4TBX and ROMX from ports B and C respectively,
than to install HEP2 in port B and the four Hepax RAM pages in ports C to F.

Equally, I need to free the ports B to F in 9HIL ho hold a new install of HEP2 and to make space for the same Hepax RAM pages from C to F
locked before the install of MMU F in MMU 0. to do so, I think to modify the 9HIL, deleting the DACQ, the DEV2 and EXTI or EXIO.
And moving YFNX from port D to port 9. Then installing MASS in port A, HEP2 in port B and ports C to F ready to receive the Hepax RAM pages installed in the modified version of 9PWR.

First, we need to create a common base config for the sets 4 and F.
Code:
MMUDIS   // disable MMU
MMUCLR   // clear MMU configuration Set 0
"YFNX"   // 41CL Extreme Functions
PLUG1U   // plug YFNX module to page 9, cannot be at page 7 because we need that page for HP-IL in 9HIL configuration
MMUEN    // enable MMU

MMU configuration Set 4 (9PWR) before and after update
Code:
        default    updated
PLUG    9PWR:XR    9PWR:XR
Page    -------    -------
   4    4LIB:--    4LIB:--
   5                                 
   6    OSX3:05    OSX3:05
   7    YFNX:15    WARP:21
   8    PWRX:12    PWRX:12
   9    WARP:21    YFNX:15
   A    XPMM:20    XPMM:20
   B    4TBX:13    HEP2:07
   C    ROMX:31    HEPRAM1
   D    HEP2:07    HEPRAM2
   E               HEPRAM3
   F               HEPRAM4

Second, procedure to make this happen:
Code:
RCLCFG 4   // copy MMU configuration Set 4 (9PWR) to Set 0
"WARP 7"   // WARP ROM (1 page 3 banks)
PPLUG      // mapping WARP ROM to page 0x7
"%808 C"   // based on your previous message your HePaX RAM is from 0x808 to 0x80B
PPLUG      // activating HePaX RAM area from page 0xC to 0xF
"HEPX B"   // HePaX ROM (1 page 4 banks)
PPLUG      // mapping HePaX ROM to page 0xB
HEPDIR     // should show: "H:DIR EMPTY" with 2610 in X (if empty of course)
Code:
STOCFG 4   // overwrite MMU configuration Set 4 (9PWR) with your updated MMU configuration Set 0
or
STOCFG 2   // save MMU configuration Set 0 to user configuration 2 (9CFB), it also prevent CFGINI to overwrite your custom configuration.

MMU configuration Set F (9HIL) before and after update
Code:
        default    updated
PLUG    9HIL:XR    9HIL:XR
Page    -------    -------
   4    4LIB:--    4LIB:--
   5                      
   6               HILN:29 (when HP-IL module is plugged-in)
   7               HILM:28 (when HP-IL module is plugged-in)
   8    OSX3:05    OSX3:05
   9    DEV2:22    YFNX:15
   A    DEV2:24    MASS:16
   B    EXTI:27    HEP2:07
   C    EXIO:23    HEPRAM1
   D    YFNX:15    HEPRAM2
   E    DACQ:21    HEPRAM3
   F    DACQ:31    HEPRAM4

Third, procedure to make this happen:
Code:
RCLCFG F   // copy MMU configuration Set F (9HIL) to Set 0
"MASS A"   // Extended Mass Storage
PPLUG      // mapping MASS ROM to page 0xA
"%808 C"   // based on your previous message your HePaX RAM is from 0x808 to 0x80B
PPLUG      // activating HePaX RAM area from page 0xC to 0xF
"HEPX B"   // HePaX ROM (1 page 4 banks)
PPLUG      // mapping HePaX ROM to page 0xB
HEPDIR     // should show: "H:DIR EMPTY" with 2610 in X (if empty of course)
Code:
STOCFG F   // overwrite MMU configuration Set F (9HIL) with your updated MMU configuration Set 0
or
STOCFG 3   // save MMU configuration Set 0 to user configuration 3 (9BAS), it also prevent CFGINI to overwrite your custom configuration.

Next message will address backup and restore.

Sylvain
Find all posts by this user
Quote this message in a reply
08-20-2019, 12:53 PM
Post: #26
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, I tried to install your instructions, but I have a little problem:
I executed:
ON <--, MEMORY LOST
MMUDIS
MMUCLR
"YFNX" PLUG1U
"YFNF" PLUG2L without it I am not able to use CFGINI
MMUEN
I saved this in MMU 0 and MMU 1 as a backup
XEQ CFGINI
XEQ RCLCFG 4
"WARP 7" XEQ PPLUG
ERROR LOCK
I tried UNLOCK 7
OK
"WARP 7" PPLUG
ERROR DUPLICATE ROM 15
BAD CONFIGURATION
I stopped. I need more help or I am useless at 41CL!!
Maybe it is because my first pocket computer was an hp 48SX,
than I used/programmed hp 48GX, 49G and now the 50g.
It is possible that I not understood the logic of the 41CL.
Anyway, I thank you so much!!
Find all posts by this user
Quote this message in a reply
08-20-2019, 02:06 PM
Post: #27
RE: 41CL - DOUBLE HEPAX ACCESS
(08-20-2019 12:53 PM)Podalirius Wrote:  ON <--, MEMORY LOST
You are lucky here that the 41CL keep its RAM content through the ML process

(08-20-2019 12:53 PM)Podalirius Wrote:  XEQ CFGINI
You are right CFGINI is part of YFNF and it was not mapped in my procedures.
You need to use CFGINI only once basically, CFGINI is copying the default MMU configuration table from ROM to RAM.
After that, you use the RAM based MMU configuration table with either the 9??? setup with PLUG/PPLUG or RCLCFG/STOCFG 1..F functions to play with configuration sets.
Warning: each time you use CFGINI you erase any modification that you may have done with the RAM based MMU configuration table.

Also, in my procedure I assumed that you have a properly configured 16K HePaX RAM block located at 0x808 to 0x80B.

(08-20-2019 12:53 PM)Podalirius Wrote:  XEQ RCLCFG 4
"WARP 7" XEQ PPLUG
ERROR LOCK
I tried UNLOCK 7
Sorry for that, it was late, I was tired and did not double/triple check the procedure.
I am at the office right now (GMT-5h) and cannot do any test, but I am pretty sure I know what is going on.

Until I am back home and able to test it, an untested tentative solution would be this procedure:
Code:
MMUDIS     // disable MMU
MMUCLR     // clear MMU configuration Set 0
"YFNX"     // 41CL Extreme Functions
PLUGH      // plug YFNX module to page 0x7
"YFNF"     // 41CL Memory Functions
PLUG1L     // plug YFNF module to page 0x8
Code:
MMUEN      // enable MMU
CFGINI     // copy MMU configurations from ROM to RAM
RCLCFG 4   // copy MMU configuration from set 4 (9PWR) to set 0
MMUDIS     // disable MMU
"WARP"     // WARP ROM (1 page 3 banks)
PLUGH      // mapping WARP ROM to page 0x7
Code:
"YFNX"     // 41CL Extreme Functions
PLUG1U     // mapping YFNX ROM to page 0x9
MMUEN      // enable MMU
"%808 C"   // based on your previous message your HePaX RAM is from 0x808 to 0x80B
PPLUG      // activating HePaX RAM area from page 0xC to 0xF
Code:
"HEPX B"   // HePaX ROM (1 page 4 banks)
PPLUG      // mapping HePaX ROM to page 0xB
HEPDIR     // should show: "H:DIR EMPTY" with 2610 in X (if empty of course)
STOCFG 4   // copy MMU configuration from set 0 to set 4 (9PWR)

(08-20-2019 12:53 PM)Podalirius Wrote:  I stopped. I need more help or I am useless at 41CL!!
Maybe it is because my first pocket computer was an hp 48SX, than I used/programmed hp 48GX, 49G and now the 50g.
It is possible that I not understood the logic of the 41CL.
The 41CL is way more powerful than the original HP-41C/CV/CX, but with that level of power comes some complexities.
At the moment we are playing with the virtualization part, well a small part of it, which allow us to plug virtual modules into virtual ports through configuration sets.

Sylvain
Find all posts by this user
Quote this message in a reply
08-20-2019, 04:29 PM (This post was last modified: 08-20-2019 04:41 PM by Podalirius.)
Post: #28
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, I tried it until the moment to make the Hepax,
until:
"YFNX" // 41CL Extreme Functions
PLUG1U // mapping YFNX ROM to page 0x9
MMUEN // enable MMU

With MMUEN, the error:
DUP XROM 07
CONFIGURATION BAD

I lost all the Hepax, but no problem,
all my software is stored via HP-IL.

I think, with humility, that the great problem
occurs because RCLCFG don't copy the requested page,
but overlap frequently the modules, and every time if
one port (on source or destination) are void.
The same by all the other related commands.
In fact, after a RCLCFG or EXCFG,
the resulting page is a mix of the source and of destinazion
page. I think that is more easy if delete the port in destination,
if is deleted in source. (But this is my opinion with very humility)
All DUP XROM errors that occurs in traing to setup
the MMU are due to this behaviour.

Thank you very, very much!
With best regards.
Find all posts by this user
Quote this message in a reply
08-20-2019, 05:11 PM
Post: #29
RE: 41CL - DOUBLE HEPAX ACCESS
(08-20-2019 04:29 PM)Podalirius Wrote:  Hi, I tried it until the moment to make the Hepax,
until:
"YFNX" // 41CL Extreme Functions
PLUG1U // mapping YFNX ROM to page 0x9
MMUEN // enable MMU

With MMUEN, the error:
DUP XROM 07
CONFIGURATION BAD
Hein! maybe XROM 15 because we are playing with YFNX, but XROM 07 is assigned to HePaX ROM, this is surprise, it means that you have the HePaX ROM also plugged somewhere else, a leftover.
I told you it was untested but glad that you tested it Wink ... anyway I will try the configuration tonight and I will see.

(08-20-2019 04:29 PM)Podalirius Wrote:  I lost all the Hepax, but no problem, all my software is stored via HP-IL.
Almost sure that it is only unmapped but not lost.

(08-20-2019 04:29 PM)Podalirius Wrote:  I think, with humility, that the great problem occurs because RCLCFG don't copy the requested page, but overlap frequently the modules, and every time if one port (on source or destination) are void.
The same by all the other related commands. In fact, after a RCLCFG or EXCFG, the resulting page is a mix of the source and of destinazion page. I think that is more easy if delete the port in destination,
if is deleted in source. (But this is my opinion with very humility) All DUP XROM errors that occurs in traing to setup the MMU are due to this behaviour.
Maybe, but before pointing in that direction, I will do more tests to explore all the possibilities.

On my side I have created three custom MMU configurations, apart for YFNX who is always locked and sometime has some unexpected behaviour, all the unlocked ROM mapped switch correctly between configurations, including HePaX RAM's.

Sylvain
Find all posts by this user
Quote this message in a reply
08-20-2019, 11:14 PM
Post: #30
RE: 41CL - DOUBLE HEPAX ACCESS
(08-20-2019 12:53 PM)Podalirius Wrote:  Hi, I tried to install your instructions, but I have a little problem:
I executed:
ON <--, MEMORY LOST
MMUDIS
MMUCLR
"YFNX" PLUG1U
"YFNF" PLUG2L without it I am not able to use CFGINI
MMUEN
I saved this in MMU 0 and MMU 1 as a backup
XEQ CFGINI
XEQ RCLCFG 4
"WARP 7" XEQ PPLUG
ERROR LOCK
I tried UNLOCK 7
OK
"WARP 7" PPLUG
ERROR DUPLICATE ROM 15
BAD CONFIGURATION
I stopped. I need more help or I am useless at 41CL!!
Maybe it is because my first pocket computer was an hp 48SX,
than I used/programmed hp 48GX, 49G and now the 50g.
It is possible that I not understood the logic of the 41CL.
Anyway, I thank you so much!!

The step "YFNX" PLUG1U is the problem. As the manual clearly states, YFNX must be in the same page between the current and new configuration. When you do the RCLCFG 4 the new YFNX is loaded into page 7 and locked. But at the same time the old YFNX is still in page 9 and locked. You cannot unlock YFNX. It protects itself from user errors by always locking itself.

I am working on a change to YFNX which will allow YFNX to be in a different page in the new configuration, but it's going to take a while. There are a lot of edge cases to handle and not a lot of space in the image.
Visit this user's website Find all posts by this user
Quote this message in a reply
08-21-2019, 12:00 AM (This post was last modified: 08-21-2019 11:06 AM by Sylvain Cote.)
Post: #31
RE: 41CL - DOUBLE HEPAX ACCESS
Podalirius,

I just tried my procedure and it worked successfully, the first time and without any error.

Again, I am assuming that you have a properly configured 16K HePaX RAM block located at 0x808 to 0x80B.
If that is not the case then it will not work!

Below is the same procedure as above but with validation point along the way:
Code:
MMUDIS     // disable MMU
MMUCLR     // clear MMU configuration Set 0
"YFNX"     // 41CL Extreme Functions
PLUGH      // plug YFNX module to page 0x7
"YFNF"     // 41CL Memory Functions
PLUG1L     // plug YFNF module to page 0x8
MMUEN      // enable MMU
Code:
CAT 2      // should display // IMAG:XR
           // -TIME  3A      // TMOD:26 at page 0x5
           // -CL TIME       // XFN5:-- at page 0x5
           // -YFNX 4C       // YFNX:21 at page 0x7
           // -SYS FNS       // YFNX:-- at page 0x7
           // -SER FNS       // YFNX:-- at page 0x7
           // -MISC FNS      // YFNX:-- at page 0x7
           // -YFNF 3A       // YFNF:16 at page 0x8
           // -EXT FNC 3B    // XFN3:25 at page 0x3
           // -CL EXT FNC    // XFN5:-- at page 0x5

Load MMU secondary configuration table with default values and load set 4 into set 0
Code:
CFGINI     // copy MMU configurations from ROM to RAM
RCLCFG 4   // copy MMU configuration from set 4 (9PWR) to set 0
Code:
CAT 2      // should display // IMAG:XR
           // -EXT FNC 3B    // XFN3:25 at page 0x3
           //                // 4LIB:-- at page 0x4
           // -CL EXT FNC    // XFN5:-- at page 0x5
           // -TIME  3A      // TMOD:26 at page 0x5
           // -CL TIME       // XFN5:-- at page 0x5
           // -AMC"OS/X      // OSX3:05 at page 0x6
           // -OSX BANK2     // OSX3:-- at page 0x6
           // -YFNX 4C       // YFNX:21 at page 0x7
           // -SYS FNS       // YFNX:-- at page 0x7
           // -SER FNS       // YFNX:12 at page 0x7
           // -MISC FNS      // YFNX:-- at page 0x7
           // -PWRCL EXT     // PWRX:-- at page 0x8
           // -SYS/EXT       // PWRX:15 at page 0x8
           // -SI            // PWRX:-- at page 0x8
           // -WARP CORE+    // WARP:-- at page 0x9
           // -STKT          // WARP:-- at page 0x9
           // -CLXMEM 2E     // XPMM:20 at page 0xA
           // -YFNM BCKUP    // XPMM:-- at page 0xA
           // -STKSWP        // XPMM:-- at page 0xA
           // -Y-REGS FNS    // XPMM:-- at page 0xA
           // -TOOLBOX"4     // 4TBX:13 at page 0xB
           // -HACKER LAB    // 4TBX:-- at page 0xB
           // -XROM ROM      // ROMX:31 at page 0xC
           // ->>\/\/>>      // ROMX:-- at page 0xC
           // -XROM RAM      // ROMX:-- at page 0xC
           // -HEPAX'4H      // HEP2:07 at page 0xD

Swapping WARP and YFNX ROM position and unmap pages 0xB to 0xF
Code:
MMUDIS     // disable MMU
"WARP"     // WARP ROM (1 page 3 banks)
PLUGH      // mapping WARP ROM to page 0x7
"YFNX"     // 41CL Extreme Functions
PLUG1U     // mapping YFNX ROM to page 0x9
           // now just to be on the safe side
UPLUG2U    // unmapping ROM  from page  0xB
UPLUG3     // unmapping ROMs from pages 0xC and 0xD
UPLUG4     // unmapping ROMs from pages 0xE and 0xF
MMUEN      // enable MMU
Code:
CAT 2      // should display // IMAG:XR
           // -EXT FNC 3B    // XFN3:25 at page 0x3
           //                // 4LIB:-- at page 0x4
           // -CL EXT FNC    // XFN5:-- at page 0x5
           // -TIME  3A      // TMOD:26 at page 0x5
           // -CL TIME       // XFN5:-- at page 0x5
           // -AMC"OS/X      // OSX3:05 at page 0x6
           // -OSX BANK2     // OSX3:-- at page 0x6
           // -WARP CORE+    // WARP:21 at page 0x7
           // -STKT          // WARP:-- at page 0x7
           // -PWRCL EXT     // PWRX:12 at page 0x8
           // -SYS/EXT       // PWRX:-- at page 0x8
           // -SI            // PWRX:-- at page 0x8
           // -YFNX 4C       // YFNX:15 at page 0x9
           // -SYS FNS       // YFNX:-- at page 0x9
           // -SER FNS       // YFNX:-- at page 0x9
           // -MISC FNS      // YFNX:-- at page 0x9
           // -CLXMEM 2E     // XPMM:20 at page 0xA
           // -YFNM BCKUP    // XPMM:-- at page 0xA
           // -STKSWP        // XPMM:-- at page 0xA
           // -Y-REGS FNS    // XPMM:-- at page 0xA
Note: the reason we are doing the above step is that you have mentionned that you want to use set 0x4 (9PWR) without HP-IL module and set 0xF (9HIL) with HP-IL module.
Now, to make the transition easy as possible, YFNX in set 0x4 must be in the same position as YFNX in set 0xF.

Map HePaX RAM & ROM => Warning: The following will fail if your HePaX RAM is not properly configured!
Code:
"%808 C"   // based on your previous message your HePaX RAM is from 0x808 to 0x80B
PPLUG      // activating HePaX RAM area from page 0xC to 0xF
"HEP2 B"   // HePaX 4H ROM (1 page 4 banks) 
PPLUG      // mapping HePaX ROM to page 0xB
Code:
CAT 2      // should display // IMAG:XR
           // -EXT FNC 3B    // XFN3:25 at page 0x3
           //                // 4LIB:-- at page 0x4
           // -CL EXT FNC    // XFN5:-- at page 0x5
           // -TIME  3A      // TMOD:26 at page 0x5
           // -CL TIME       // XFN5:-- at page 0x5
           // -AMC"OS/X      // OSX3:05 at page 0x6
           // -OSX BANK2     // OSX3:-- at page 0x6
           // -WARP CORE+    // WARP:21 at page 0x7
           // -STKT          // WARP:-- at page 0x7
           // -PWRCL EXT     // PWRX:12 at page 0x8
           // -SYS/EXT       // PWRX:-- at page 0x8
           // -SI            // PWRX:-- at page 0x8
           // -YFNX 4C       // YFNX:15 at page 0x9
           // -SYS FNS       // YFNX:-- at page 0x9
           // -SER FNS       // YFNX:-- at page 0x9
           // -MISC FNS      // YFNX:-- at page 0x9
           // -CLXMEM 2E     // XPMM:20 at page 0xA
           // -YFNM BCKUP    // XPMM:-- at page 0xA
           // -STKSWP        // XPMM:-- at page 0xA
           // -Y-REGS FNS    // XPMM:-- at page 0xA
           // -HEPAX'4H      // HEP2:07 at page 0xB
           //                // hram-p1 at page 0xC
           //                // hram-p2 at page 0xD
           //                // hram-p3 at page 0xE
           //                // hram-p4 at page 0xF
HEPDIR     // should display: "H:DIR EMPTY" with 2610 in X (if empty of course)

Save updated set 0 configuration to set 4
Code:
STOCFG 4   // copy MMU configuration from set 0 to set 4 (9PWR)
Warning: using CFGINI after that step will erase the updated set 4 configuration and replace it with its default values.

or save updated set 0 configuration to set 1 (not overwritten by CFGINI)
Code:
STOCFG 1   // copy MMU configuration from set 0 to set 1 (9CFA)

Sylvain

edit1: typo
edit2: add save to configuration 1
Find all posts by this user
Quote this message in a reply
08-21-2019, 06:23 AM
Post: #32
RE: 41CL - DOUBLE HEPAX ACCESS
Hi,
ALL WORKS VERY WELL !!!
and my Hepax with all programs is still present!
If I will able to use the 41CL as my needs, it is
ALL your merit!!!
Again and always a very big THANK YOU!!!
also because I begin to understand some things!

I accepted the advice of Mr. Monte and I stored
the configuration on MMU 1 (9CFA) to not destroy
the original settings and think to store the future
configuration for HP-IL on MMU 2 (9CFB).
I hope this is correct!

With best regards.
Find all posts by this user
Quote this message in a reply
08-21-2019, 11:03 AM
Post: #33
RE: 41CL - DOUBLE HEPAX ACCESS
(08-21-2019 06:23 AM)Podalirius Wrote:  ALL WORKS VERY WELL !!! and my Hepax with all programs is still present!
If I will able to use the 41CL as my needs, it is ALL your merit!!!
Again and always a very big THANK YOU!!! also because I begin to understand some things!
Great! it was my pleasure.

(08-21-2019 06:23 AM)Podalirius Wrote:  I accepted the advice of Mr. Monte and I stored the configuration on MMU 1 (9CFA) to not destroy the original settings and think to store the future configuration for HP-IL on MMU 2 (9CFB).
I hope this is correct!
Everything that is working for you is correct.

Sylvain
Find all posts by this user
Quote this message in a reply
08-21-2019, 12:00 PM
Post: #34
RE: 41CL - DOUBLE HEPAX ACCESS
About the 9HIL configuration, from what you said of what you want, basically nothing is kept from that configuration, so here we will do our own configuration.

The procedure ...
Code:
MMUDIS     // disable MMU
MMUCLR     // clear MMU configuration Set 0
"YFNX"     // 41CL Extreme Functions
PLUG1U     // plug YFNX module to page 0x9
MMUEN      // enable MMU
Code:
"4LIB 4"   // Library 4
PPLUG      // plug 4LIB module to page 0x4
"OSX3 8"   // OS/X ROM
PPLUG      // plug OSX3 module to page 0x8
"MASS A"   // MASS ROM
PPLUG      // plug MASS module to page 0xA
Code:
"%808 C"   // based on your previous message your HePaX RAM is from 0x808 to 0x80B
PPLUG      // activating HePaX RAM area from page 0xC to 0xF
"HEP2 B"   // HePaX 4H ROM
PPLUG      // mapping HePaX ROM to page 0xB
STOCFG 2   // copy MMU configuration from set 0 to set 2 (9CFB)
Code:
CAT 2      // should display // IMAG:XR
           // -EXT FNC 3B    // XFN3:25 at page 0x3
           //                // 4LIB:-- at page 0x4
           // -CL EXT FNC    // XFN5:-- at page 0x5
           // -TIME  3A      // TMOD:26 at page 0x5
           // -CL TIME       // XFN5:-- at page 0x5
           // -AMC"OS/X      // OSX3:05 at page 0x8
           // -OSX BANK2     // OSX3:-- at page 0x8
           // -YFNX 4C       // YFNX:15 at page 0x9
           // -SYS FNS       // YFNX:-- at page 0x9
           // -SER FNS       // YFNX:-- at page 0x9
           // -MISC FNS      // YFNX:-- at page 0x9
           // -X MASS STG    // MASS:16 at page 0xA
           // -HEPAX'4H      // HEP2:07 at page 0xB
           //                // hram-p1 at page 0xC
           //                // hram-p2 at page 0xD
           //                // hram-p3 at page 0xE
           //                // hram-p4 at page 0xF
HEPDIR     // should display: "H:DIR EMPTY" with 2610 in X (if empty of course)

Switching between the two configurations
Code:
"9CFA"     // custom configuration based on 9PWR
PPLUG      // activating 9CFA configuration

"9CFB"     // custom configuration for HP-IL
PPLUG      // activating 9CFB configuration
Find all posts by this user
Quote this message in a reply
08-21-2019, 05:40 PM
Post: #35
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, also HP-IL works fine, but I have a problem
in swapping pages:
After tested HP-IL with my pyILBOX, I decided to
swap on 9CFA that is "my" standard configuration.
I typed "9CFA" XEQ PPLUG
and my programs are all NOT EXISTENT,
so i typed CAT 2 and I discovered:
CAT 2 on 9CFA............................CAT 2 on 9CFB
TIME 3A....................................EXT FCN 3B
CL TIME.....................................CL EXT FCN
YFNX 4C....................................TIME 3A
SYS FNS...................................CL TIME
SER FNS...................................AMC"OS/X
MISC FNS.................................OSX BANK2
YFNF 3A...................................YFNX 4C
EXT FCN 3B.............................SYS FNS
CL EXT FCN.............................SER FNS
................................................MISC FNS
................................................X MASS STG
................................................HEPAX'4H
It is evident that the HP-IL configuration on 9CFB is OK,
but I don't understand from where arrive this configuration
on 9CFA!

When I typed CAT 2 on 9CFA, I immediately stopped with R/S
and advanced with SST. At last SST the 41CL display 0.0000,
but on 9CFB, at last line of CAT 2, continue to display the last line
and to exit I have to press <-- (Backspace).

Another problem or I typed a mistake?
I am sorry ho make this help so long!

Now I am very stressed by a problem at an eye, but tomorrow
I reinstall your 9CFA configuration, then I repeat the tests.
Thank you so much!!
Find all posts by this user
Quote this message in a reply
08-21-2019, 07:34 PM
Post: #36
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, my passion for computers is more stronger then eyes :-)
I reinstalled 9CFA and ALL WORKS VERY WELL!!!
I am sorry for my mistake.
A little doubt:
to swap from MMU 0 to one of the MMU installed by CFGINI,
is enough to type "9???" PPLUG or I have to use the code that
Mr. Monte posted in this help?
For example, to change to another configuration:
MMUDIS
MMUCLR
"YFNX" PLUGH
MMUEN
RCLCFG ?

Of course I don't select 9HIL because we have your configuration!

Again, Thank you so much!!
With best regards.
Find all posts by this user
Quote this message in a reply
08-22-2019, 01:59 AM (This post was last modified: 08-22-2019 02:10 AM by Sylvain Cote.)
Post: #37
RE: 41CL - DOUBLE HEPAX ACCESS
(08-21-2019 07:34 PM)Podalirius Wrote:  I reinstalled 9CFA and ALL WORKS VERY WELL!!!
I am sorry for my mistake.
No need to be sorry, learning is a difficult path and mistakes are part of it.

(08-21-2019 07:34 PM)Podalirius Wrote:  A little doubt: to swap from MMU 0 to one of the MMU installed by CFGINI, is enough to type "9???" PPLUG or I have to use the code that Mr. Monte posted in this help?
Actually you do not swap, well ... you can, but in all our examples up to now, we never did.
So for our limited view of things, you override your MMU configuration set 0 with another MMU configuration set 1 to F with RCLCFG or from one of the "9???" with PLUG or PPLUG.

(08-21-2019 07:34 PM)Podalirius Wrote:  For example, to change to another configuration:
MMUDIS
MMUCLR
"YFNX" PLUGH
MMUEN
RCLCFG ?
In general yes but you must map the "YFNX" module to the same page as the configuration you want to import.
Ex #1: for set 4 or "9PWR", "YFNX" is mapped to page 7 (PLUGH)
Ex #2: for set F or "9HIL", "YFNX" is mapped to page D (PLUG3U)

(08-21-2019 07:34 PM)Podalirius Wrote:  Of course I don't select 9HIL because we have your configuration!
Not so sure, if you save it like my last post suggested it (STOCFG 2) then you use "9CFB" not "9HIL".

Configuration names and numbers ...
Code:
Name    Set  MMU-Type   Description
------  ---  ---------  ---------------------------------------
         0   Primary    Active configuration used by the system
"9CFA"   1   Primary    Alternate Configuration A
"9CFB"   2   Primary    Alternate Configuration B
"9BAS"   3   Primary    Basic Configuration
Code:
"9PWR"   4   Secondary  Power-User Configuration
"9MTH"   5   Secondary  Mathematics Configuration
"9SCI"   6   Secondary  Scientist’s Configuration
"9INF"   7   Secondary  Informatics Configuration
"9PRG"   8   Secondary  Programming Configuration
"9ELE"   9   Secondary  Electrical Engineering Configuration
Code:
"9MEC"   A   Secondary  Mechanical Engineering Configuration
"9MAP"   B   Secondary  Maps & Words Configuration
"9PLY"   C   Secondary  Playground Configuration
"9BGM"   D   Secondary  Brainy Games Configuration
"9CST"   E   Secondary  Custom Configuration
"9HIL"   F   Secondary  HP-IL Configuration
Note: configuration names was taken from the 41CL Calculator Manual (sy41cl.pdf) page 59 (rev. 2019-06-22)

Some of the functions affecting MMU Registers ...
Code:
Function  Parm    From  Description
--------  ------  ----  -------------------------------------------------------------------------
MMUCLP            YFNX  Erase RAM Primary   MMU Registers (sets 0 to 3 are cleared)
MMUCLS            YFNX  Erase RAM Secondary MMU Registers (sets 4 to F are cleared)
CFGINI            YFNF  Copy default values from ROM to RAM Secondary MMU Registers (sets 4 to F)
Code:
PLUG      "Name"  YFNX  Copy specified configuration name to active configuration (set 0)
PPLUG     "Name"  YFNX  Copy specified configuration name to active configuration (set 0)
RCLCFG    1 to F  YFNX  Copy specified configuration set (1..F) to active configuration (set 0)
STOCFG    1 to F  YFNX  Copy active configuration (set 0) to specified configuration set (1..F)
EXCFG     1 to F  YFNX  Exchange active configuration (set 0) with specified configuration set (1..F)
Code:
LOCK      0 to F  YFNX  Lock specified page in active configuration (set 0)
UNLOCK    0 to F  YFNX  Unlock specified page in active configuration (set 0)
Note: MMU locked entries are not copied or exchanged. (YFNX is always locked and cannot be unlocked while MMU is enabled)

Also, like Monte said in an earlier port, you can lock the HePaX ROM+RAM in place, preventing an override of your HePaX setup by another configuration.

In your case to lock the pages, the procedure is:
Code:
LOCK B       // lock HePaX ROM
LOCK C       // lock HePaX RAM page 1
LOCK D       // lock HePaX RAM page 2
LOCK E       // lock HePaX RAM page 3
LOCK F       // lock HePaX RAM page 4

To unlock the pages, the procedure is:
Code:
UNLOCK B     // unlock HePaX ROM
UNLOCK C     // unlock HePaX RAM page 1
UNLOCK D     // unlock HePaX RAM page 2
UNLOCK E     // unlock HePaX RAM page 3
UNLOCK F     // unlock HePaX RAM page 4

Sylvain

edit: typo & added some details
Find all posts by this user
Quote this message in a reply
08-22-2019, 10:39 AM
Post: #38
RE: 41CL - DOUBLE HEPAX ACCESS
Hi, some little bit of specifications:
- I was sorry for respect of you and your work to help me.
- I am a scholar, to study (and learn) is in my nature.

I tried some experiments with MMU configuration exchange,
before to read your last message.
(The risk is very low, to reinstall 9CFA and 9CFB is a
matter of minutes).

With 9CFA active on MMU 0 to change to have 9SCI
STOCFG 1 // A backup
MMUDIS
MMUCLR

In 9SCI configuration, YFNX is in port 7
so

"YFNX" PLUGH
MMUEN
RCLCFG 6 (9SCI)

I verified with CAT 2 and all is OK.

To return to have 9CFA in port 0

MMUDIS
MMUCLR

In 9CFA, YFNX is in port 9
so

"YFNX" PLUG1U
MMUEN
RCLCFG 1 (9CFA)

Again I verified with CAT 2, and all is OK.

I think to begin to understand the mechanism of MMU.

At this point all the help I asked is at his end, but you
proposed me a procedure to save MMU configurations via HP-IL,
still I am not here to abuse of you to make my 41CL without any effort!!!
I ask you, if possible, to give me some suggestions so that I can try to
make it by myself. In case of problems, I can ask new help.

With all my gratitude, I thank you SO MUCH!!!!
With best regards.
Find all posts by this user
Quote this message in a reply
08-22-2019, 02:30 PM
Post: #39
RE: (SOLVED) 41CL - DOUBLE HEPAX ACCESS and MMU CONFIG
(08-22-2019 10:39 AM)Podalirius Wrote:  Hi, some little bit of specifications:
- I was sorry for respect of you and your work to help me.
- I am a scholar, to study (and learn) is in my nature.
Well, this is probably a cultural thing here.
I am a Quebecer (French Canadian from Quebec) exchanging with an Italian from Europe in English which is non-native for both. Smile
Anyway, it was my decision to jumped in to help you with your 41CL, after that it was my responsibility as much as I could to bring you to a certain level of understanding.

(08-22-2019 10:39 AM)Podalirius Wrote:  I tried some experiments with MMU configuration exchange, before to read your last message.
(The risk is very low, to reinstall 9CFA and 9CFB is a matter of minutes).
That's the spirit! Wink

(08-22-2019 10:39 AM)Podalirius Wrote:  With 9CFA active on MMU 0 to change to have 9SCI
STOCFG 1 // A backup
If you make a modification that you want to keep then it make sense to save your configuration to your set (here 9CFA) otherwise you should only read from it.
That lower the risk of overwriting your configuration with a wrong one.

(08-22-2019 10:39 AM)Podalirius Wrote:  ...
I think to begin to understand the mechanism of MMU.
Great! ... you are now the expert on this subject and you answer the next 41CL user question on MMU configuration sets ... just kidding ... LOL.

(08-22-2019 10:39 AM)Podalirius Wrote:  At this point all the help I asked is at his end, but you proposed me a procedure to save MMU configurations via HP-IL, still I am not here to abuse of you to make my 41CL without any effort!!!
I ask you, if possible, to give me some suggestions so that I can try to make it by myself. In case of problems, I can ask new help.
Doing a backup/restore of HePaX RAM to/from a HP-IL medium is relatively easy.
Since the HePaX RAM external structure is based on ROM format, most MLDL (Machine Language Development Lab) utility ROM has a way to backup/restore ROM to/from HP-IL medium.

Doing a backup/restore of the MMU configuration sets to/from a HP-IL medium is more problematic.
The problem is that I need to bring the information from/to the 41CL FPGA MMU world into the HP-41CX world before being able to make a backup/restore to/from a HP-IL medium.

I need to do some reading of Monte documents and do some experimentation before I can come up with the solution.
There will be some days before I will come back to you.

Sylvain
Find all posts by this user
Quote this message in a reply
08-22-2019, 05:33 PM
Post: #40
RE: (SOLVED) 41CL - DOUBLE HEPAX ACCESS and MMU CONFIG
(08-22-2019 02:30 PM)Sylvain Cote Wrote:  Doing a backup/restore of the MMU configuration sets to/from a HP-IL medium is more problematic.
The problem is that I need to bring the information from/to the 41CL FPGA MMU world into the HP-41CX world before being able to make a backup/restore to/from a HP-IL medium.

I need to do some reading of Monte documents and do some experimentation before I can come up with the solution.
There will be some days before I will come back to you.

Sylvain

My limited understanding of the Hepax RAM format says that it might be fairly simple. If you look at page 804 in RAM where the MMU registers are, the first 12 bytes are almost unused. And everything above 804400 is unused. So the Hepax page pointers can be easily set. The word at 804000 is used for the 41C register address, which means that you probably will need to copy page 804 to some other RAM page before you can make it into a Hepax RAM page for transfer. I am assuming that the Hepax RAM can be filled with binary data. If this is not the case then it become more complicated, but there is plenty of space in the page to massage the data to/from any required format.
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




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