Post Reply 
Examples of Memory MAP with 2x Clonix-D?
09-22-2022, 03:25 PM (This post was last modified: 09-23-2022 02:31 PM by floppy.)
Post: #1
Examples of Memory MAP with 2x Clonix-D?
Hello,
so far using Nov64D, it is of interest to use 2x ClonixD (version setup of Nov64d) for making an HP41 quite full.

Example of a HP41CV w/ only 2x ClonixD in it (no hpil or printer connected).
- all pages 3,5,6,7..F can be used?. Example, page 3 could be filled with the hp16c ROM? or the pages 3 5 6 and 7 have some limitations?
- other identified limitations in the mail below and in the attachment.
..
your comments or remarks are welcome. I am gathering the rules and facts for a quick Nov64d / clonixd mapping and configuration check (before I start to programm the Nov64d, then test, then adapt.. = avoidance of iterations)
..
- (xfunction module will make busy the lower page of the port)
- (warpcore cannot be placed in page 6)
- (lib4 only in page 4, bank1)
- (zenrom module will use the upper page of the port where it is in)
- (page 4 becoming busy when the hp-il connector printer is switched off)
- (other pages "eaten" as soon an hpil or printer or time or xfunction .. is connected to the HP41, therefore the occupied pages are nomore available for ROMs in a clonixd)
- (= attachment: a summary of a simulator by having some model types and modules. Not complete version. Still in work).

UPDATE Sept23 2022:
- this thread looks like it gives the answer https://www.hpmuseum.org/forum/thread-18453.html
- I have to update the bugged excel file

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
09-24-2022, 03:45 AM (This post was last modified: 09-24-2022 11:23 AM by Sylvain Cote.)
Post: #2
RE: Examples of Memory MAP with 2x Clonix-D?
41C/CV OS
  • pgdescription
  • 00 → 41C OS, does not support bank switching
  • 01 → 41C OS, does not support bank switching
  • 02 → 41C OS, does not support bank switching
  • 03 → not used
  • 04 → special, can be bank switched if hardware allows it
  • 05 → can be bank switched if hardware allows it
  • 06 → can be bank switched if hardware allows it
  • 07 → can be bank switched if hardware allows it
  • 08 → port 1 lower page, can be bank switched if hardware allows it, page 8 is normally linked to page 9 when bank switched
  • 09 → port 1 upper page, can be bank switched if hardware allows it, page 9 is normally linked to page 8 when bank switched
  • 10 → port 2 lower page, can be bank switched if hardware allows it, page 10 is normally linked to page 11 when bank switched
  • 11 → port 2 upper page, can be bank switched if hardware allows it, page 11 is normally linked to page 10 when bank switched
  • 12 → port 3 lower page, can be bank switched if hardware allows it, page 12 is normally linked to page 13 when bank switched
  • 13 → port 3 upper page, can be bank switched if hardware allows it, page 13 is normally linked to page 12 when bank switched
  • 14 → port 4 lower page, can be bank switched if hardware allows it, page 14 is normally linked to page 15 when bank switched
  • 15 → port 4 upper page, can be bank switched if hardware allows it, page 15 is normally linked to page 14 when bank switched

41C/CV CAT 2 Scan Order → 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

41CX OS
  • pgdescription
  • 00 → 41CX OS, does not support bank switching
  • 01 → 41CX OS, does not support bank switching
  • 02 → 41CX OS, does not support bank switching
  • 03 → 41CX X-Functions
  • 04 → special, can be bank switched if hardware allows it
  • 05 → 41CX Time (bank 1), 41CX Extra Functions (bank 2)
  • 06 → can be bank switched if hardware allows it
  • 07 → can be bank switched if hardware allows it
  • 08 → port 1 lower page, can be bank switched if hardware allows it, page 8 is normally linked to page 9 when bank switched
  • 09 → port 1 upper page, can be bank switched if hardware allows it, page 9 is normally linked to page 8 when bank switched
  • 10 → port 2 lower page, can be bank switched if hardware allows it, page 10 is normally linked to page 11 when bank switched
  • 11 → port 2 upper page, can be bank switched if hardware allows it, page 11 is normally linked to page 10 when bank switched
  • 12 → port 3 lower page, can be bank switched if hardware allows it, page 12 is normally linked to page 13 when bank switched
  • 13 → port 3 upper page, can be bank switched if hardware allows it, page 13 is normally linked to page 12 when bank switched
  • 14 → port 4 lower page, can be bank switched if hardware allows it, page 14 is normally linked to page 15 when bank switched
  • 15 → port 4 upper page, can be bank switched if hardware allows it, page 15 is normally linked to page 14 when bank switched

