*DECK CONENDR 
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRNAM 
USETEXT COMRQUE 
PROC CONENDR; 
  
# TITLE CONENDR - PROCESS CON/END/R SUPERVISORY REQUEST. #
  
      BEGIN  # CONENDR #
  
# 
**    CONENDR - PROCESS CON/END/R SUPERVISORY MESSAGE.
* 
*     CONENDR PROCESSES THE CON/END/R SUPERVISORY MESSAGE REQUEST.
*     A CON/END/R IS SENT BACK TO THE APPLICATION AND THE CONNECTION
*     IS RELEASED.
* 
*     PROC CONENDR. 
* 
*     ENTRY  -   QU$ADDRESS IS BASED ARRAY CONTAINING CON/END/R.
*                APL$HEADER IS APPLICATION TABLE BASED ARRAY. 
*                CONNECTION IS BASED ARRAY FOR CONNECTION ENTRY.
* 
*     EXIT  -    CON/END/N SUPERVISORY MSG QUEUED FOR APPLICATION.
*                CONNECTION ENTRY RELEASED. 
*                NSUP UPDATED.
* 
*     PROCESS -  SAVE JOB ID AND UCPA FROM QUEUE ENTRY
*                INITIATE CON/END/N SUPERVISORY MESSAGE REPLY 
*                SET CONNECTION SHUT DOWN BIT.
*                CLEAR FC/INIT/N RECEIVED BIT.
*                WAIT FOR ACN QUIET.
*                RELEASE CONNECTION TABLE ENTRY 
*                GET FREE QUEUE ENTRY 
*                SET UP UCPA, JOBIB AND CHARGE
*                INITIATE NSUP REPLY
*                RETURN 
* 
* 
****  PROC CONENDR - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC FREEACN;                # RELEASE CONNECTION ENTRY # 
        PROC GETFREE;                # OBTAIN FREE QUEUE ENTRY #
        PROC RTNNSUP;                # INITIATE NSUP UPDATE # 
        PROC SUPRPLY;                # INITIATE SUPERVISORY MSG REPLY # 
        PROC WAITACN;                # WAIT FOR ACN QUIET # 
        END 
  
# 
*     PROC CONENDR - XREF LIST END. 
# 
  
  
      ITEM QUJOBID  I;               # TEMP CELL FOR REQUESTORS JOB ID #
      ITEM QUUCPA   I;               # TEMP CELL FOR REQUESTORS UCPA AD#
  
CONTROL EJECT;
  
      QUUCPA = QU$UCPA; 
      QUJOBID = QU$JOBID; 
  
# 
*     SEND CON/END/N REPLY. 
# 
  
      QU$PFCSFC = $CONENDN; 
      $SUPTLC   = 1;                 # LENGTH OF CON/END/N #
      QU$BLKHDR = $SUPHDR;
  
      SUPRPLY;                       # SEND CON/END/N # 
  
      CON$SHUT = TRUE;
      CON$INIT$N = FALSE; 
      WAITACN;                       # WAIT FOR ACN QUIET # 
  
      FREEACN(QT$DISCON);            # RELEASE CONNECTION # 
  
      GETFREE;
      QU$UCPA  = QUUCPA;
      QU$JOBID = QUJOBID; 
      QU$CHARGE = 1;                 # HIGH OVERHEAD FUNCTION # 
      RTNNSUP;
  
      RETURN; 
      END  # CONENDR #
  
      TERM
