*DECK NS$RPV
USETEXT COM$NS
USETEXT NAT$NS
USETEXT NPT$NS
USETEXT PFC$NS
USETEXT SMB$NS
USETEXT SMD$NS
  
PROC NS$RPV;                           # REPRIEVE PROCESSOR            #
  
# TITLE NS$RPV - REPRIEVE PROCESSOR.                                   #
  
      BEGIN    # NS$RPV # 
# 
**    NS$RPV - REPRIEVE PROCESSOR.
* 
*     J.C. LEE    1981
* 
*     THIS ROUTINE DOES REPRIEVE PROCESSING.
* 
*     PROC NS$RPV 
* 
*     ENTRY:  
*       NONE. 
* 
*     EXIT: 
*       NONE. 
* 
*     METHOD: 
*       SET DUMP RECORD NUMBER FOR REPRIEVE DUMP. 
*       DUMP FL/EXC PACKAGE 
*       IF NS INITIALIZATION NOT COMPLETE:  
*         DO NOT RESTART NS.
*       ELSE
*         CLEAN UP NATS.
*         IF LOADING REMOTE NPU:  
*         SEND NPU/IN/N 
*       IF NS ALREADY NETTED-ON:  
*         FLUSH AIP TRACE FILE. 
* 
# 
  
      $BEGIN
      XREF
        BEGIN 
        PROC NS$DBG;                   # TRACE PROCEDURE CALL          #
        END 
      $END
  
      XREF
        BEGIN 
        PROC NETDMB;         # BINARY DUMP FL/EXCHANGE PACKAGE         #
        PROC NETPUT;                   # AIP NETPUT                    #
        PROC NETSETF;                  # GET ZZZZZDN FILE FWA          #
        PROC NS$FBH;                   # FORMAT ABH                    #
        PROC RSJCR;          # RESET JOB CONTROL REGISTER              #
        PROC TSBINFO;                  # LOCATE TSB                    #
        PROC WRITER;                   # FLUSH TRACE FILE ZZZZZDN      #
        END 
  
      ITEM I          I;               # LOOP VARIABLE                 #
      ITEM NATFWA     U;               # NAT TSB FWA                   #
      ITEM NATSIZE    U;               # NAT SIZE                      #
      ITEM NEXTNATTSB U;               # NEXT NAT IN NAT LIST          #
      ITEM ZZDNFWA    I;               # FWA OF AIP TRACE FILE ZZZZZDN #
  
      BASED ARRAY ZZDNFET [0:0] P(1); 
        BEGIN 
        ITEM ZZDNWORDS  U(00,00,60);
        END 
  
CONTROL EJECT;
  
      $BEGIN
      NS$DBG("RPV");                   # TRACE CALL                    #
      $END
  
      ZDMBID$DN[0] = 7; # SET DUMP RECORD NUMBER FOR REPRIEVE DUMP     #
      NETDMB(ZDMBID[0],0); # DUMP FL/EXC PACKAGE                       #
  
      IF NOT NSINITDONE 
      THEN                   # INITIALIZATION NOT COMPLETE             #
        BEGIN                # DO NOT RESTART NS                       #
        RSJCR(1,1,0);        # SET CONROL REG 1 TO 0                   #
        END 
  
      ELSE
  
      BEGIN 
  
      NEXTNATTSB = NPT$NLHEAD[0];      # HEAD PTR OF NAT LIST          #
  
      FOR I = 0 WHILE NEXTNATTSB NQ 0 
      DO                               # MORE NAT TO CLEAN UP          #
        BEGIN 
        TSBINFO(NATSIZE,NATFWA,NEXTNATTSB);  # LOCATE NAT              #
        P<NAT> = NATFWA;               # FWA OF NAT                    #
        NEXTNATTSB = NAT$NLFP[0];      # NEXT NAT IN LIST              #
  
        IF NAT$F$RMTL[0]
        THEN                           # LOADING REMOTE NPU            #
          BEGIN                        # SEND NPU/IN/N                 #
          NS$FBH(LNPUIN,TRUE);         # FORMAT ABH                    #
          PFCSFC[0] = NPUINN;          # SET PFC/SFC                   #
          NPUPO[0] = NAT$PN[0];        # SET PORT NUMBER               #
          NPUSP[0] = NAT$SPN[0];       # SET SUBPORT NUMBER            #
          NPULT[0] = LOADTYPE"LT$REMOT"; # SET LOAD TYPE               #
          NETPUT(ABH$WORD,SMB$BUFFER); # SEND NPU/IN/N                 #
          END 
        END                            # END FOR LOOP                  #
      END 
  
  
      IF NSNETON
      THEN                   # NETON WAS SUCCESSFUL                    #
        BEGIN 
        NETSETF(FALSE,ZZDNFWA); # GET TRACE FILE FWA                   #
        P<ZZDNFET> = ZZDNFWA; 
        IF P<ZZDNFET> NQ 0
        THEN # ZZZZZDN FILE EXISTS     #
          WRITER(ZZDNFET); # FLUSH AIP TRACE FILE                      #
        END 
  
      RETURN; 
      END   # NS$RPV #
      TERM