41CX CAT 2 Scan Order → 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3

Note: page 4 does not support standard ROM format, only specially crafted for page 4 ROM can be mapped to that page.
Examples: HP Diagnostic ROMs, Ángel Library4 ROM, etc.

Edit 1: fixed page modules:
  • Page 4 → Diagnostic ROM / Library4 ROM / disabled Printer ROM (IL) / etc
  • Page 5 → Time module (bank switching cannot be used for that page when the module is plugged-in) [C/CV]
  • Page 6 → Printer ROM (bank switching cannot be used for that page when the module is plugged-in)
  • Page 7 → HP-IL ROM (bank switching cannot be used for that page when the module is plugged-in)
Edit 2: Advantage module

This module is a 12K ROM that uses bank switching on the upper port.
To replicate this behavior with a ZEPROM/Clonix-D/etc, you need 16K of space and you must use a port linked-pages
Code:
           bank:  ___________ BANK 1 ___________  ___________ BANK 2 ___________
upper port page:  Advantage upper-page bank1 ROM  Advantage upper-page bank2 ROM
lower port page:  Advantage lower-page       ROM  Advantage lower-page       ROM
Find all posts by this user
Quote this message in a reply
09-26-2022, 11:18 PM
Post: #3
RE: Examples of Memory MAP with 2x Clonix-D?
Hi all,

Sylvain, as usual your detailed descriptions are outstanding. ;-)

A note on the Adv. Pac replication, though. While it's true that ZENROM or CMT require 16K to emulate this bankswitched module; in the Clonix/NoV's modules only 12K are used.

This is achieved by internally redirecting any access to the lower page into Bank 1, regardless of the active bank in the port. So you don't need to waste valuable memory with duplicated content.

All the best!

Diego.

"Do not suppose, check it twice."
Find all posts by this user
Quote this message in a reply
09-27-2022, 07:38 AM
Post: #4
RE: Examples of Memory MAP with 2x Clonix-D?
05 → can be bank switched if hardware allows it, page 5 is normally linked to page 6 when bank switched ?
06 → can be bank switched if hardware allows it, page 6 is normally linked to page 7 when bank switched ?
07 → can be bank switched if hardware allows it, page 7 is normally linked to page 8 when bank switched ?
08 → port 1 lower page, can be bank switched if hardware allows it, page 8 is normally linked to page 9 when bank switched
09 → port 1 upper page, can be bank switched if hardware allows it, page 9 is normally linked to page 8 when bank switched..

New questions in bold

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
09-27-2022, 01:00 PM (This post was last modified: 09-27-2022 01:02 PM by Sylvain Cote.)
Post: #5
RE: Examples of Memory MAP with 2x Clonix-D?
Only port pages (8 to 15) are linked, the other are switched individually, but remember, the behavior is hardware specific.

For Diego's modules, my understanding is ...
  • firmware before 2020, all pages in a Clonix/Nov module were switched at the same time.
  • firmware from 2020, bank switching follows the behavior specified in my post #2.

Sylvain
Find all posts by this user
Quote this message in a reply
09-28-2022, 03:24 PM
Post: #6
RE: Examples of Memory MAP with 2x Clonix-D?
What does mean " is normally" ?

