*DECK CLEANUP 
USETEXT COMCBEG 
USETEXT COMRNET 
USETEXT COMRNDR 
USETEXT COMRLRA 
USETEXT COMRRHH 
PROC CLEANUP; 
# TITLE  CLEANUP - DISABLE CODE CONVERSION IN NADS. # 
  
      BEGIN  # CLEANUP #
  
# 
**    CLEANUP - DISABLE CODE CONVERSION IN NADS.
* 
*     THIS ROUTINE CALLS NDR TO DISABLE CODE CONVERSION IN ALL
*     NADS THAT ARE ON AND HAVE CODE CONVERSION ENABLED.
* 
*     PROC CLEANUP. 
* 
*     ENTRY   - NONE. 
* 
*     EXIT    - NONE. 
* 
*     PROCESS - FOR EACH LOCAL NAD ENTRY
*                 IF THE NAD IS ON
*                 THEN
*                   START UP AN NDR.
*                   CALL NDR TO INITIALIZE THE NAD. 
*                   DROP NDR. 
*                   CALL RHH TO CLEAR THE RHF ACTIVE BIT. 
# 
  
# 
****  PROC CLEANUP - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC CALLSYS;                # MAKE RA + 1 REQUESTS # 
        PROC NDRRSTR;                # RESTART NDR #
        ITEM NADTBL I;               # FWA OF LOCAL NAD TABLE # 
        ITEM NUMNADS I;              # NUMBER OF LOCAL NADS # 
        ITEM NDTADDR I;              # FWA OF NETWORK DECRIPTOR TABLE # 
        END 
  
# 
****  PROC CLEANUP - XREF LIST BEGIN. 
# 
  
  
      ITEM I          I;             # LOOP COUNTER # 
  
      ARRAY RCLCALL [0:0] S(1); 
        BEGIN 
        ITEM RCLNAME    C(00,00,03) = ["RCL"];
      CONTROL IFEQ OS$NOSBE;
        ITEM RCLTIME    U(00,42,18) = [4000]; 
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOS;
        ITEM RCLTIME    U(00,42,18) = [0];
      CONTROL ENDIF;
        END 
  
      ARRAY NDRCALL [0:0] S(1); 
        BEGIN 
        ITEM NDRNAME    C(00,00,03) = ["NDR"];
        ITEM NDRRCL     B(00,19,01) = [FALSE];
        ITEM NDRADDR    I(00,42,18);
        END 
  
CONTROL EJECT;
  
      P<NDR$COMMUN> = O"20";
      P<NAD$ENTRY> = RA$NDT + (NADTBL - NDTADDR); 
      FOR I = 1 STEP 1 WHILE I LE NUMNADS DO
        BEGIN 
        IF NOT NAD$ESTOFF 
        THEN
          BEGIN 
          NDR$ACTIVE = TRUE;
          NDR$RQCHG  = FALSE; 
          NDR$FUNC   = NF$START;
          NDR$FUNCOM = 0; 
          NDRADDR    = P<NDR$COMMUN> / O"10"; 
          CALLSYS(NDRCALL); 
  
          ASLONGAS NDR$FUNCOM EQ 0 DO 
            BEGIN 
            CALLSYS(RCLCALL); 
            END 
  
          IF NAD$CME
          THEN
            BEGIN 
            NDR$CMCSF = DISCONMODE; 
            END 
  
          ELSE
            BEGIN 
            NDR$CMCSF = NOCONMODE;
            END 
  
          NDR$FUNC   = NF$INITNAD;
          NDR$CHAN   = NAD$CHAN;
          NDR$ESTORD = NAD$ESTORD;
          NDR$NADORD = NAD$ORD; 
          NDRRSTR;
  
          ASLONGAS NDR$FUNCOM EQ 0 DO 
            BEGIN 
            CALLSYS(RCLCALL); 
            END 
  
          NDR$FUNC = NF$DROP; 
          NDRRSTR;
  
          ASLONGAS NDR$FUNCOM EQ 0 DO 
            BEGIN 
            CALLSYS(RCLCALL); 
            END 
  
          RHH$PARAM  = 0; 
          RHH$ESTORD = NAD$ESTORD;
          RHHPARMAD  = LOC(RHH$PARAM);
          RHHFUNCTN  = RH$CLEAR;
          RHHRCL     = TRUE;
          CALLSYS(RHHCALL); 
          RHHRCL     = FALSE; 
          END 
  
          P<NAD$ENTRY> = P<NAD$ENTRY> + NAD$LENGTH; 
        END 
  
  
      END  # CLEANUP #
  
      TERM
