VMS Help
MACRO, VAX MACRO Assembler, Instructions, REMQHI

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

    Purpose:        Remove entry from queue at head, interlocked
    Format:         opcode header.aq,addr.wl
    Operation:      if {removal succeded} then
                    begin
                      N <- 0;
                      Z <- (header) EQL (entry+4);! Queue empty after interval
                      V <- {queue empty before this instruction};
                      C <- 0;
                    end;
                    else
                    begin
                      N <- 0;
                      Z <- 0;
                      V <- 1;                 ! Did not remove anything
                      C <- 1;                 ! Secondary interlock failed
                    end;
    Exceptions:     Reserved operand
    Opcode:         5E   REMQHI  Remove entry from queue at head, interlocked
    Description:    If the secondary interlock is clear, the queue entry
                    following the header is removed from the queue and the
                    address operand is replaced by the address of the entry
                    removed. If the queue was empty prior to this instruction,
                    or if the secondary interlock failed, the V-bit is set;
                    otherwise it is cleared. If the interlock succeded and the
                    queue is empty at the end of this instruction, the Z-bit
                    is set; otherwise it is cleared.

                    The removal is a noninterruptable operation. The entire
                    operation is validated before any portion of it is
                    attempted. The queue will be left in a consistent state
                    if a memory management violation occurs.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.