My thoughts.. When a ROM is created (for bank switching), then it uses most likely (sorry, I dont know how to read ROMs so far) a relative jump?. So, if a ROM is placed at page 5 (Bank1), it will spread around the memory from the start address of that page?
I am not sure if all ROMs are using relative jumps and accepting page MOD 2 not zero. According Ange, Sandmath start its paging only at 8 or 10 or 12 or 14. Why is this? I would like to know the background of this and the details of "is normally"


What does mean "if hardware allows it" ?

Nov64d/Clonixd (the subject in that topic) allow this (so far I am aware).

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
09-28-2022, 05:50 PM (This post was last modified: 09-29-2022 01:06 AM by Sylvain Cote.)
Post: #7
RE: Examples of Memory MAP with 2x Clonix-D?
(09-28-2022 03:24 PM)floppy Wrote:  What does mean " is normally" ?
Sorry, a bad translation of my part, usually could be a better word.

(09-28-2022 03:24 PM)floppy Wrote:  What does mean "if hardware allows it" ?

When the HP-41 was created, bank switching did not exist at all, so nothing in the 41 hardware nor in the 41OS support this feature.

Several years later, when HP introduced the 41CX they added bank switching, they did it for two banks and only for themselves.
→ time module (page 5 bank 1) and 41CX functions (page 5 bank 2).

They did not added the bank switching by modifying how the pages works nor by modifying the base 41OS, they did it by doing two things.
  1. renaming unused CPU NOP instructions (0x100, 0x180) to ENBANK1/ENROM1 (0x100) and ENBANK2/ENROM2 (0x180)
  2. and by delegating the bank switching logic/handling to the plugged-in peripheral or module hardware.

Later on, other companies introduced their own modules and their own way of doing bank switching who were sometime different than the other companies.
They also introduced two more banks by replicating what HP did for the first two banks by using these two other NOP instructions: ENBANK3/ENROM3 (0x140) and ENBANK4/ENROM4 (0x1C0).
In the middle of this, HP introduced the Advantage module who had another bank switching behavior.

In the 41, when a bank switching is requested, several things happen: (simplified version)
  1. the ENBANKx/ENROMx instruction is placed on the main bus
  2. all the peripheral attached to the main bus received the CPU instruction (which include the main board and all the plugged-in modules/peripherals)
  3. they all look at it and check if the received instruction is for himself.
  4. if it is, then the targeted hardware decide what to do with it, not the 41 CPU, the targeted hardware only.
    To be crystal clear, the ENBANKx/ENROMx instructions are still seen as NOP (no operation) by the 41 CPU.

In summary, because it was not planned beforehand, bank switching on the 41 is a mess.
Over time, a consensus on how it should work emerged and the creators of new devices (MLDL2K, Clonix/NoV, etc) implemented their bank switching by following the agreed upon ways of doing it.
Even after all that, when someone pushes the bank switching envelope sometime we find incompatibility, which is why Diego had to modify in 2020 his bank switching internal logic to support Ángel new ROMs.

Regarding fixed/odd/even pages with bank switching.

Each ROM developer decides on which page their ROM is assigned and which bank switching behavior it supports. Once he has decided his strategy, the simple way is to read and follow their instructions. If no instruction is given, then it is a trial and error process.

Sylvain

edit: typos
Find all posts by this user
Quote this message in a reply
09-29-2022, 08:23 AM (This post was last modified: 09-29-2022 10:34 AM by MeindertKuipers.)
Post: #8
RE: Examples of Memory MAP with 2x Clonix-D?
(09-28-2022 03:24 PM)floppy Wrote:  My thoughts.. When a ROM is created (for bank switching), then it uses most likely (sorry, I dont know how to read ROMs so far) a relative jump?. So, if a ROM is placed at page 5 (Bank1), it will spread around the memory from the start address of that page?
I am not sure if all ROMs are using relative jumps and accepting page MOD 2 not zero. According Ange, Sandmath start its paging only at 8 or 10 or 12 or 14. Why is this? I would like to know the background of this and the details of "is normally"

