*DECK DLNREP
USETEXT DLFPDEF 
USETEXT DLTLC 
USETEXT DRHDR 
USETEXT MISRES
USETEXT NHEADER 
USETEXT OUTCDA
USETEXT WRDPAIR 
USETEXT ZHRCD 
PROC DLNREP;                 # NIP DEBUG LOG HEADER FORMAT             #
*IF DEF,IMS 
 #
*1DC  DLNREP
* 
*     1. PROC NAME           AUTHOR              DATE.
*        DLNREP              P.C.TAM             78/12/13 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        FORMATS HEADERS FOR NIP DEBUG LOG FILE 
* 
*     3. METHOD USED. 
*        BREAKS UP NETWORK HEADER FOR PIPIN OR PIPOUT MESSAGES
* 
*     4. ENTRY PARAMETERS.
*        ZHRCD               COMMON BLOCK CONTAINING RECORD HEADER
* 
*     5. EXIT PARAMETERS. 
*        DLCC - CHARACTER LENGTH OF MESSAGE TEXT. 
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED.
*        DLFPDEF   DLTLC     DRHDR     MISRES 
*        NHEADER   OUTCDA    WRDPAIR   ZHRCD
* 
*     7. ROUTINES CALLED. 
*        DLDISBI             CONVERT FIELD TO BINARY DISPLAY CODE 
*        DLDISDE             CONVERT FIELD FROM BINARY TO DECIMAL 
*                            DISPLAY CODE 
*        DLWRITC             WRITE LINE TO CIO BUFFER 
* 
*     8. DAYFILE MESSAGES.
*        NONE.
* 
 #
*ENDIF
# 
      EXTERNAL VARIABLES
# 
      XREF
        BEGIN 
        PROC DLDISBI;        # CONVERT FIELD TO BINARY DISPLAY CODE    #
        PROC DLDISDE;        # CONVERT FIELD TO DECIMAL DISPLAY        #
        PROC DLWRITC;        # WRITE LINE TO CIO BUFFER                #
        END 
# 
      LOCAL VARIABLES 
# 
      ITEM
      I            I,        # INDEX VARIABLE FOR CONNECTIONS          #
      TEMP1        C(WC);    # TEMPORARY VARIABLE                      #
  
      ARRAY L4 S(6);
        BEGIN 
        ITEM L4FIL1 C(0, 0,1)     =[" "]; 
        ITEM L4FIL2 C(0, 6,3)     =["PIP"]; 
        ITEM L4IO   C(0,24,3);
        ITEM L4FIL3 C(0,42,4)     =[" DN="];
        ITEM L4DN   C(1, 6,3);
        ITEM L4FIL4 C(1,24,4)     =[" SN="];
        ITEM L4SN   C(1,48,3);
        ITEM L4FIL5 C(2, 6,4)     =[" CN="];
        ITEM L4CN   C(2,30,3);
        ITEM L4FIL6 C(2,48,4)     =[" BT="];
        ITEM L4BT   C(3,12,2);
        ITEM L4FIL7 C(3,24,10)    =["  MSG NO. "];
        ITEM L4MSGN C(4,24,6);
        ITEM L4FIL8 C(5, 0,8)     =[" "]; 
        ITEM L4ZERO U(5,48,12)    =[0]; 
        END 
  
      ARRAY L5 S(6);
        BEGIN 
        ITEM L5FIL1 C(0,0,21)     =[" "]; 
        ITEM L5FIL2 C(2,6,4)      =["BSN="];
        ITEM L5BSN  C(2,30,1);
        ITEM L5FIL3 C(2,36,5)     =["  CT="]; 
        ITEM L5CT   C(3, 6,1);
        ITEM L5FIL4 C(3,12,7)     =["   DBC="]; 
        ITEM L5DBC  C(3,54,8);
        ITEM L5FIL5 C(4,42,6)     =["  TLC="];
        ITEM L5TLC  C(5,18,4);
        ITEM L5ZERO U(5,42,18)    =[0]; 
        END 
      ARRAY L6 S(6) ; 
        BEGIN 
        ITEM L6FIL1 C(0,0,47) = [" "] ; 
        ITEM L6FIL2 C(4,42,6) = ["  BS= "] ;
        ITEM L6BS   C(5,18,4) ; 
        ITEM L6ZERO U(5,42,18) = [0] ;
        END 
  
