*DECK HCRCBU
USETEXT NIPDEF
USETEXT ACNB
USETEXT AHEADER 
USETEXT AT
USETEXT PARAMS
USETEXT PT
USETEXT SUPMSG
PRGM HCRCBU;
STARTIMS; 
 #
*1DC  HCRCBU
* 
*     1. PROC NAME           AUTHOR              DATE 
*        HCRCBU              C. BITTNER          82/02/01 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        SEND CR/CB/U TO NVF
* 
*     3. METHOD USED
*        ALLOCATE BUFFER FOR MESSAGE
*        SET UP APPLICATION BLOCK HEADER
*        SET UP CR/CB/U MESSAGE 
*        QUEUE MESSAGE ON NVF-S ACB 
* 
*     4. ENTRY PARAMETERS 
*        PARAMS1 - REASON CODE FOR CONNECTION TERMINATION 
*        PARAMS2 - ACNB ADDRESS 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF          ACNB          AHEADER
*        PARAMS          PT            SUPMSG 
*        AT 
* 
*     7. ROUTINES CALLED
*        BLINK - QUEUE MESSAGE ON APPL-S ACB
*        MGETS - ALLOCATE EMTPY BUFFER
*        OSCHAPP - SCHEDULE APPLICATION 
*        XTRACE - TRACE PROCEDURE CALL
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        THIS IS A SECONDARY OVERLAY CALLED BY HCSTTP.
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY 
*CALL OSSIZE
* 
 #
STOPIMS;
  
# 
      PARAMS1 - REASON CODE FOR CONNECTION TERMINATION
      PARAMS2 - ACNB ADDRESS
# 
  
# 
      EXTERNAL VARIABLES
# 
 XREF 
   BEGIN
   PROC BLINK;               # QUEUE MSG ON APPL-S ACB                 #
   PROC MGETS;               # ALLOCATE EMPTY BUFFER                   #
   PROC OSCHAPP;             # SCHEDULE APPLICATION                    #
   PROC XTRACE;              # TRACE PROCEDURE CALL                    #
   LABEL RJMAIN;             # RETURN ADDRESS IN OVLCALL               #
   END
  
# 
      INTERNAL VARIABLES
# 
      ITEM BUFADDR;          # SM BUFFER                               #
#**********************************************************************#
  
      BEGIN 
  
      CONTROL IFEQ DEBUG,1; 
        XTRACE("HCRCB");
      CONTROL FI; 
  
#  GET BUFFER TO HOLD CR/CB/U                                          #
  
      MGETS(LCRCB + BLKHSIZE + ABHSIZE,BUFADDR,TRUE); 
  
#  SET UP APPLICATION BLOCK HEADER                                     #
  
      P<AHEADER> = BUFADDR + BLKHSIZE;  # ADDR TO HOLD ABH             #
      ABHABT[0] = APPCMD;    # BLOCK TYPE                              #
      ABHACT[0] = CT60TRANS; # CHARACTER TYPE                          #
      ABHTLC[0] = LCRCB;     # TEXT LENGTH                             #
  
#  SET UP CR/CB/U MESSAGE                                              #
  
      P<SUPMSG> = BUFADDR + BLKHSIZE + ABHSIZE;  # FWA OF TEXT         #
      P<SMNVF> = P<SUPMSG>;  # BASE CR/CB                              #
      PFCSFC[0] = CRCB;      # SET FUNCTION CODE                       #
      CRRCB[0] = RCBRK ;
      P<ACNB> = PARAMS2;
      IF ACNBAN[0] EQ NVFAN 
      THEN                   # T-A CONNECTION TO NVF                   #
        BEGIN 
        CRNACN[0] = ACNBACN[0];  # NVF CONNECTION NUMBER               #
        CRCAACN[0] = 0;   # CN ASSIGNED TO APP THAT HAD THE CONN       #
        END 
      ELSE                   # NOT CONNECTED TO NVF                    #
        BEGIN 
        CRNACN[0] = 0;       # NVF CONNECTION NUMBER                   #
        CRCAACN[0] = ACNBACN[0];  # CN ASSIGNED TO APP THAT HAD THE CON#
        END 
      CRDT[0] = ACNBDT[0]; # DEVICE TYPE                               #
      CRCBTC[0] = ACNBTC[0];
      CRVCB[0] = ACNBVCBO[0];  # VCB ORDINAL                           #
      CRAN[0] = ACNBAN[0];  # APP NO. OF APP WHICH HELD THE CONN       #
      IF ACNBLIM[0] 
      THEN                   # CONNECTION IN LIMBO                     #
        CRLIMBO[0] = TRUE;
  
#  QUEUE CR/CB/U ON NVF-S ACB                                          #
  
  
      BLINK(BUFADDR,ATACBA[NVFAN]);      # QUEUE MSG ON APP-S ACB      #
      OSCHAPP(ATACBA[NVFAN]);      # SCHEDULE APPLICATION              #
      GOTO RJMAIN;           # RETURN TO CALLING PROGRAM               #
      END 
TERM