When a ROM is placed in Page 5 (which is not a good example in a 41CX, but possible in a HP41) its address range is from 0x5000 to 0x5FFF. And unless it is for a very specific purpose with a fixed page address (like the printer or a Page 4 ROM) any ROM, bankswitching or not, should be written with relative jumps only, independent from odd or even pages. This makes the ROM transparant to use in any hardware environment (MLDL2000, 41CL, NoVRAM, DM41X).

The 'normal' bankswitching may limit the behavior above when it is a 2-page ROM and depends on switching banks in both pages at the same time. And this does depend on the hardware platform as some of us had to learn the hard way.

Regards, Meindert
Find all posts by this user
Quote this message in a reply
09-29-2022, 03:35 PM
Post: #9
RE: Examples of Memory MAP with 2x Clonix-D?
(09-22-2022 03:25 PM)floppy Wrote:  so far using Nov64D, it is of interest to use 2x ClonixD (version setup of Nov64d) for making an HP41 quite full.
If you give me what ROM images you want to use, I can give you the configuration to use them with a description as to why each ROM is configured that way.
Find all posts by this user
Quote this message in a reply
10-04-2022, 10:18 AM
Post: #10
RE: Examples of Memory MAP with 2x Clonix-D?
(09-29-2022 03:35 PM)Sylvain Cote Wrote:  
(09-22-2022 03:25 PM)floppy Wrote:  so far using Nov64D, it is of interest to use 2x ClonixD (version setup of Nov64d) for making an HP41 quite full.
If you give me what ROM images you want to use, I can give you the configuration to use them with a description as to why each ROM is configured that way.
Hello,
thanks for the proposal.
for my first machine (a CV), I was thinking for a full math setup (no complex rom) with longer programs therefore, an activated hepax would be good.
To be added.
- Hepax4H DoubleMemory Page 4, E and F
- HepaxROM Page 5 (not sure if it works because not contiguous to the page E)
- SandMath4x4 Pages A and B
- Advantage Page 8 and 9
- HP16c Page 3 (or C if it hold not in Page 3)
- Zenrom3B in Page D

From the on-going hw analysis (result below), it should be one page free at the end.
The proposal will make me moving ahead in defining a setup: especially the variants (Std_HEPAX, ADV_Hepax, HEPAX_mem HEPAX_double_mem ) of hepax implementation in Nov64d is still unclear for me since its new for me. I asked to Diego, too.
It mean for now: making a setup analysis script based on missing knowledge (at me), makes me first dependant of the knowledge of this community.
Code:
--------------------------------------------------------------------------------

Owner: arthur, with machine_1, model hp41cv, which is setup nb 3, has following hardware connected: 

[[nov64d,1,1],[clonixd,5,2],[hpil_printer_switch_on,_7646,3]]
 printing channel identified
 hpil channel identified: you can communicate to mass-storage or printer or PCs via pilbox

 list of the identified modules names: [nov64d,clonixd,hpil_printer_switch_on]

 Machine: hp41cv has 3 Port Modules 
 Machine: hp41cv has 1 Nov64d Modules 
 Machine: hp41cv has 1 Clonixd Modules 
 = Machine: hp41cv has 2 Diego modules
 Machine: hp41cv has 0 double x-memory module 
 Machine: hp41cv has 0 x-memory modules 
 Machine: hp41cv has 0 extra time module 
 Machine: hp41cv has 0 xfunction module 
 model and port check ok

 counted port positioning issues: 0

----------------------------------------------------------------------------
Page structure which exists for the choosen model:                          
  scan start:  
  Page 0 busy banks: [system_rom_0]
  Page 1 busy banks: [system_rom_1]
  Page 2 busy banks: [system_rom_2]
  Page 3 free/not initialized
  Page 4 free/not initialized
  Page 5 free/not initialized
  Page 6 busy banks: [hpil_printer_switch_on]
  Page 7 busy banks: [hpil_printer_switch_on]
  Page 8 free/not initialized
  Page 9 free/not initialized
  Page A free/not initialized
  Page B free/not initialized
  Page C free/not initialized
  Page D free/not initialized
  Page E free/not initialized
  Page F free/not initialized
  scan end 
