If “N” is a node key and 0 ≤ n ≤ 15 then
N(NODE__FETCH{=0}+n;==>;K)
copies the key in slot n of node N to K.
N(NODE__SWAP{=16}+n;K==>;L) copies K to slot n of N and returns in L the old contents of slot n.
“Data” consists of a sequence of 16-byte values, one for each slot to be changed, in order. Each slot will receive a data key with the corresponding value mod 25611. If any value is not less than 25611 {11 bytes} then c=2. Otherwise c=0.
{arcane}Fine print: the situations of (p1,worsejump48) and (p1,worsejump49) are possible.
If K is a node key, fetch key, sense key, segment key or meter key to N’s node, then N(NODE__COMPARE{=38};K==>c;) returns 0 in c, and 1 otherwise.
N(NODE__DATA_BYTE{=40};==>c;) returns the databyte of N in c.
N(kt;==>c;) returns 3 in c.
These values without the underscores are in the macro NODEDEFS
in the library DOMAIN. NODE__FETCH=0, NODE__SWAP=16,
NODE__MAKE_FETCH_KEY=32,
NODE__MAKE_SEGMENT_KEY=33, NODE__MAKE_METER_KEY=34, NODE__MAKE_NODE_KEY=35,
NODE__COMPARE=38, NODE__CLEAR=39, NODE__DATA_BYTE=40, NODE__WRITE_DATA=45.
Design Note:
If slot n of a NODE holds a resume key EX then NODE(64+n;=>0;) forks EX thus: EX(0;). Otherwise the caller’s return key is placed in slot n and the caller remains waiting. See (jmeet) for a similar available function.