*DECK HSFCINA 
USETEXT NIPDEF
USETEXT ACB 
USETEXT ACNB
USETEXT ACNT
USETEXT APPSTAT 
USETEXT AHEADER 
USETEXT DRHDR 
USETEXT PARAMS
USETEXT SUPMSG
PRGM HSFCINA;                # SEND FC/INACT SUP MSG TO APP            #
*IF DEF,IMS 
 #
***** 
*     1.PROCNAME    AUTHOR         DATE 
*       HSFCINA     L.T.NGUYEN     84/08/08 
* 
*     2.FUNCTIONAL DESCRIPTION: 
*       SENDING FC/INACT/SM TO INDICATED APLLICATION. 
* 
*     3.METHOD USED:  
*       GET BUFFER TO HOLD SM.
*       SET UP INFORMATION IN ABH AND SUPMSG. 
*       CALL BLINK TO LINK SM TO APPLCATION'S ACB.
* 
*     4. ENTRY PARAMETERS.
*        PARAMS1             ADDRESS OF ACB 
*        PARAMS2             CONNECTION NUMBER OF INACTIVE CONNECTION 
* 
*     5. EXIT PARAMETERS. 
*        NONE 
*     6. COMDECKS CALLED AND SYMPL TEXT USED
*        ACB                 APPLICATION CONTROL BLOCK TEMPLATE 
*        ACNB                APPLICATION CONNECTION BLOCK TEMPLATE
*        ACNT                APPLICATION CONNECTION TABLE TEMPLATE
*        AHEADER             APPLICATION BLOCK HEADER TEMPLATE
*        DRHDR               BUFFER HEADER TEMPLATE 
*        NIPDEF              CONSTANT DEFINITIONS 
*        SUPMSG              SUPERVISORY MESSAGE TEMPLATES
* 
*     7. ROUTINES AND OVERLAYS CALLED.
*       BLINK.
*       OSCHAPP.
*       MGETS.
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
* 
*        THIS PROGRAM IS A SECONDARY OVERLAY LOAED BY SUBROUTINE
*        OVLCALL.  WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE 
*        TO LOCATION RJMAIN TO RETURN TO THE CALLING PROGRAM. 
* 
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY 
*                        OVERLAY BUFFER SIZE MINUS 5 (473B WORDS).
****
 #
*ENDIF
      XREF
        BEGIN 
        PROC BLINK ;               # PROC TO LINK SM TO ACB            #
        PROC OSCHAPP ;             # APPLICATION SCHEDULER             #
        PROC MGETS ;               # GET BUFFER FOR SM                 #
        PROC XTRACE ;              # FOR DEBUG USAGE                   #
        LABEL RJMAIN;                    # RETURN ADDRESS IN OVLCALL   #
        END 
  
      ITEM ACNCON U ;                    # CONNECTION NUMBER           #
      ITEM SMBUFF U ;                    # ADDRESS OF NEW SM BUFFER    #
  
  
      BEGIN                # HSFCINA     #
  
        P<ACB> = PARAMS1;              # ADDRESS OF PCB                #
      IF (ACBORD1[0])                  # THIS APPLICATION ALREADY SENT #
                                       # SAC/NCL TO SET ERROR CONDITION#
      THEN                             # FOR FC/INACT/SM               #
        BEGIN 
        ACBABTFC[0] = TRUE ;           # READY TO ABORT THIS APPL      #
                                       # AND DONT QUEUE ANY SM         #
        GOTO RJMAIN ; 
        END 
  
  
        MGETS(LFCINCT+BLKHSIZE+ABHSIZE,SMBUFF,TRUE) ;  # GET BUFFER    #
  
        P<DRHDRWD> = SMBUFF ; 
        P<AHEADER> = P<DRHDRWD> + BLKHSIZE ;
        ABHABT[0] = APPCMD ;
        ABHACT[0] = CT60TRANS ; 
        ABHTLC[0] = 1 ; 
        P<SUPMSG> = P<DRHDRWD> + BLKHSIZE + ABHSIZE  ;
        PFCSFC[0] = FCINA ; 
        FCACN[0] = PARAMS2;            # APPLICATION CONNECTION NUMBER #
        P<ACNT> = ACBACNT[0];          # ADDRESS OF CONNECTION TABLE   #
        P<ACNB> = ACNTACNB[PARAMS2 + ACNTHSIZE - ACNTMINACN[0]];
        FCATF[0] = ACNBTIMERF[0];  # SET APP SPECIFIED TIMER FLAG      #
        BLINK(P<DRHDRWD>,P<ACB>) ;
        OSCHAPP(P<ACB>) ; 
  
        GOTO RJMAIN;                   # RETURN TO CALLING PROGRAM     #
  
      END 
      TERM