----------------------------------------------------------------------------

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
10-04-2022, 11:58 AM
Post: #11
RE: Examples of Memory MAP with 2x Clonix-D?
My understanding is that the 16c (at least) requires a 41CX as it makes OS calls so you can't use in a 41CV.

(10-04-2022 10:18 AM)floppy Wrote:  
(09-29-2022 03:35 PM)Sylvain Cote Wrote:  If you give me what ROM images you want to use, I can give you the configuration to use them with a description as to why each ROM is configured that way.
Hello,
thanks for the proposal.
for my first machine (a CV), I was thinking for a full math setup (no complex rom) with longer programs therefore, an activated hepax would be good.
To be added.
- Hepax4H DoubleMemory Page 4, E and F
- HepaxROM Page 5 (not sure if it works because not contiguous to the page E)
- SandMath4x4 Pages A and B
- Advantage Page 8 and 9
- HP16c Page 3 (or C if it hold not in Page 3)
- Zenrom3B in Page D

From the on-going hw analysis (result below), it should be one page free at the end.
The proposal will make me moving ahead in defining a setup: especially the variants (Std_HEPAX, ADV_Hepax, HEPAX_mem HEPAX_double_mem ) of hepax implementation in Nov64d is still unclear for me since its new for me. I asked to Diego, too.
It mean for now: making a setup analysis script based on missing knowledge (at me), makes me first dependant of the knowledge of this community.

Calculator Clique on YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
10-04-2022, 01:02 PM (This post was last modified: 10-04-2022 11:25 PM by Sylvain Cote.)
Post: #12
RE: Examples of Memory MAP with 2x Clonix-D?
(10-04-2022 10:18 AM)floppy Wrote:  To be added.
- Hepax4H DoubleMemory Page 4, E and F
- HepaxROM Page 5 (not sure if it works because not contiguous to the page E)
- SandMath4x4 Pages A and B
- Advantage Page 8 and 9
- HP16c Page 3 (or C if it hold not in Page 3)
- Zenrom3B in Page D

1) the 41CV does not scan page 3 on CAT 2, also Clonix/NoV modules do not allow page 3 to be used, so AFAIK that page is lost.
2) page 4 can only be used by made for page 4 ROM.
3) a NoV-64d module is a Clonix-D module with a FRAM chip added, thus a NoV-64d can be programmed as a Clonix-D module
4) most of Ángel's ROMs only works with a 41CX OS (41CX, 41CL, DM41X, i41CX, etc), you must read each ROM manual to validate which 41OS the ROM is compatible with and which minimal Library4 version to use
5) AFAIK, HEPAX-4H only works inside a 41CX, you must use HEPAX-1D for a 41C/41CV (some testing is needed on my side to check this)
6) NoV modules automatically reseve 16K of HEPAX RAM (page 8 to B) which cannot changed, I may have a workaround to get you only 8K, I need to do some tests
7) HEPAX ROM reassigned automatically its own ROM to the first non used page, starting from page 5

I will post the configuration when I have validated it on my side.

Sylvain

edit #1: primary tests result for point (5)
→ HEPAX-4H seems to indicate that it will work with 41OS C/CV version.
→ update:
→ → nop, HEPAX-4H uses library4 and after verification, library4 has been designed for 41CX OS only
→ → ref: Library #4, HP-41 Extension Project Manual, May 2012

edit #2: ROMs dependencies
→ HEPAX-4H (rev. 4H, April 2021) has a hard dependency on Library4 (rev. ?) and a soft dependency on AMC_OS/X (rev. ?) and SandMatrix (rev. ?) .
→ AMC_OS/X (rev. 4M, Oct 2020) has a hard dependency on Library4 (R45+) and 41CX OS
→ at this point I need to create a dependency matrix between Ángel ROMs before going further.
Find all posts by this user
Quote this message in a reply
10-04-2022, 11:30 PM
Post: #13
RE: Examples of Memory MAP with 2x Clonix-D?
Ángel,
Is the library4 version part of the ROM image ?
If yes, how can I get it ? (fnc call, offset, address, etc)
Thanks
Sylvain
Find all posts by this user
Quote this message in a reply
10-05-2022, 02:54 AM
Post: #14
RE: Examples of Memory MAP with 2x Clonix-D?
Follow-up on the CV version ...
(10-04-2022 10:18 AM)floppy Wrote:  To be added.
- Hepax4H DoubleMemory Page 4, E and F
- HepaxROM Page 5 (not sure if it works because not contiguous to the page E)
- SandMath4x4 Pages A and B
- Advantage Page 8 and 9
- HP16c Page 3 (or C if it hold not in Page 3)
- Zenrom3B in Page D
This rabbit hole gave me the opportunity the discover/revisit which of the new ROMs need the 41CX OS, thus not working with the 41C OS.

