*DECK HCACRQA 
USETEXT NIPDEF
USETEXT ACB 
USETEXT ACNB
USETEXT AHEADER 
USETEXT AT
USETEXT PT
USETEXT PARAMS
USETEXT SUPMSG
PRGM HCACRQA ;     # SEND CON/ACRQ/A TO APPLICATION                    #
STARTIMS; 
 #
*1DC  HCACRQA 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        HCACRQA             A. BEN-ARTZI        82/05/06 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        SEND CON/ACRQ/A TO APPLICATION 
* 
*     3. METHOD USED
*        ALLOCATE A BUFFER FOR MESSAGE
*        FORMAT APPLICATION BLOCK HEADER
*        FORMAT THE MESSAGE USING VALUES STORED IN THE ACNB 
*        QUEUE MESSAGE TO APPLICATION-S ACB 
* 
*     4. ENTRY PARAMETERS 
*        PARAMS1 - REASON CODE FOR CON/ACRQ/A 
*        PARAMS2 - ADDRESS OF ACNB
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF     ACNB     AHEADER     AT     PT
*        PARAMS     SUPMSG     OSSIZE 
*       ACB 
* 
*     7. ROUTINES AND OVERLAYS CALLED 
*        MGETS - ALLOCATE A BUFFER
*        BLINK - QUEUE MESSAGE ON APPLICATION-S ACB 
*        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;
# 
      EXTERNAL VARIABLES
# 
 XREF 
   BEGIN
   PROC BLINK ;           # LINK MESSAGE ON APPLICATION"S ACB          #
   PROC MGETS ;           # ALLOCATE A BUFFER                          #
   PROC OSCHAPP;          # SCHEDULE APPLICATION                       #
   PROC XTRACE;           # DEBUG TRACE CALL                           #
   LABEL RJMAIN;
   END
# 
      INTERNAL VARIABLES
# 
      DEF X25RC  # 214 #; # REASON CODE X"D6" FOR X25 TROUBLE          #
      ITEM  BUFADDR  ;    # HOLD SM BUFFER ADDRESS                     #
#**********************************************************************#
      BEGIN 
      CONTROL IFEQ DEBUG,1 ;
        XTRACE("ACRQA")    ;
      CONTROL FI           ;
# 
      ALLOCATE BUFFER 
# 
      MGETS( LCONACA + BLKHSIZE + ABHSIZE,BUFADDR,TRUE) ; 
# 
      SET APPLICATION BLOCK HEADER
# 
      P<AHEADER>  =  BUFADDR + BLKHSIZE ; 
      ABHABT[0]  = APPCMD ; 
      ABHACT[0]  = CT60TRANS; 
      ABHTLC[0]  = LCONACA  ; 
# 
      SET THE MESSAGE 
# 
      P<SUPMSG>  =  BUFADDR + BLKHSIZE + ABHSIZE ;
      PFCSFC[0] = CONACRA  ;
      IF PARAMS1 EQ RCCB"LLF"    # IF REASON CODE OBTAINED FROM CRCB   #
      THEN
        BEGIN 
        CONRAC[0] = RCIA"NLL";   # MAP TO REASON CODE H"23"            #
        END 
      ELSE
        BEGIN 
        IF PARAMS1 EQ RCCB"I"    # IF REASON CODE IS 9 FROM TCNTA      #
        THEN                     # WHICH IS THEN COPYIED TO CRCB       #
          BEGIN 
          CONRAC[0] = X25RC;     # MAP TO 214 AS X.25 PROBLEM          #
          END 
        ELSE
          BEGIN 
          CONRAC[0] = PARAMS1  ;   #   REASON CODE FOR ABNORMAL        #
          END 
        END 
      P<ACNB>   = PARAMS2  ;     # BASE ACNB                           #
      CONANM[0] = ACNBANM[0]  ;  # NAME OF APPLICATION FROM CON/ACRQ/R #
      CONHID[0] = ACNBHID[0]  ;  # HOST DESTINATION                    #
      CONAABN[0] = ACNBABN[0];  # APPLICATION BLOCK NUMBER             #
# 
      AND QUEUE IT TO THE APPLICATION"S ACB 
# 
      P<ACB> = ATACBA[ACNBIAN];  # ADDRESS OF ACB                      #
      BLINK(BUFADDR,P<ACB>);     # QUEUE SUP MSG TO ACB                #
      OSCHAPP(P<ACB>);           # SWAPIN APPLICATION                  #
      ACBERCNT[0] = ACBERCNT[0] + 1;   # INCRE CNT OF CON/ACRQ/A QUEUED#
      GOTO RJMAIN ; 
      END 
TERM
