Post Reply 
MMUCAT - PowerCL_EXT NONEXISTENT XROM call
02-11-2017, 05:16 AM
Post: #1
MMUCAT - PowerCL_EXT NONEXISTENT XROM call
First, Thank you Ángel for these amazing modules!

I have:
HP41CL, version 4 PCB, current as of mid January 2017 (I have tried it on two HP41CLs with the same configuration with the same result.)

PGCAT:
3: EXT FCN 3B
4: Library#4
5: Time 3A
6: No ROM (Left open for PIL Box printer)
7: No ROM (Left open for PIL Box mass storage)
8: YFNX 2B
9: PWREXT B3
A: HEPAX'4H
B: HEPAX RAM
C: No ROM
D: No ROM
E: No ROM
F: No ROM

When I execute MMUCAT in the PowerCL_EXT module, it returns "NONEXISTENT" at line 7 which displays "07 XROM 05,31"

I thought that maybe I needed the CCD OS/X ROM and plugged it in (XROM #5?), but that didn't help.

I did a CAT2 and "entered" the PWR ROM catalog and MMUCAT is there where it should be. If I "GTO MMUCAT", I get "NONEXISTENT". I can't "COPY" it, or print it. When I go into "PRGM" mode after the error, there is no global "MMUCAT" label. Line 01 is a numeric "2" and I'm stopped at line7 with the "XROM 05,31" call. When I look at and compare to the listing in the manual, there is little resemblance as I step through the code on the calculator which makes me think I am not in the "MMUCAT" code.

I don't understand. What am I missing?

Other functions in the other PWREXT module pages seem to be fine, although I haven't even really begun to test them all (love the unit management).

David

David Ingebretsen
Collision Forensics & Engineering, Inc.
dingebre@CFandE.com
http://www.CFandE.com
http://Analoguerealities.com
Find all posts by this user
Quote this message in a reply
02-11-2017, 07:05 AM (This post was last modified: 02-11-2017 07:09 AM by Ángel Martin.)
Post: #2
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
(02-11-2017 05:16 AM)dingebre Wrote:  First, Thank you Ángel for these amazing modules!

Very glad to hear you find the modules useful, that's the best reward for me as the programmer ;-)

Quote:I have:
HP41CL, version 4 PCB, current as of mid January 2017 (I have tried it on two HP41CLs with the same configuration with the same result.)

PGCAT:
3: EXT FCN 3B
4: Library#4
5: Time 3A
6: No ROM (Left open for PIL Box printer)
7: No ROM (Left open for PIL Box mass storage)
8: YFNX 2B
9: PWREXT B3
A: HEPAX'4H
B: HEPAX RAM
C: No ROM
D: No ROM
E: No ROM
F: No ROM

When I execute MMUCAT in the PowerCL_EXT module, it returns "NONEXISTENT" at line 7 which displays "07 XROM 05,31"

I thought that maybe I needed the CCD OS/X ROM and plugged it in (XROM #5?), but that didn't help.

I'm afraid this is a version mismatch issue. Your instincts were correct, indeed the call to XROM 05,31 corresponds to the function WSIZE in the AMC_OS/X module. But this one has had a few versions in the last couple of years that have altered the FAT a little, probably enough to cause this hiccups.

Make sure you use the latest version of the OS/X module; it's a bank-switched version with the "OSX3" for CL id# (to plug it in). BTW the OS/X module is a must-have for me, the extended catalogs and synthetic entry are just amazing.

Quote:I did a CAT2 and "entered" the PWR ROM catalog and MMUCAT is there where it should be. If I "GTO MMUCAT", I get "NONEXISTENT". I can't "COPY" it, or print it. When I go into "PRGM" mode after the error, there is no global "MMUCAT" label. Line 01 is a numeric "2" and I'm stopped at line7 with the "XROM 05,31" call. When I look at and compare to the listing in the manual, there is little resemblance as I step through the code on the calculator which makes me think I am not in the "MMUCAT" code.

I don't understand. What am I missing?

What you're seeing there is a collateral effect of removing the global label from a FOCAL program, replacing it with an MCODE header. This is convenient for a couple of reasons (shorter code, amongst them) but the downsize is that you cannot "GTO" it. To position the PC within it you need to call the function and stop the execution while it's doing its work.

Then the OS misinterprets the MCODE header assigning bogus program line numbers to it, offsetting the count. So the function called should be WSIZE, and it is in line 05 (not 07!) See the complete MMUCAT program listing below:

Code:
1    LBL "MMUCAT"
2    50
3    PTURBO
4    4
5    WSIZE
6    LBL 01
7    "0-0000"
8    ASTO X
9    3,015
10    LBL 02
11    8040
12    ARCLH
13    ARCL Y
14    YPEEK
15    ASHF
16    ATOX
17    ATOX
18    RDN
19    RDN
20    ADRID
21    ARCLH
22    "|-: "
23    -3
24    AROT
25    RDN
26    "|--"
27    PGSIG
28    AVIEW
29    PSE
30    ISG X
31    GTO 02
32    CLST
33    CLD
34    RTN
35    GTO 01
36    END

Let me know if this helps; if the error persists I can send you the latest revisions of the ROM files but I think the CL board you have does already have them.

Quote:Other functions in the other PWREXT module pages seem to be fine, although I haven't even really begun to test them all (love the unit management).

David

Enjoy the ride, there's a lot to explore in there. And don't get discouraged it you run into wrinkles, it's tricky stuff and requires a good grasp of things not to get confused somehow (I get lost frequently ;=) Anyway, help is always an email away.

Best,
ÁM

PS. When you're comfortable with the PWREXT features move on to the TotalRekall_Dare2Compare version) and the CLXMEM modules, these really unleash all the CL potential in my mind.
Find all posts by this user
Quote this message in a reply
02-11-2017, 08:02 AM
Post: #3
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
BRILLIANT! Plugging the correct CCD version fixed it. Thank you for the explanation regarding the listing. It makes sense and it triggered soon very old memories in my wrinkly brain from my first foray into MCODE in the early 80s. Man I'm having fun!

Thank you

David


(02-11-2017 07:05 AM)Ángel Martin Wrote:  
(02-11-2017 05:16 AM)dingebre Wrote:  First, Thank you Ángel for these amazing modules!

Very glad to hear you find the modules useful, that's the best reward for me as the programmer ;-)

Quote:I have:
HP41CL, version 4 PCB, current as of mid January 2017 (I have tried it on two HP41CLs with the same configuration with the same result.)

PGCAT:
3: EXT FCN 3B
4: Library#4
5: Time 3A
6: No ROM (Left open for PIL Box printer)
7: No ROM (Left open for PIL Box mass storage)
8: YFNX 2B
9: PWREXT B3
A: HEPAX'4H
B: HEPAX RAM
C: No ROM
D: No ROM
E: No ROM
F: No ROM

When I execute MMUCAT in the PowerCL_EXT module, it returns "NONEXISTENT" at line 7 which displays "07 XROM 05,31"

I thought that maybe I needed the CCD OS/X ROM and plugged it in (XROM #5?), but that didn't help.

I'm afraid this is a version mismatch issue. Your instincts were correct, indeed the call to XROM 05,31 corresponds to the function WSIZE in the AMC_OS/X module. But this one has had a few versions in the last couple of years that have altered the FAT a little, probably enough to cause this hiccups.

Make sure you use the latest version of the OS/X module; it's a bank-switched version with the "OSX3" for CL id# (to plug it in). BTW the OS/X module is a must-have for me, the extended catalogs and synthetic entry are just amazing.

Quote:I did a CAT2 and "entered" the PWR ROM catalog and MMUCAT is there where it should be. If I "GTO MMUCAT", I get "NONEXISTENT". I can't "COPY" it, or print it. When I go into "PRGM" mode after the error, there is no global "MMUCAT" label. Line 01 is a numeric "2" and I'm stopped at line7 with the "XROM 05,31" call. When I look at and compare to the listing in the manual, there is little resemblance as I step through the code on the calculator which makes me think I am not in the "MMUCAT" code.

I don't understand. What am I missing?

What you're seeing there is a collateral effect of removing the global label from a FOCAL program, replacing it with an MCODE header. This is convenient for a couple of reasons (shorter code, amongst them) but the downsize is that you cannot "GTO" it. To position the PC within it you need to call the function and stop the execution while it's doing its work.

Then the OS misinterprets the MCODE header assigning bogus program line numbers to it, offsetting the count. So the function called should be WSIZE, and it is in line 05 (not 07!) See the complete MMUCAT program listing below:

Code:
1    LBL "MMUCAT"
2    50
3    PTURBO
4    4
5    WSIZE
6    LBL 01
7    "0-0000"
8    ASTO X
9    3,015
10    LBL 02
11    8040
12    ARCLH
13    ARCL Y
14    YPEEK
15    ASHF
16    ATOX
17    ATOX
18    RDN
19    RDN
20    ADRID
21    ARCLH
22    "|-: "
23    -3
24    AROT
25    RDN
26    "|--"
27    PGSIG
28    AVIEW
29    PSE
30    ISG X
31    GTO 02
32    CLST
33    CLD
34    RTN
35    GTO 01
36    END

Let me know if this helps; if the error persists I can send you the latest revisions of the ROM files but I think the CL board you have does already have them.

Quote:Other functions in the other PWREXT module pages seem to be fine, although I haven't even really begun to test them all (love the unit management).

David

Enjoy the ride, there's a lot to explore in there. And don't get discouraged it you run into wrinkles, it's tricky stuff and requires a good grasp of things not to get confused somehow (I get lost frequently ;=) Anyway, help is always an email away.

Best,
ÁM

PS. When you're comfortable with the PWREXT features move on to the TotalRekall_Dare2Compare version) and the CLXMEM modules, these really unleash all the CL potential in my mind.

David Ingebretsen
Collision Forensics & Engineering, Inc.
dingebre@CFandE.com
http://www.CFandE.com
http://Analoguerealities.com
Find all posts by this user
Quote this message in a reply
02-15-2017, 12:21 AM
Post: #4
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
I had the same problem with MMUCAT. Plugging in OSX3 solved the problem, but I did not have the extended catalog functionality of OSX3. The arrangement was YFNX in page C and OSX3 in page D.

When I swapped the order of the modules so that OSX3 appeared in the lower numbered page before YFNX, the extended catalog function worked again (really missed that!) Is there a reason that the order of these two modules is significant?

Quote: dingebre Wrote:
First, Thank you Ángel for these amazing modules!
Double +1

~Mark
Find all posts by this user
Quote this message in a reply
02-15-2017, 02:32 AM
Post: #5
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
(02-15-2017 12:21 AM)mfleming Wrote:  I had the same problem with MMUCAT. Plugging in OSX3 solved the problem, but I did not have the extended catalog functionality of OSX3. The arrangement was YFNX in page C and OSX3 in page D.

When I swapped the order of the modules so that OSX3 appeared in the lower numbered page before YFNX, the extended catalog function worked again (really missed that!) Is there a reason that the order of these two modules is significant?

There are a handful of flag bits in the Nut CPU that retain their state during deep sleep. But in the NEWT CPU, since the FPGA is powered down during deep sleep, the state of these bits is lost. To combat this, YFNX saves the state of these bits in RAM before the machine turns off, using a polling point. But OSX3 uses some of these bits to hold status, and this status is updated by the OSX3 polling point. For this reason the OSX3 polling point code needs to run before the YFNX polling point code runs, and the way to guarantee this is to have OSX3 plugged into a lower page number. I didn't discover this until well after the 41CL had been released, which was actually a good thing, because if I knew about it before the release I might have abandoned the project, thinking that there was no way to preserve the state of those status bits. (Necessity is the mother of invention.)
Visit this user's website Find all posts by this user
Quote this message in a reply
02-15-2017, 03:31 AM
Post: #6
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
(02-15-2017 02:32 AM)Monte Dalrymple Wrote:  
(02-15-2017 12:21 AM)mfleming Wrote:  I had the same problem with MMUCAT. Plugging in OSX3 solved the problem, but I did not have the extended catalog functionality of OSX3. The arrangement was YFNX in page C and OSX3 in page D.

When I swapped the order of the modules so that OSX3 appeared in the lower numbered page before YFNX, the extended catalog function worked again (really missed that!) Is there a reason that the order of these two modules is significant?

There are a handful of flag bits in the Nut CPU that retain their state during deep sleep. But in the NEWT CPU, since the FPGA is powered down during deep sleep, the state of these bits is lost. To combat this, YFNX saves the state of these bits in RAM before the machine turns off, using a polling point. But OSX3 uses some of these bits to hold status, and this status is updated by the OSX3 polling point. For this reason the OSX3 polling point code needs to run before the YFNX polling point code runs, and the way to guarantee this is to have OSX3 plugged into a lower page number. I didn't discover this until well after the 41CL had been released, which was actually a good thing, because if I knew about it before the release I might have abandoned the project, thinking that there was no way to preserve the state of those status bits. (Necessity is the mother of invention.)

Very interesting Monte. Never having had a "OSX" ROM (I was a ZENROM user), I didn't notice the missing Catalog extensions.

David

David Ingebretsen
Collision Forensics & Engineering, Inc.
dingebre@CFandE.com
http://www.CFandE.com
http://Analoguerealities.com
Find all posts by this user
Quote this message in a reply
02-15-2017, 04:18 AM
Post: #7
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
mfleming Wrote:
dingebre Wrote:First, Thank you Ángel for these amazing modules!
Double +1
There is no value for my appreciation of Ángel modules. I said it before and I will say it again, THANK YOU!

dingebre Wrote:Very interesting Monte. Never having had a "OSX" ROM (I was a ZENROM user), I didn't notice the missing Catalog extensions.

Actually, the original module was the CCD ROM produced by W&W in 1985.
Raymond del Tondo opened up the CCD ROM, extracted most of the OS extensions and produced the initial OS/X 4K module.
Ángel Martin then pushed it further (as usual) and produced multiple evolutions of his AMC_OS/X module.

Sylvain
Find all posts by this user
Quote this message in a reply
02-15-2017, 04:31 AM
Post: #8
RE: MMUCAT - PowerCL_EXT NONEXISTENT XROM call
(02-15-2017 04:18 AM)Sylvain Cote Wrote:  
mfleming Wrote:Double +1
There is no value for my appreciation of Ángel modules. I said it before and I will say it again, THANK YOU!

dingebre Wrote:Very interesting Monte. Never having had a "OSX" ROM (I was a ZENROM user), I didn't notice the missing Catalog extensions.

Actually, the original module was the CCD ROM produced by W&W in 1985.
Raymond del Tondo opened up the CCD ROM, extracted most of the OS extensions and produced the initial OS/X 4K module.
Ángel Martin then pushed it further (as usual) and produced multiple evolutions of his AMC_OS/X module.

Sylvain

Thanks for the history Sylvain. I wasn't sure the best moniker to use "CCD" or "OSX" hence the quotes Smile In this context, you're absolutely right I should have left it at CCD. This journey back into the 41 has been mind bending to say the least. Trying to keep it all straight is a huge job on its own!

What is most astounding to me is the great community here and the incredible continuing support and new innovations that are available.

Thanks to everyone.

David

David Ingebretsen
Collision Forensics & Engineering, Inc.
dingebre@CFandE.com
http://www.CFandE.com
http://Analoguerealities.com
Find all posts by this user
Quote this message in a reply
Post Reply 




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