Hi All:
I've been reading the HEPAX2DD manual and it talks about user memory and system memory. In a previous posting user memory was described to be like a peripheral and does not fit in the 41C system addressing space. The following quotes are from the HEPAX2DD Volume 2 PDF.
--
HP-41C memory modules and Extended Memory modules are addressed to the user memory area, so they will not take up any space in the system area either. These modules are also known as system addressed devices. (just like the TIME module, HP-IL module, etc.)
--
Also:
--
There are 1024 register addresses, but some of these are used for
housekeeping, stack, ALPHA register, etc. The user is left with 919
registers of main and extended memory. Since there are only 1024
addresses, there is no way of expanding user memory further.
--
Okay, that makes sense. But here is where I start getting confused.
--
User memory registers are physically grouped in blocks of 16 registers. One user memory register is active at any time, and the block that contains this register is the active block. You select the active user memory register with the RAM SLCT instruction.
--
and
--
When you select a peripheral unit (e.g. the display), you must deselect the user memory. This is done by selecting a non-existent RAM chip using the RAM SLCT instruction with 0l0h in C[2:0]. If you forget this, your HP-41 will almost surely crash.
--
This sort of makes sense to me as the status registers are a block of 16 registers at the beginning of user memory. My question is how does the 41C address user memory? Is it switched into system space and then deselected when done? Does user memory have a separate, secondary addressing space from system memory? I'm accustom to flat memory spaces like a 6502 so switching in and out of user memory doesn't make sense to me.
Help, I am so confused!
Gerry