1) any modules that uses Library4 are not compatible with the C/CV OS, this include: Hepax4H, SandMath4x4, HP16c and several others.
2) CCD ROM or one of its non-library4 variants (CCD-OSX, etc) has keyboard handling issues with the ZenROM, so I will advise to not use both at the same time.
3) Advantage and HEPAX-1D can be used without issues.
4) CCD ROM or CCD-OSX or ZenROM can be used without issues, but only one can be chosen.

Now we are going away from your math/hepax target with your 41CV
(10-04-2022 10:18 AM)floppy Wrote:  for my first machine (a CV), I was thinking for a full math setup (no complex rom) with longer programs therefore, an activated hepax would be good.

Base on the above fact, what do you want to do ?

Sylvain
Find all posts by this user
Quote this message in a reply
10-05-2022, 10:47 AM (This post was last modified: 10-05-2022 10:55 AM by floppy.)
Post: #15
RE: Examples of Memory MAP with 2x Clonix-D?
Thanks.
Based on the disclosed extensive analysis, the current math technical baseline for my HP41CV looks like (my use case):
1x Nov64d:
- advantage (from my program working in a CX, delete the FROOT from Sandmath4x4 and use SOLVE; delete VMOD from Sandmath4x4 and use UV)
- hepax1D (for using regmove and regswap)
- CCD ROM or CCD-OSX or ZenROM (not sure which one is the best for me; I must have a look the next days)
(more to read.. more to understand.. more facts and rules to code down.. And not forgetting the setup-review of a CX as next).

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
10-05-2022, 06:23 PM (This post was last modified: 10-06-2022 11:40 AM by Sylvain Cote.)
Post: #16
RE: Examples of Memory MAP with 2x Clonix-D?
HP-41CX configuration sample using two NoV-64d modules with one NoV-64d configured as a Clonix-D.

All the ROMs used in my tests are coming from rom_files_220923.zip.
Thank you Monte for maintaining and releasing this monthly update.

ROM images used
Code:
Module                    Size  Pages  Banks  Page      XROM  Lib4  OS  Notes
------------------------  ----  -----  -----  --------  ----  ----  --  ---------------
X-Functions                 4     1      1    page 3     25         CX  
Library4                    4     1      1    page 4     35   ????  CX  
Time / CX X-Functions       4     1      2    page 5     26         CX  
IL Printer / 41 Printer     4     1      1    page 6     29         C   
IL Functions                4     1      1    page 7     28         C   
Advanced HEPAX RAM 16K     16     4      1                *
Code:
HP Advantage Pac 1B         4     1      1    lower-pg   22         C   
HP Advantage Pac 1B         8     2      2    upper-pg   24         C   
Sandmath 4x4 R7            16     1      4    lower-pg    3   R     CX  
Sandmath 4x4 R7            16     1      4    upper-pg    2   R     CX  
HP-16C Emulator -1A        16     1      4               16   O     CX  
AMC OS/X+ 5b               16     1      4                5   R45   CX  not used
Advanced HEPAX 1D          16     1      4                7         C   not used
Advanced HEPAX 4H          16     1      4                7   ????  CX
*) Each HEPAX RAM page XROM is dynamically set by the HEPAX ROM