# ******************************************************************** #
   BEGIN
      P<DRHDRWD> = LOC(ZHWD1[0]); 
      P<NHEADER> = P<DRHDRWD> + BLKHSIZE; 
      P<PWLHDR> = P<DRHDRWD> ;
      IF BLKID[0] EQ PIBIDVALUE 
       OR BLKID[0] EQ PWLIDVALUE
      THEN
        BEGIN                # INBOUND MESSAGE                         #
        L4IO[0] = "IN"; 
        NHACT[0] = CT8ASCII;
        IF BT[0] EQ NETMSG
        THEN
          BEGIN              # CODE TO CALCULATE RESPONSE TIME         #
          I = CN[0];
          CNINPF[I] = TRUE; 
          CNINPTM[I] = ZNSEC[0];
          END 
        END 
      ELSE
        BEGIN                # OUTBOUND MESSAGES                       #
        L4IO[0] = "OUT";
        IF BT[0] LQ NETMSG
        THEN
          BEGIN              # CODE TO CALCULATE RESPONSE TIME         #
          I = CN[0];
          IF CNINPF[I]
          THEN
            BEGIN       # RESPONSE TO INBOUND MESSAGE                  #
            CNCTR[I] = CNCTR[I] + 1;
            CNSUM[I] = CNSUM[I] + (ZNSEC[0] - CNINPTM[I]);
            CNEXTF[I] = TRUE; 
            CNINPF[I] = FALSE;
            END 
          END 
        END 
  
#     SET HEADER INFORMATION                                           #
  
      DLDISDE(CN[0], 3, TEMP1); 
      L4CN[0] = TEMP1;
      DLDISDE(DN[0], 3, TEMP1); 
      L4DN[0] = TEMP1;
      DLDISDE(SN[0], 3, TEMP1); 
      L4SN[0] = TEMP1;
      DLDISDE(OUMSGNO, 6,TEMP1);
      L4MSGN[0] = TEMP1;
      IF BLKID[0] EQ PWLIDVALUE 
            AND PWLOP[0] NQ PWLOPNSM     # NOT A SUPERVISORY MESSAGE   #
  
      THEN
        BEGIN                            # FOR PWL                     #
        L4FIL6[0] = " OP=" ;             # PUT OPCODE TO TRACE FILE    #
        DLDISDE(PWLOP[0],2,TEMP1) ; 
        L4BT[0] = TEMP1;
        DLDISDE(PWLBS[0],4,TEMP1) ; 
        L6BS[0] = TEMP1 ; 
        DLWRITC(L4, 6); 
        DLWRITC(L6, 6); 
        DLCC = PWLBS[0] - ZNSIZE ;       # LOG THE WHOLE PWL           #
        CT = 1 ;                         # FORCE IT TO BE 60 WORD CHAR #
        END 
      ELSE
        BEGIN                            # NOT A PWL                   #
        L4FIL6[0] = " BT=" ;
        DLDISDE(BT[0],2,TEMP1) ;
        L4BT[0] = TEMP1 ; 
  
        DLDISDE(NHBSN[0], 1, TEMP1);
        L5BSN[0] = TEMP1; 
        DLDISDE(NHACT[0], 1, TEMP1);
        L5CT[0] = TEMP1;
        DLDISBI(NHDBC[0], TEMP1); 
        L5DBC[0] = TEMP1; 
        DLDISDE(CC[0], 4, TEMP1); 
        L5TLC[0] = TEMP1; 
        DLWRITC(L4, 6); 
        DLWRITC(L5, 6); 
  
#     RETURN CHARACTER COUNT IN DLCC FOR EASY ACCESS AND               #
#     COMMON TREATMENT FOR AIP AND NIP LOG FILES                       #
        IF BT[0] EQ 0 
        THEN
          DLCC = 0 ;
        ELSE
          DLCC = CC[0] ;
        CT = NHACT[0];         # SAVE ACT FOR PROCEDURE DLDIS          #
        END 
  
  
      RETURN; 
    END                      # DLNREP                                  #
TERM
