HP Forums

Full Version: Revisiting: Poking a value into address 4100 (NoV-32/HP-41)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Ok, revisiting a topic partly covered a few months back.

Given that I have a POKE function in the "fixed" part of a NoV-32, how do I make it write to the address 4100 to make it switch the HEPAX ram blocks?

Looking at CPU reg C:

You will use the nibs 6543210 of C, nibs [6:3] are always used as

address field, and nibs [2:0] are (almost) always used as data field.

For more details, please take a look into the SDK41 manual.

Here's a code snippet which may be of help.

R= 6

LD@R 4

LD@R 1

LD@R 0

LD@R 0 (note that the active pointer will be decremented automatically after the LD)

LDI S&X hhh (where hhh is the HEX val you want to write)


That's it;-)



Hi Geir,

Although some people might think the opposite way, I'm *not* the most authoritative person to respond this question... mostly because I have no idea of the supposed behavior of that POKE function.

Assuming it does what every other POKE I've ever seen does. It will fill the given address with the given contents... right?

Ok, then simply place an H'000 into H'4100 to turn RAM block 0 (zero) on, or H'001 to turn on block 1 (one).

Anyhow, I'll have to check de NoV-32 code to confirm if this will work into a running program, or you'll need to go to "stand by" (set PWO line Low) to physically achieve the block swapping. Should this was the case, chances are that NoV-32 internal code would have to be modified to get RAM block swapped "on the fly". Yes, if we reach that point I may well be the most auhoritative person for the job... (well... er... hope so ;-))

Best wishes.