Module #1 - Clonix-D - joint blocks - Flash> used:48K free:0K - inserted in a lower port
Code:
Bank    ->  ____#1____  ____#2____  ____#3____  ____#4____
Page 4  ->  [NoV-64d]
Page 5  ->  CX-Time     CX-Fncs
Page 6  ->  Printer                                         // HEPAX ROM here if HP-IL module is not present
Page 7  ->  HP-IL
Page 8  ->  [NoV-64d]
Page 9  ->  [NoV-64d]
Page A  ->  ADVL1-1B    ADVL1-1B                            // see note 1
Code:
Page B  ->  ADVU1-1B    ADVU2-1B
Page C  ->  SMAT41      SMAT42      SMAT43      SMAT44
Page D  ->  HLMAT41     HLMAT42     HLMAT43     HLMAT44
Page E  ->  [NoV-64d]
Page F  ->  [NoV-64d]
Note 1: not using ClonixConfig Advantage option because it force me to use page 8 and 9 and I want to use page A and B

Module #2 - NoV-64d - joint blocks - Flash> used:36K free:12K - FRAM> mapped:16k - inserted in a higher port
Code:
Bank    ->  ____#1____  ____#2____  ____#3____  ____#4____
Page 4  ->  Library4
Page 5  ->  CX-Time     CX-Fncs
Page 6  ->  Printer
Page 7  ->  HP-IL
Page 8  ->  HEPAX-RAM
Page 9  ->  HEPAX-RAM
Page A  ->  [Clonix-D]                                      // HEPAX-RAM n/a, overwritten by lower port Clonix-D
Code:
Page B  ->  [Clonix-D]                                      // HEPAX-RAM n/a, overwritten by lower port Clonix-D
Page C  ->  [Clonix-D]
Page D  ->  [Clonix-D]
Page E  ->  HP-16C_1    HP-16C_2    HP-16C_3    HP-16C_4    // could use AMC OS/X+ 5b here instead
Page F  ->  HEPX4h-0    HEPX4h-1    HEPX4h-2    HEPX4h-3    // dynamically assigned page

Ports used
Code:
Port #1: NoV-64d as Clonix-D
Port #2: empty
Port #3: HP-IL
Port #4: NoV-64d

CAT 2
Code:
-TIME 2C
-CX TIME
-PRINTER 2E
-MASS ST 1H
-CTL FNS
-ADV CONV B
-ADV MTRX
-ADV MATH
Code:
-ADV TVM
-SNDMTH'4x4
-HL MATH+
-HP-16C+
-16C STCK
-HEPAX'4H
-EXT FCN 2D
-CX EXT FCN

Edit 1: typo
Edit 2: added rom_files_220923.zip link
Find all posts by this user
Quote this message in a reply
10-06-2022, 06:02 PM (This post was last modified: 10-06-2022 06:16 PM by floppy.)
Post: #17
RE: Examples of Memory MAP with 2x Clonix-D?
Thanks.
The fact I read now is (quite natural from a boot systematic point of view?):
a) the HP41 start its system and fill the pages with what it needs (from 0 on: cx system, time in a cx..)
b) then it looks at ports starting from 1 .. 4
c) clonixd fill the pages we put him in (no decision there, it just do what it has to do)
d) the detected modules in the port (hpil etc.) would try to overwrite the pages which are predefined (example hpil in page 6 and 7 if the printer switch is on). If the pages are already busy, perhaps an error would occur (an hpil with printer switch off would try to move the printer libs to page4.. not sure if it would be a true issue if the page 4 is already busy with lib4 from the nov64d if nov64d is in port3 and hpil in port4? probably. However not relevant in our case)
d) nov64d is smart enough to find the room it needs (the dynamic one) and for this it must be in an higher port than all other modules/peripherals in order to adapt and use its smart behaviour.
e) the port location of the hpil and the clonixd in the previous setup could be exchanged, the nov64d would stay where it is (since no collision in the pages)
Comments are welcome.

update: bit rework (no major change in the sense)

HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X
Find all posts by this user
Quote this message in a reply
10-06-2022, 07:20 PM (This post was last modified: 10-07-2022 12:44 PM by Sylvain Cote.)
Post: #18
RE: Examples of Memory MAP with 2x Clonix-D?
Some clarifications ...

