[41CL WARP] XEQ+ oddness
|
04-10-2021, 12:33 AM
Post: #21
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
I repeated the test, including OSX3 but omitting PWRX, and all is fine: the problem is gone.
i.e. with: Code: -820 4 all is fine. Repeated again, this time including PWRX, and omitting OSX3, and the problem returns. i.e. with Code: -820 4 the problem returns; XEQ+ 'Q': Code: "Q 385 So it looks like the presence of PWRX is required, to cause the problem. Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-10-2021, 06:21 AM
Post: #22
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Well, this is rather strange, let's see... the only thing we haven't tried so far is to double-check the Library#4 itself. Can you try with the attached one and see if that was the root cause?
If you execute CAT'0 - then press "G" you should see the following for the Library#4 entry: 4:-LIB#4 R58b. (the b won't show on the CL) Normally I'm very disciplined sending all updated to Monte but I could have slipped something the last time, so the best way to tell is by trying the attached one. "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-10-2021, 10:47 AM
(This post was last modified: 04-10-2021 01:46 PM by Sylvain Cote.)
Post: #23
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
I am getting the same result with the same setup.
I have loaded the new LIBRARY4 at page 825 then remapped page 4 from 820 to 825. No change, same result. Setup #1 Code: -825 4 Setup #2 Code: -825 4 Setup #3 Code: -825 4 Modified setup #3 Code: EMPT A Unmodified setup #3 catalog listing (CAT"0 G) on thermal printer (82143A) in TRACE mode: Code: 3:-EXT FCN 3B edit: added configuration setups |
|||
04-10-2021, 04:10 PM
(This post was last modified: 04-10-2021 04:31 PM by Ángel Martin.)
Post: #24
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Thanks to both for the testing, so now we're on the same page and you two are seeing the same problem so there's got to be something intrinsically wrong in there. I've configured my CL using the same ports and the issue also happens - finally - on my system. I typically plug the PWRX in page#7, I guess that's why this didn't ever come up for me.
Looking at the choice of pages I believe the standard bank-switching behavior is the root cause of the problem. Notice that both pages #A and #B will bank-switch together, i.e. it happens at the PORT level. This is so that dual-page modules (like the HP41 Advantage) work OK during the bank-switched calls. So what happens when both the PWRX and the WARP are in the same "port" (pages #A and #B) is that they'll both switch banks together. This is bad because the WARP code will instruct the PWRX to switch banks looking for auxiliary FATS in it. When it does, the execution returns to the WARP to read the aux-FAT contents - but alas, WARP is also in a different bank so the execution returns to la-la-land, and hence the screw-up/ The solution: never plug the WARP together (in a port) with another single-page, bank-switched module such as PWRX, OSX3, 16CS... and the problem won't occur. Note that two-page bank-switched modules (like SandMath, SandMatrix, 41Z, etc.) could also show this problem if you plug them in a port-straddled configuration (upper page of lower port and lower page of upper port). This of course is not possible in the real machine or V41/41X but on the CL the flexibility is total so it's possible to do it. So the proof is in the pudding: simply plug the WARP in a port without other B-S module and try again. I'd strongly recommend using page#7 for either PWRX or WARP, assuming of course that no HP-IL is needed. And the verdict is... "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-10-2021, 06:35 PM
(This post was last modified: 04-10-2021 06:35 PM by cdmackay.)
Post: #25
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Excellent! thanks very much, Ángel. That has fixed it, indeed.
Code: 4LIB 4 all from the 4/4/2021 set, works fine. Marvellous! Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-10-2021, 06:43 PM
(This post was last modified: 04-10-2021 06:48 PM by cdmackay.)
Post: #26
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
I keep pages 6 & 7 free for HP-IL, on my 41CL, which is why I've run into this.
I'm not quite clear on the rule we should follow; is it: • do not mix two different single-page bank-switched modules in a single port or • do not mix anything with a single-page bank-switch module in a single port. i.e. leave the other page empty, in that port i.e. is it OK to have: page A — single-page bank-switched module page B — single-page non-banked module or would A switching also upset B, even if B isn't itself bank-switched? [Also, do we know if the DM41X auto-plugging selection rules take this into account?] Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-10-2021, 06:45 PM
Post: #27
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
So, thank you very much Ángel, for the solution.
And thanks very much also to Sylvain, for taking the time to reproduce, and demonstrate that I wasn't imagining it all Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-10-2021, 08:03 PM
(This post was last modified: 04-10-2021 08:06 PM by rprosperi.)
Post: #28
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Nice detective work Angel!
Was this fact, that adjacent Pages in a given Port both bank-switch together well-known or is this a new discovery? And of course by 'well-known' I mean by you gurus, not the rest of us heathens.... (04-10-2021 06:43 PM)cdmackay Wrote: [Also, do we know if the DM41X auto-plugging selection rules take this into account?] I believe (Angel, please correct me if I'm wrong) this doesn't occur on the 41X because the adjacent Pages in a common Port are not physically connected so the bank switch for one does not affect the other (one advantage of s/w based emulation ) --Bob Prosperi |
|||
04-10-2021, 08:39 PM
(This post was last modified: 04-10-2021 08:49 PM by Sylvain Cote.)
Post: #29
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-10-2021 08:03 PM)rprosperi Wrote: Nice detective work Angel!Indeed! (04-10-2021 08:03 PM)rprosperi Wrote: Was this fact, that adjacent Pages in a given Port both bank-switch together well-known or is this a new discovery? And of course by 'well-known' I mean by you gurus, not the rest of us heathens....I had forgotten it, but yes it was very well explained in the ZEPROM Module - Programmer's Manual, 1988, Pages 5 to 9 edit: also explained in the CMT-110/CMT-10 Owner's Manual, but that module uses a different bank switching scheme than HP/Zengrange. |
|||
04-10-2021, 09:15 PM
Post: #30
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
thanks Bob,
(04-10-2021 08:03 PM)rprosperi Wrote: I believe (Angel, please correct me if I'm wrong) this doesn't occur on the 41X because the adjacent Pages in a common Port are not physically connected so the bank switch for one does not affect the other (one advantage of s/w based emulation ) unless some code somewhere assumes the hardware-based behaviour that's good to know, thanks Bob. Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-10-2021, 09:16 PM
Post: #31
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
thanks Sylvain,
(04-10-2021 08:39 PM)Sylvain Cote Wrote: I had forgotten it, but yes it was very well explained in the ZEPROM Module - Programmer's Manual, 1988, Pages 5 to 9 the discussion there of the 12K HP modules seems to suggest that it is OK to have both a single-page bank-switched module, along with a single-page non-banked module, in the same port? Cambridge, UK 41CL/DM41X 12/15C/16C DM15/16 17B/II/II+ 28S 42S/DM42 32SII 48GX 50g 35s WP34S PrimeG2 WP43S/pilot/C47 Casio, Rockwell 18R |
|||
04-11-2021, 07:04 AM
(This post was last modified: 04-12-2021 06:27 AM by Ángel Martin.)
Post: #32
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-10-2021 09:16 PM)cdmackay Wrote: thanks Sylvain, Yeah, that's ok. There's no need to leave the other page blank: the port can be fully used as long as there aren't two, single-page, bank-switched ROMS in it. So the rule of thumb is that the only restriction is for two bank-switched ROMS belonging to different Modules to be in the same port, that's what should be avoided - As you observe, the case of two, single-paged, bank-switched modules is a particular instance of the general rule above. In truth, even that isn't always going to be a problem, only when one of the ROMS is accessing contents from the other (like it occurs with the WARP reading the auxiliary FATs of the PWRX in a secondary bank). But this is a bit too complex to use as a rule, so better stick to the first one. I mentioned it before, this applies to the CL because it is the most flexible of all platforms. In the CL you can plug said configurations using the ROM images as you wish, for instance when you use the RAM or Flash locations you can plug the module pages straddling two ports. Note that when using the IMDB mnemonic this issue is *sometimes* avoided based on the module size - but you're not completely protected either. Say for instance that you want to plug the HP-41 Advantage (41AD). If you choose page B that's also a port-straddling configuration and you're already pushing your luck a little, so rather don't! This has nothing to do with being hardware-based or software-based emulation. In the DM41X case, it all depends on the MOD files settings. It's therefore also possible to run into this issue if the MOD file for a single-page ROM allows plugging it into the higher page within the port - and thus opening the possibility that the lower page of said port is used by another bank-switched module. This is BTW the preferred MOD setting, or otherwise you'll have blank holes in the I/O bus, as it occurs in the real machine when you plug two 4k-Modules in contiguous ports. Finally, for the real HP-41 the bank-switching method is not implemented in the OS but in the module itself; so it is performed by the Advantage/HEPAX/ZEPROM chips when they "see" the proper instructions. This is mimicked by the CL at the ROM level and by the 41X at the MOD level (using the MOD file configuration), so it's obviously not performed by the plugged module since there isn't any. PS.- A final comment about the locations used to plug certain modules: (not related to bank-switching). Remember that the YFNX must be plugged at a higher page number than the OS/X (or CCD-like ) for the extended catalogs to work. This is due to athe way the YFNX processes the I/O interrupt, masking it from the following ROMS in the bus. "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-11-2021, 07:25 AM
(This post was last modified: 04-11-2021 07:26 AM by Ángel Martin.)
Post: #33
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-10-2021 08:39 PM)Sylvain Cote Wrote:(04-10-2021 08:03 PM)rprosperi Wrote: Nice detective work Angel!Indeed! It's probably worth adding a note in the WARP manual. WARP is by far the one with the highest exposure to this, since it triggers the bank-switching of all other modules in the bus (something that was believed impossible previously BTW). "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-11-2021, 12:05 PM
Post: #34
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
This bank switching is still pretty complicated. Based on the documentation:
- HP41CL switches a bank per PORT (2 pages) - MLDL2000 switches a bank per PORT (2 pages) - Clonix/NoVRAM: probably switches per page, but I have not seen any real confirmation in the docs - DM41X: appears to switch per page as per the .MOD settings - real HP41: depends on the implementation in the module In addition in the DM41X it is not possible to have bank switching in RAM pages, but this is very well possible in the 41CL and MLDL2000. Not certain for Clonix/NovRAM Regards, Meindert |
|||
04-11-2021, 12:12 PM
(This post was last modified: 04-12-2021 06:31 AM by Ángel Martin.)
Post: #35
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-11-2021 12:05 PM)MeindertKuipers Wrote: This bank switching is still pretty complicated. Based on the documentation: 1. In the CL the internal pages (#4, #6, #7) do the bank-switching independently, single-page scheme. 2. I believe the Clonix/NoVo also follows the same scheme, single page if internal and port-based if external. 3. The DM41X definitely does whatever the MOD files specifies, which some times is not why you'd like to - like leaving blank pages in-between 4k modules. 4. V41 appears to be more intelligent in the module loading department, but I haven't really dug into it... "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-11-2021, 12:25 PM
Post: #36
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Thank you Ángel for this complete review of HP-41 bank switching.
(04-11-2021 12:05 PM)MeindertKuipers Wrote: - Clonix/NoVRAM: probably switches per page, but I have not seen any real confirmation in the docsBefore 2020, bank switching was at the module level, to be more precise, all the pages of all the ROMs served by the modules switched at the same time. Since 2020, bank switching is now done at page level. (not in the doc but in an email thread that I had with Diego in 2020) (04-11-2021 12:05 PM)MeindertKuipers Wrote: In addition in the DM41X it is not possible to have bank switching in RAM pages, but this is very well possible in the 41CL and MLDL2000. Not certain for Clonix/NovRAMBank switching is only supported for Flash pages not for RAM pages. |
|||
04-11-2021, 12:35 PM
Post: #37
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
@Angel - Thanks for the thorough and detailed explanation! These issues are obviously very subtle and the differing behavior from one platform to another makes it even more complex, all the more reason your explaining this here is important and will be helpful as a resource in the future.
Thanks! --Bob Prosperi |
|||
04-11-2021, 02:12 PM
(This post was last modified: 04-12-2021 02:31 AM by Sylvain Cote.)
Post: #38
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
Incomplete list of HP & EPROM/Flash box/modules bank switched product introduction year ...
ZEPROM module from Zengrange: (discontinued)
MLDL2000 card reader module (firmware v1.51+) from Meindert Kuipers: (discontinued)
Clonix & NoV modules from Diego Díaz:
41CL boards from Monte Dalrymple:
DM41X from SwissMicros:
edit 1: typos edit 2: added products web link edit 3: added missing items from Ángel edit 4: added 41CL correction from Monte |
|||
04-11-2021, 02:54 PM
(This post was last modified: 04-11-2021 02:56 PM by Ángel Martin.)
Post: #39
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-11-2021 02:12 PM)Sylvain Cote Wrote: Incomplete list of HP & EPROM/Flash box/modules bank switched product introduction year ... [*] HP also introduced the IR Printer Module circa 1987, with two banks always in page-6. [*] VM Electronics Introduced the HEPAX Module in 1987 with FOUR banks in one self-relocating page. "To live or die by your own sword one must first learn to wield it aptly." |
|||
04-11-2021, 05:45 PM
Post: #40
|
|||
|
|||
RE: [41CL WARP] XEQ+ oddness
(04-11-2021 02:12 PM)Sylvain Cote Wrote: Incomplete list of HP & EPROM/Flash box/modules bank switched product introduction year ... Very impressive this list, thanks Sylvain! Maybe store this in the articles section? Regards, Meindert |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 3 Guest(s)