NonStop S-Series Server Description Manual (G06.24+)
TNS Instruction Set Definition
HP NonStop S-Series Server Description Manual—520331-003
C-16
Instruction Definitions
0 0 0 0 5 7@ DOFS disk record offset
A=record number;
on completion, A
holds offset into
buffer of record
if A'>='512 or
(A:=xmem[stackb[Lx+4:Lx+6]-A*2])
'>='stackb[Lx+8]
then {TNSP:=stackb[Lx+10]; RP:=7};
0 0 0 0 6 4* XMSK exchange mask
'Indivisible On';
MASK:=:A
'Indivisible Off'
0 0 0 0 7 0@ DLEN disc record length
A=record number
if (A:=DOFS(A+1)-DOFS(A)) < 0
then {TNSP:=stackb[Lx+10]; RP:=7}
0 0 0 0 7 3* DISP dispatch
'Indivisible On';
set dispatcher interrupt;
siv[15].parm1_lo.<15>:=1
'Indivisible Off'
0 0 0 0 7 4* HALT halt
halt
0 0 0 0 7 5* MRL merge onto ready list
BA: xaddr of PCB element to merge
'Indivisible On';
new_pri := bxmem[BA+9];
prev := xaddr of sysstack[%132:%133];
do { next := prev;
prev := xmem2[prev+4];
} until bxmem[prev+9] >= new_pri;
if xmem2[prev] <> next then IFAIL;
xmem2[prev] := BA;
xmem2[next+4] := BA;
xmem2[BA] := next;
xmem2[BA+4] := prev;
cur_pri := if CPCB = 0xFFFC0000 then 0
else bxmem[CPCB+9];
if cur_pri < new_pri then DISPATCH;
'Indivisible Off'
RP:=RP-2
Table C-2. Instruction Definitions (page 6 of 38)