VMS Help
MACRO, VAX MACRO Assembler, Instructions, REMQTI

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

    Purpose:        Remove entry from queue at tail, interlocked
    Format:         opcode header.aq,addr.wl
    Operation:      if {removal succeded} then
                    begin
                      N <- 0;
                      Z <- (header+4) EQL 0;   ! Queue empty after removal
                      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:         5F   REMQTI  Remove entry from queue at tail, interlocked
    Description:    If the secondary interlock is clear, the queue entry
                    preceding 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.