|Re: MCODE (NoV-32): Odd behaviour|
Message #5 Posted by Diego Diaz on 16 May 2008, 11:40 a.m.,
in response to message #4 by Raymond Del Tondo
First, (not because of its importance but just in order to make things clear): the *only* meaningful bit into NoV-32's RAM block selection word (@ H'4100) is the *Less Significant Bit*. So ANY odd word will turn Block #1 (one) ON, and ANY even word will turn Block #0 (zero) ON.
The H'0FF stored after power on is just a reminiscent of the debugging process and could be replaced by H'001. I'm serously thinking in replacing it in the next version of NoV's code to avoid further confusion.
The fact is that NoV-32's Block swapping method was conceived with the idea of being achieved by keyboard input thru HEXEDIT (or any other software able of a WRITE s&x (H'040) instruction) residing *into* NoV-32's internal Flash ROM. (Note you cannot write into NoV-32's RAM from an external module!)
In the user's guide (not accurate regarding the overall process though), it was recommended to power cycle the HP-41 after block swapping.
Apart from that, the only effect of swaping RAM Blocks is that one chip is powered OFF while the other is powered ON. I can't see no side effect form this into user memory registers (where key assignments are stored). However, some actions may be taken by MF code depending on the contents of the polling points in the actived block. Are these polling points all "zeroed"?
Please keep me/us informed of any other relevant info that may concern this issue. I'm now working in the NoV-64 code which deals with four chips *swapping*, and also handles the config word @ H'4100 both to manage RAM (4x16k) and ROM (3x16k) blocks; so I'm the most interested in acquiring as much info as possible on this subject.
Best regards from the Canary Islands.