*DECK HPNPDRL 
USETEXT NIPDEF
USETEXT AHEADER 
USETEXT AT
USETEXT DRHDR 
USETEXT ACB 
USETEXT PT
USETEXT SUPMSG
 PRGM HPNPDRL ; 
STARTIMS; 
 #
*1DC  HPNPDRL 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        HPNPDRL             L. T. NGUYEN        82/08/09 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        FORM HOP/REL AND SEND IT TO EACH EXISTING APPLICATION. 
* 
*     3. METHOD USED
*        LOOP THROUGH THE AT TO FIND NON-ZERO ACB POINTER AND 
*        THEN FORM HOP/REL. 
* 
*     4. ENTRY PARAMETERS 
*        NONE 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED 
*        NIPDEF     AHEADER     AT
*        ACB     PT     SUPMSG
* 
*     7. ROUTINES AND OVERLAYS CALLED 
*        BLINK - LINK MESSAGE TO DATA RING
*        MGETS - GET BUFFER 
*        OSCHAPP - SCHEDULE APPLICATION 
* 
*     8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION 
*        THIS IS A PRIMARY OVERLAY CALLED BY HPPUT. 
* 
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY 
*CALL OPSIZE
* 
* 
 #
STOPIMS;
  
  
      ITEM BUFADDR ;                   # BUFFER ADDRESS OF SM          #
      ITEM I ;
  
      XREF PROC BLINK ;                # LINKING SM TO APPL.           #
      XREF PROC MGETS ;                # GET BUFFER FOR SM             #
      XREF PROC OSCHAPP ;              # SCHEDULE APPLICATION          #
      XREF LABEL RJMAIN ;              # RETURN ENTRY                  #
  
      BEGIN                            # HPNPDRL                       #
  
# 
      LOOP THROUGH THE AT TO FIND NON-ZERO ACB AND SEND TO IT 
# 
      FOR I = NVFAN STEP 1 WHILE I LQ ATHAN[0]
      DO
        BEGIN 
        P<ACB> = ATACBA[I] ;           # ACB POINTER                   #
        IF P<ACB> NQ 0
            AND ( ACBANAME[0] EQ "NVF"
                  OR ACBANAME[0] EQ "CS" )
        THEN
          BEGIN                        # NON-ZERO ACB                  #
          MGETS(LHOPREL + BLKHSIZE + ABHSIZE,BUFADDR,TRUE) ;
  
          P<AHEADER> = BUFADDR + BLKHSIZE ; 
          ABHABT[0] = APPCMD ;
          ABHACT[0] = CT60TRANS ; 
          ABHTLC[0] = LHOPREL ; 
  
          P<SUPMSG> = BUFADDR + BLKHSIZE + ABHSIZE ;
          PFCSFC[0] = HOPREL ;
  
          BLINK(BUFADDR,P<ACB>) ; 
          OSCHAPP(P<ACB>) ; 
  
          END                          # NON-ZERO ACB                  #
  
        END 
  
      GOTO RJMAIN ; 
      END                              # HPNPDRL                       #
  
TERM. 
  
