The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
HP41 and MCODE XKD instructions in program mode
07-26-2016, 03:49 AM
Post: #1
HP41 and MCODE XKD instructions in program mode
XKD, or Execute Key Direct, is a feature of the HP41. Keys like R/S, SST and uses this to perform their actions immediately without going through the NULL test.

What is interesting is the routine NAME4E in QUAD 3. It inspects MCODE instructions for their execute direct status and this is what happens.

First it checks if we are in run mode, then it goes to normal NULL test, key debounce and execution. If we are in program mode, it reads the first instruction to see if it is a NOP, then it is a non-programmable operation and it is to be executed, not inserted in program. What happens next is interesting, it reads the following instruction and checks if that is also a NOP. If it is, then the instruction is XKD, and it will immediately go and execute it (no NULL test).

So, in program mode, a single NOP gives a non-programmable XROM instruction, two NOPs is a non-programmable, execute direct instruction. Meaning it will execute on key down, but only in program mode. Outside program mode, it will do a NULL test first.

What were they thinking here?

I have no idea, obviously it is possible to have instructions that can be assigned to keys and have behavior similar to SST, execute immediately. I kind of wonder if it should not also have been like this in run mode.

Has this feature ever been used by some MCODE instruction?
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
HP41 and MCODE XKD instructions in program mode - hth - 07-26-2016 03:49 AM



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