*DECK HCRIAPR 
USETEXT NIPDEF
USETEXT 
USETEXT AHEADER 
USETEXT 
USETEXT PARAMS
USETEXT SUPMSG
USETEXT PT
USETEXT AT
USETEXT 
USETEXT ACNB
PRGM HCRIAPR  ;     # SEND CR/IAP/R TO NVF                             #
STARTIMS; 
 #
*1DC  HCRIAPR 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        HCRIAPR             A. BEN-ARTZI        82/05/05 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        SEND CR/IAP/R TO NVF 
* 
*     3. METHOD USED
*        SET UP APPLICATION BLOCK HEADER
*        SET UP CR/IAP/R FIELDS 
*        QUEUE MESSAGE TO NVF-S ACB 
* 
*     4. ENTRY PARAMETERS 
*        PARAMS1 - REASON CODE FOR THE REQUEST
*        PARAMS2 - APPLICATION CONNECTION NUMBER
*        PARAMS3 - APPLICATION NUMBER 
*        PARAMS4 - ADDRESS OF ACNB
*        PARAMS7 - ADDRESS OF THE ABH IN CONACRQ
*                  0 FOR ICNAPA 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF     AHEADER     PARAMS     SUPMSG 
*        PT     AT     ACNB 
* 
*     7. ROUTINES CALLED
*        XTRACE - TRACE PROCEDURE CALL
*        BLINK - LINK DATA BLOCK TO APPLICATION-S DATA RING 
*        OSCHAPP - SCHEDULE APPLICATION 
*        MGETS - GET A NEW BUFFER 
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        THIS PROGRAM 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 XTRACE ;            # DEBUG TRACE CALLS                        #
   PROC BLINK  ;            # LINK DATA TO APPLICATION"S ACB           #
   PROC OSCHAPP;            # SCHEDULE APPLICATION                     #
   PROC MGETS  ;            # GET A NEW BUFFER                         #
   LABEL RJMAIN;
   END
# 
      INTERNAL VARIABLES
# 
      ITEM BUFADDR ;     # BUFFER ADDRESS FOR THE CR/IAP/R             #
      ITEM INDX ;        # LOOP INDEX                                  #
      ITEM EXTRA ;       # WORDS ADDED FROM CONACRQ                    #
      BASED ARRAY WORDF[0:0] S(1);
        BEGIN 
        ITEM WORD U(00,00,60);
        END 
#**********************************************************************#
      BEGIN 
      CONTROL IFEQ DEBUG,1; 
        XTRACE("HCRAP")   ; 
      CONTROL FI          ; 
      EXTRA = 0;          # NO EXTRA WORDS TO BEGIN WITH               #
      IF PARAMS7 NQ 0     # A CALL FROM CONACRQ                        #
      THEN
        BEGIN 
        P<AHEADER> = PARAMS7;  # MOVE AHEADER TO THE HEADER ADDRESS    #
        EXTRA = ABHTLC[0] - RACRSIZE; 
        END 
# 
      GET A BUFFER FOR MESSAGE
# 
      MGETS( LCRIAP + ABHSIZE + BLKHSIZE + EXTRA, BUFADDR , TRUE ) ;
# 
      SET UP APPLICATION HEADER 
# 
      P<AHEADER> = BUFADDR + BLKHSIZE  ;
      ABHABT[0] = APPCMD ;
      ABHACT[0] = CT60TRANS ; 
      ABHTLC[0] = LCRIAP + EXTRA; 
# 
      SET-UP THE MESSAGE ITSELF 
# 
      P<ACNB> = PARAMS4 ; 
      P<SUPMSG> = BUFADDR + ABHSIZE + BLKHSIZE ;
      P<SMNIP > = P<SUPMSG> ; 
#                                                                      #
      PFCSFC[0] = CRIAP     ; 
      P<SMNVF>  = P<SUPMSG> ; 
#                                                                      #
      CRRIAP[0] = PARAMS1   ;   # REASON CODE                          #
      CRACN [0] = PARAMS2   ;   # APPLICATION CONNECTION NUMBER        #
      CRIAN [0] = PARAMS3   ;   # INITIAL APPLICATION NUMBER           #
      CRRANM[0] = ACNBANM[0];   # APPLICATION TO BE CONNECTED          #
      CRRHID[0] = ACNBHID[0];   # HOST ID (PREVIOUSLY STORED IN ACNB)  #
      CRULID[0] = ACNBLID[0];   # LID OF THE OUTGOING CALL(PREV STORED)#
      IF EXTRA GR 0             # WORDS TO BE ADDED                    #
      THEN
        BEGIN 
        P<WORDF> = 0; 
        FOR INDX = 0 STEP 1 UNTIL EXTRA - 1 
        DO
          BEGIN                 # MOVE EXTRA WORDS FROM CONACRQ TO     #
                                # CRIAP AREA                           #
          SPMWD[RCRIAPSZ + INDX] = WORD[PARAMS7 + RCRIAPSZ + INDX]; 
          END 
        END 
# 
      AND LINK MESSAGE TO NVF 
# 
      BLINK ( BUFADDR,ATACBA[NVFAN]) ;  # QUEUE TO NVF                 #
      OSCHAPP (ATACBA[NVFAN]) ; 
      GOTO RJMAIN ; 
      END 
TERM