In general, ROM page options are: fixed, port-lower-page or port-upper-page
(there are other options, but for our discussion here, these are the one we are using)
so there is no dynamic page filling here, code run from ROM which has fixed addresses.

All the hardware connected to the system bus receive the same cpu signals at the same time,
which include the motherboard and all connected peripherals/modules.

Generally, a bus lock-up happens (41 freeze) when two ROM share the same address/bank.
Some emulation devices, like Clonix/NoV modules, detect that scenario and disable its own ROM for the faulty page if it can.

Some devices like HePaX are able to change their ROM address(es), but that is a device capability and not an orchestrated feature of the 41OS.

edit: added the last line
Find all posts by this user
Quote this message in a reply
10-08-2022, 02:08 PM
Post: #19
RE: Examples of Memory MAP with 2x Clonix-D?
Hi all,

On a previous mail with the OP I noted that: "The only safe configuration for two of my modules plugged simultaneously is 2x Clonix-D (or NoV-64d configured like Clonix-D)".

The key word here is "safe".

While running NoV-64d (HEPAX emulation) along with Clonix-D is 'possible' and will not cause any address or bus conflicts; it will stress the power supply IC beyond its
standard functional limits for "continuous"(*) use.

Even though this part is a bipolar IC and can take a bit of 'abuse' quite well, this may cause premature failure in the long term, hence this configuration should be avoided
as a working environment. It may work for years, but I won't risk an unobtainable IC betting against that odds.

In all my functional scenarios there is only one case where it is used and just for a brief period of time (meaning a few seconds) when loading/saving a ROM image to/from
a PC file thru the USB-41 interface module. The USB-41 is basically a Clonix-D with a dedicated area (both hardware and software) to interface with the RS232/USB adapter.

(*) The Power supply IC, is a bipolar step-up DC-DC converter. It is nominally rated for 20mA continuous current (1826-0566). It was (and still is) a common practise to rate parts' safe operation about 130% below their "Absolute maximum ratings". Also the IC description states that the limiting resistor (R2) can be modified to allow higher current drains.

In the later models this IC is replaced with 1826-0953 and R2 is suppressed allowing a free run to max current when needed.

In a bipolar device the usual "killer" is the current-time>temperature increase (given no overvoltage is applied; which won't be the case here).

So, short periods of time running up to 10 times the continuous rating are still in the "safe" area.

In the HP-41 the power supply IC is 'resting' most of the time, since it is not used while the calc is in light or deep sleep mode.

I ran several bench tests while checking the NoV's modules design on both -0566 and -0953 IC's, draining up to 100mA for 24hr confirming that the parts suffered no damage and my 41CX (which I used for the -0953 test) is still healthy after more than 15years of abuse.

Using two Clonix-D simultaneously is well below the functional continuous limit of the power supply IC's.

NoV-64d, can rise to 50mA max. which is still ok for continuous use and have proven safe since no HP-41 damage has been reported after 19 years of use of hundred of modules in the field.

I would like to keep this safety record unchanged, hence I won't recommend to plug two of my modules when configured as NoV-64d.

Sorry if this post has turned out to be too long and techie.

Hope this clarifies the point.

Best wishes.

Diego.

"Do not suppose, check it twice."
Find all posts by this user
Quote this message in a reply
10-08-2022, 02:44 PM (This post was last modified: 10-09-2022 11:25 AM by Sylvain Cote.)
Post: #20
RE: Examples of Memory MAP with 2x Clonix-D?
Thank you Diego.

If I understood you correctly,
Code:
  safe → 2x Clonix-D
unsafe → 1x NoV-64d + 1x Clonix-D → not sure if this one is safe or unsafe, could you please confirm
unsafe → 2x NoV-64d
note: Clonix-D includes NoV-64d configured as Clonix-D

Sylvain

edit: replaced ok/not ok with safe/unsafe
Find all posts by this user
Quote this message in a reply
Post Reply 




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