*DECK DEQUEUE 
USETEXT COMCBEG 
USETEXT COMRQUE 
PROC DEQUEUE(QUEUEROOT);
# TITLE DEQUEUE - UNLINK FIRST QUEUE ENTRY FROM QUEUE. #
  
      BEGIN  # DEQUEUE #
  
# 
**    DEQUEUE - UNLINK FIRST QUEUE ENTRY FROM QUEUE.
* 
*     UNLINKS FIRST QUEUE ENTRY FROM QUEUE POINTED TO BY THE
*     SUPPLIED QUEUE ROOT.
* 
*     PROC DEQUEUE(QUEUEROOT).
* 
*     ENTRY   - NONE
* 
*     EXIT    - QU$ADDRESS IS BASED ARRAY POINTING TO DEQUEUED
*                 QUEUE ENTRY.  POINTER TO ZERO INDICATES EMPTY.
* 
*     PROCESS - SET QU$ADDRESS TO FIRST QUEUE ENTRY ON THE QUEUE. 
*               DELINK THE FIRST ENTRY. 
*               RETURN. 
* 
*     CAUTION - ASSUMES QUEUEROOT TO BE RIGHT MOST 18 BITS
*               OF 60 BIT WORD. 
* 
# 
  
      BASED ARRAY QUEUEROOT S(1); 
        BEGIN  # QUEUE ROOT # 
  
        ITEM QUE$ADDR   I(00,42,18); # ADDRESS OF NEXT QUEUE ENTRY #
  
        END  # QUEUE ROOT # 
  
  
CONTROL EJECT;
  
      P<QU$ADDRESS> = QUE$ADDR; 
      IF QUE$ADDR NQ 0
      THEN
        BEGIN  # DELINK QUEUE ENTRY # 
        QUE$ADDR = QU$NXTADR; 
        QU$NXTADR = 0;
        END 
  
      RETURN; 
  
      END  # DEQUEUE #
  
      TERM
