*DECK CMPSTAT 
USETEXT COMCBEG 
USETEXT COMRNDR 
USETEXT COMRQUE 
USETEXT COMRSTA 
PROC CMPSTAT; 
# TITLE CMPSTAT - COMPLETION STATUS.  # 
  
      BEGIN  # CMPSTAT #
  
# 
**    CMPSTAT - COMPLETION STATUS.
* 
*     GENERATE COMPLETION STATUS. 
* 
*     PROC CMPSTAT. 
* 
*     ENTRY   - NDR$COMMUN IS BASED ARRAY CONTAINING NDR STATUS.
*               NAD$ENTRY IS BASED ARRAY CONTAINING LOCAL NAD ENTRY.
*               QU$ADDRESS IS BASED ARRAY CONTAINING LOCATION 
*                 FOR COMPLETION STATUS.
* 
*     EXIT    - CST$ADDR IS BASED ARRAY CONTAINING COMPLETION STATUS. 
* 
*     PROCESS - INITIALIZE COMPLETION STATUS ADDRESS. 
*               INITIALIZE NDR COMMUNICATION AREA ADDRESS, QUEUE ENTRY
*                 ADDRESS, AND RETURN CODE. 
*               IF INITIALIZE NAD FUNCTION
*                 AND ENABLE CODE CONVERSION SUB-FUNCTION 
*               THEN
*                 SAVE CONVERT MODE PATHS AND BUFFERS.
*               SET COMPLETE BIT. 
*               RETURN. 
* 
* 
****  PROC CMPSTAT - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC QUEOFF;                 # QUEUE NAD OFF REQUEST #
        PROC FREE;                   # RELEASE QUEUE ENTRY #
        END 
  
# 
****  PROC CMPSTAT - XREF LIST END. 
# 
  
  
  
CONTROL EJECT;
  
      P<CST$ADDR> = QU$CMPST; 
      CST$NDRCOM = P<NDR$COMMUN>; 
      CST$RTNCOD = NDR$RTNCOD;
      IF NDR$FUNCOM EQ NF$INITNAD 
        AND NDR$CMCSF EQ ENACONMODE 
      THEN
        BEGIN 
        CST$CMPATH = NDR$CMPTHA;
        CST$CMBUFF = NDR$CMBFFA;
        END 
  
      CST$COMP = TRUE;
      FREE; 
  
      IF NDR$RTNCOD EQ RTN$OFF
      THEN
        BEGIN  # NAD OFF RETURN CODE #
        QUEOFF; 
        END 
  
      RETURN; 
      END # CMPSTAT # 
  
      TERM
