*DECK HSINTRU 
USETEXT NIPDEF
USETEXT AHEADER 
USETEXT AT
USETEXT ACNB
USETEXT PARAMS
USETEXT PT
USETEXT SUPMSG
  
PRGM HSINTRU; 
STARTIMS; 
 #
*1DC  HSINTRU 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        HSINTRU             L.T.NGUYEN          81/12/07 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        SENT INTR/USR TO APPLICATION 
* 
*     3. METHOD USED
*        SET UP APPLICATION BLOCK HEADER
*        SET UP INTR/USR MESSAGE
*        QUEUE MESSAGE ON APPLICATION-S ACB 
* 
*     4. ENTRY PARAMETERS 
*        PARAMS1 - ACNB ADDRESS 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF 
*        AHEADER
*        AT 
*        PARAMS 
*        PT 
*        SUPMSG 
* 
*     7. ROUTINES CALLED
*        BLINK - LINK DATA BLOCK TO DATA RING 
*        MGETS - ALLOCATE EMPTY BUFFER
*        OSCHAPP - SCHEDULE APPLICATION 
*        XTRACE - TRACE PROCEDURE CALL
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        THIS IS A SECONDARY OVERLAY CALLED BY HBSTTP.
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY 
*CALL OSSIZE
* 
 #
STOPIMS;
  
# 
      EXTERNAL VARIABLES
# 
  
 XREF 
   BEGIN
   PROC BLINK;               # LINK DATA BLOCK TO DATA RING            #
   PROC MGETS;               # ALLOCATE EMTPY BUFFER                   #
   PROC OSCHAPP;             # SCHEDULE APPLICATION                    #
   PROC XTRACE;              # TRACE PROCEDURE CALL                    #
   LABEL RJMAIN;             # RETURN ADDRESS IN OVLCALL               #
   END
  
# 
      INTERNAL VARIABLES
# 
  
      ITEM AN ; 
      ITEM ATAN ; 
      ITEM BUFADDR;          # BUFFER ADDRESS TO HOLD INTR/USR         #
  
#**********************************************************************#
  
      BEGIN 
  
      CONTROL IFEQ DEBUG,1; 
        XTRACE("INTRU") ; 
      CONTROL FI; 
  
      P<ACNB> = PARAMS1 ; 
      AN = ACNBAN[0] ;       # APPLICATION NUMBER                      #
  
#  GET BUFFER TO HOLD INTR/USR                                         #
  
      MGETS(LINTR + BLKHSIZE + ABHSIZE, BUFADDR, TRUE); 
  
  
#  SET UP APPLICATION BLOCK HEADER                                     #
  
      P<AHEADER> = BUFADDR + BLKHSIZE;  # BASE APPLICATION HEADER      #
      ABHABT[0] = APPCMD;    # COMMAND BLOCK                           #
      ABHACT[0] = CT60TRANS ;               # CHARACTER TYPE IS 1      #
      ABHTLC[0] = LINTR  ;   # LENGTH OF INTR/USR                      #
  
#  SET UP INTR/USR                                                     #
  
      P<SUPMSG> = BUFADDR + BLKHSIZE + ABHSIZE; 
      PFCSFC[0] = INTRUSR ;  # SET FUNCTION CODE                       #
      INTRACN[0] = ACNBACN[0] ;# ACN OF INITIALIZED CONNECTION         #
      INTRCHR[0] = ACNBINTR[0] ;   # INTERUPT CHARACTER                #
  
  
  
#  QUEUE MESSAGE ON APPLICATION-S ACB                                  #
  
      ATAN = ATACBA[AN] ; 
      BLINK(BUFADDR,ATAN) ;        # QUEUE MSG ON APPLS-S ACB          #
      OSCHAPP(ATAN) ;          # SCHEDULE APPLICATION                  #
      GOTO RJMAIN;           # RETURN TO CALLING PROGRAM               #
      END 
TERM
