*DECK CALLNLD 
USETEXT COMCBEG 
USETEXT COMMCOM 
USETEXT COMRNET 
    PROC CALLNLD (RMTNAD);
# TITLE   CALLNLD - CALL NLD    # 
  
      BEGIN  # CALLNLD #
  
# 
**    CALLNLD - CALL NLD
* 
*     THIS PROCEDURE SETS SOME COMMON PARAMETERS AND CALLS NLD. 
* 
*     PROC CALLNLD
* 
*     ENTRY   - RMTNAD    = TRUE, IF REMOTE NAD FUNCTION. 
*                         = FALSE, IF LOCAL NAD FUNCTION. 
*               NLD$FC    = NLD FUNCTION CODE.
*               NAD$ENTRY = FWA OF NAD ENTRY IN NDT.
*               PTH$ENTRY = FWA OF PATH ENTRY IN NDT. 
* 
*     EXIT    - NLD$RC   = NLD RESPONSE CODE. 
* 
*     PROCESS - IF REMOTE NAD 
*                 SET REMOTE NAD PARAMETERS IN NLD PARAMETER BLOCK
*               PUT LOCAL NAD CHANNEL NUMBER IN NLD PARAMETER BLOCK 
*                   AND SET COMPLETE FLAG = FALSE 
*               PUT ADDRESS OF PARAMETER BLOCK IN NLD CALL
*               CALL NLD. 
* 
# 
  
      ITEM RMTNAD     B;           # REMOTE NAD FLAG #
  
# 
****  PROC CALLNLD - XREF LIST BEGIN
# 
  
      XREF
        BEGIN 
        PROC CALLSYS;              # CALL SYSTEM VIA RA+1 # 
        PROC DBGNAME;              # DEBUG - DAYFILE MESSAGE #
        END 
  
# 
****  PROC CALLNLD - XREF LIST END
# 
  
  
CONTROL EJECT;
  
      $BEGIN
      DBGNAME ("CALLNLD");         # DEBUG MESSAGE #
      $END
  
      IF RMTNAD                    # IF REMOTE NAD FUNCTION # 
      THEN
        BEGIN                      # SET REMOTE NAD PARAMETERS #
        PB$AC = PTH$ACCESS; 
        PB$ND = RMT$NAD;
        PB$RT = PTH$RTE;
        PB$LT = PTH$LTE;
        END 
  
      ELSE
        BEGIN 
        PB$WD5 = 0;                # CLEAR REMOTE NAD ADDR #
        END 
  
      PB$CH = NAD$CHAN;            # SET LOCAL NAD CHANNEL NUMBER # 
      PB$CMPLT = FALSE;            # CLEAR COMPLETE FLAG #
      NLD$PBLK = LOC(PBLOCK);      # SET PARAMETER BLOCK ADDRESS #
      CALLSYS(NLDCALL);            # CALL NLD # 
  
      END  # CALLNLD #
  
    TERM
