*DECK NADLOG
USETEXT COMCBEG 
USETEXT COMMCOM 
USETEXT COMRNET 
    PROC NADLOG;
# TITLE   NADLOG - CALL NLD TO EXTRACT NAD ERROR LOG #
  
      BEGIN  # NADLOG # 
  
# 
**    NADLOG - CALL NLD TO EXTRACT NAD ERROR LOG
* 
*     THIS PROCEDURE CALLS NLD AND THEN CALLS WRITNEL TO WRITE
*     NAD ERROR LOG ENTRIES TO THE BML/CERFILE. 
* 
*     PROC NADLOG.
* 
*     ENTRY   - ELRMTNAD = TRUE/FALSE (REMOTE/LOCAL NAD). 
*               <NAD$ENTRY> = LOCAL NAD ENTRY.
*               ELPTHADR = PATH ENTRY ADDR. 
*               ELRMTADR = REMOTE NAD ENTRY ADDR. 
* 
*     EXIT    - <NST$ENTRY> = NAD STATE ENTRY.
*               <PTH$ENTRY> = PATH ENTRY (IF ELRMTNAD). 
*               <RMT$ENTRY> = REMOTE NAD ENTRY (IF ELRMTNAD). 
*               ERROR LOG ENTRIES WRITTEN TO BML/CERFILE, OR
*               DAYFILE MESSAGE ISSUED IF NLD ERROR.
* 
*     PROCESS - SET PATH, REMOTE NAD, AND STATE ENTRY ADDRESSES.
*               SEND LOGGING MESSAGE TO B-DISPLAY.
*               SET UP AND CALL NLD TO OBTAIN NAD ERROR LOG.
*               CALL WRITNEL
*               CLEAR B-DISPLAY MESSAGE.
# 
  
# 
****  PROC NADLOG - XREF LIST BEGIN 
# 
  
      XREF
        BEGIN 
        PROC CALLNLD;              # CALL NLD # 
        PROC CALLSYS;              # MAKE RA + 1 REQUEST #
        PROC DBGNAME;              # DEBUG #
        FUNC HEXCHF     C(10);     # VALUE TO HEX DISPLAY # 
        FUNC OCTCHF     C(10);     # VALUE TO OCTAL DISPLAY # 
        PROC WRITNEL;              # SEND LOG TO BML/CERFILE #
        END 
  
# 
****  PROC NADLOG - XREF LIST END 
# 
  
  
      ARRAY [0:0] S(5); 
        BEGIN 
        ITEM NADLOGMSG  C(00,00,48) = 
                 [" MHF, LOGGING LOCAL NAD (LOCAL CH=XX).          "];
        ITEM NADLOGMSGA C(01,24,05);  # "LOCAL" OR "ND=XX" #
        ITEM NADLOGMSGC C(03,24,02);  # LOCAL NAD CHANNEL # 
        ITEM NADLOGMSGN C(01,42,02);  # REMOTE NAD ADDR # 
        ITEM NADLOGMSGT U(04,48,12) = [0];  # TERMINATOR #
        END 
  
      ITEM I          I;
  
CONTROL EJECT;
  
      $BEGIN
      DBGNAME ("NADLOG");          # DEBUG MESSAGE #
      $END
  
      IF ELRMTNAD                  # IF LOGGING REMOTE NAD #
      THEN
        BEGIN 
        P<PTH$ENTRY> = ELPTHADR;   # SET PATH ENTRY ADDR #
        P<RMT$ENTRY> = ELRMTADR;   # SET REMOTE NAD ENTRY ADDR #
        P<NST$ENTRY> = LOC(RMT$NSTWD0);  # NAD STATE ENTRY ADDR # 
        NADLOGMSGA = "ND=XX"; 
        NADLOGMSGN = HEXCHF (RMT$NAD,2);  # NAD ADDR #
        END 
  
      ELSE
        BEGIN 
        P<NST$ENTRY> = LOC(NAD$NSTWD0);  # NAD STATE ENTRY ADDR # 
        NADLOGMSGA = "LOCAL"; 
        END 
  
      NADLOGMSGC = OCTCHF (NAD$CHAN,2);  # NAD CHANNEL #
      MSG$STATUS = 0; 
      MSG$DSPLAY = MSG$BDIS;
      MSG$BUFADR = LOC(NADLOGMSG);
  
      CALLSYS (MSGCALL);           # B-DISPLAY MESSAGE #
  
      PB$FIRST = P<ELB>;           # SET BUFFER POINTERS #
      PB$IN = PB$FIRST; 
      PB$OUT = PB$FIRST;
      PB$LIMIT = PB$FIRST + ONEPRU; 
      NLD$FC = NLD$FCSTAT;         # NAD STATUS (ERROR LOG) # 
      CALLNLD (ELRMTNAD);          # CALL NLD # 
  
      WRITNEL;                     # WRITE BML/CERFILE #
  
      $BEGIN
      MSG$STATUS = 0; 
      MSG$BUFADR = LOC(NADLOGMSG);
      CALLSYS (MSGCALL);           # SEND DAYFILE MESSAGE # 
      $END
  
      MSG$STATUS = 0; 
      MSG$BUFADR = LOC(NADLOGMSGT); 
      MSG$DSPLAY = MSG$BDIS;
      CALLSYS (MSGCALL);           # CLEAR B-DISPLAY #
      MSG$DSPLAY = MSG$DAYF;       # RESET MESSAGE DESTINATION #
  
      END  # NADLOG # 
  
    TERM
