*DECK NS$PCM
USETEXT COM$NS
USETEXT DEF$NS
USETEXT PCM$NS
      PROC NS$PCM((PCMORDINAL)); # PROCESS NS PROGRAM COMMANDS         #
  
# TITLE NS$PCM - PROCESS NS PROGRAM COMMANDS.                          #
  
      BEGIN    # NS$PCM # 
# 
**    NS$PCM - PROCESS NS PROGRAM COMMANDS. 
* 
*     J.C. LEE    1981
* 
*     THIS ROUTINE PROCESSES NS PROGRAM COMMANDS. 
* 
*     PROC NS$PCM((PCMORDINAL)) 
* 
*     ENTRY:  
*       PCMORDINAL - PROGRAM COMMAND ORDINAL. 
* 
*     EXIT: 
*       NONE. 
* 
*     METHOD: 
*       USE "PCMORDINAL" TO SWITCH TO THE APPROPRIATE 
*       PARAGRAPH TO PROCESS THE COMMAND. 
* 
# 
  
      ITEM PCMORDINAL S:PCMDI;
  
      $BEGIN
      XREF
        BEGIN 
        PROC NS$DBG;         # TRACE CALL                              #
        PROC NS$STD;         # LOG NS STATISTICS                       #
        END 
      $END
  
      XREF
        BEGIN 
        PROC NETDBG;         # TURN AIP TRACE ON/OFF                   #
        PROC NETDMB;         # BINARY DUMP FL/EXCHANGE PACKAGE         #
        PROC NETREL;         # RELEASE TRACE FILE ZZZZZDN              #
        PROC NETSTC;         # TURN ON/OFF STATISTICS                  #
        END 
  
      ITEM STAT       U;     # RETURN STATUS FROM NETIOD               #
  
      SWITCH PCMDCASE:PCMDI  # CASES FOR PROGRAM CQOMMANDS             #
        PCMD1:DU, 
        PCMD2:NOTR, 
        PCMD3:REL,
        PCMD4:RS, 
        PCMD5:TRCE, 
        PCMD6:DB, 
        PCMD7:DE; 
  
CONTROL EJECT;
  
      $BEGIN
      NS$DBG("PCM");         # TRACE CALL                              #
      $END
  
      GOTO PCMDCASE[PCMORDINAL]; # CASE ON PROGRAM COMMANDS            #
  
PCMD1:                       # DUMP EXCHANGE PACKAGE/FIELD LENGTH      #
      NETDMB(ZDMBID[0],0);
      ZDMBID$DN[0] = ZDMBID$DN[0] + 1; # INCREMENT DUMP NUMBER         #
      GOTO PCMDEXIT;
  
PCMD2:                       # TURN AIP TRACE OFF                      #
      NETDBG(1,1,STAT); 
      GOTO PCMDEXIT;
  
PCMD3:                       # RELEASE AIP TRACE FILE ZZZZZDN          #
      $BEGIN
      IF MC NQ 0
      THEN                   # ZZZZZDN FILE RELEASE AUTHORIZED         #
        NETREL(NRF2$LFN,MAX$TMSGSZ,0);
      $END
      GOTO PCMDEXIT;
  
PCMD4:                       # RESET NS STATISTICS                     #
      $BEGIN
      NS$STD;                # LOG NS STATISTICS                       #
      NETSTC(1,STAT);        # RESET AIP STATISTIC COUNTERS            #
      NETSTC(0,STAT);        # RESTART AIP STATISTIC GATHERING         #
      $END
      GOTO PCMDEXIT;
  
PCMD5:                       # TURN AIP TRACE ON                       #
      NETDBG(0,1,STAT); 
      GOTO PCMDEXIT;
  
PCMD6:                       # TURN ON IN-LINE DEBUG CODE              #
      MODE$DEBUG = TRUE;
      GOTO PCMDEXIT;
  
PCMD7:                       # TERMINATE IN-LINE DEBUG CODE            #
      MODE$DEBUG = FALSE; 
      GOTO PCMDEXIT;
  
PCMDEXIT: 
      RETURN; 
      END # NS$PCM #
      TERM
