*DECK CONCBR
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRNAM 
USETEXT COMRQUE 
PROC CONCBR;
# TITLE CPNCBR - ISSUE CON/CB/R SUPERVISORY MESSAGE. #
  
      BEGIN  # CONCBR # 
  
# 
**    CONCBR - ISSUE CON/CB/R SUPERVISORY MESSAGE.
* 
*     SEND CON/CB/R SUPERVISORY MESSAGE TO NOTIFY APPLICATION OF A
*     BROKEN CONNECTION.
* 
*     PROC CONCBR.
* 
*     ENTRY   -  APL$HEADER IS BASED ARRAY CONTAINING APPLICATION HDR.
*                CONNECTION IS BASED ARRAY CONTAINING CONNECTION ENTRY. 
* 
*     EXIT    -  CON/CB/R QUEUED FOR APPLICATION. 
* 
*     PROCESS -  ADD ACN TO PRE-FORMATTED CON/CB/R MESSAGE. 
*                ADD MESSAGE LENGTH TO PRE-FORMATTED SUP HEADER.
*                OBTAIN FREE QUEUE ENTRY. 
*                MOVE SUPERVISORY MESSAGE TO QUEUE ENTRY. 
*                INITIATE TRANSMITTAL OF SUPERVISORY MSG TO APPL. 
*                RETURN.
* 
* 
****  PROC CONCBR - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        PROC GETFREE;                # OBTAIN FREE QUEUE ENTRY #
        PROC SUPRPLY;                # TRANSMIT SUP MSG TO APPL QUEUE # 
        END 
  
# 
****  PROC CONCBR - XREF LIST END.
# 
  
  
  
      ARRAY [0:0] S(3); 
        BEGIN  # PRE-FORMATTED CON/CB/R MSG # 
        ITEM $SUPWD1    U(00,00,60) = [0];
        ITEM $SUPPFCSFC U(00,00,16) = [$CONCB]; 
        ITEM $SUPRC     U(00,16,08) = [2];
        ITEM $SUPACN    U(00,24,12);
        END 
  
CONTROL EJECT;
  
      $SUPACN = (P<CONNECTION> - P<APL$HEADER> - APL$LENGTH)
                  / CON$LENGTH + APL$MINACN;
      $SUPTLC = 1;                   # LENGTH OF SUPERVISORY MSG #
      GETFREE;
      QU$BLKHDR = $SUPHDR;
      QU$SUPWD1 = $SUPWD1;
      SUPRPLY;
      RETURN; 
      END  # CONCBR # 
  
      TERM
