!=============================================================================
!  DIVISION   I	:		     COMMAND LANGUAGE DEFINITION DECLARATION
!=============================================================================
!
!      -----------------------------------------------------------------
!      SECTION 01 :					 INITIAL VERSION
!      -----------------------------------------------------------------
!
!      File Specification: SYSMON.CLD
!      Author		 : William A. Flatt
!      Initial version	 : October 22, 1987 	VMS 4.6
!
!      -----------------------------------------------------------------
!      SECTION 02 :				    MODIFICATION HISTORY
!      -----------------------------------------------------------------
!
!
!=============================================================================
!  DIVISION  II	:				      COMMAND SPECIFICATIONS
!=============================================================================
!
!      -----------------------------------------------------------------
!      SECTION 01 :					 VERB DEFINITION
!      -----------------------------------------------------------------
!
!      SYSMON
!	 SYSMON allows continual display of the certain dynamicly changing
!	 (by Touch Technologies' Dynamic Load Balancer) system parameters
!	 and a list of processes.  The set of processes for the initial display
!	 may be selected based on the type of process (Interactive, Batch, 
!	 Network, or Other).  For subsequent displays only processes which have
!	 changed in their selected parameters (default is total memory).
!
!
!
!      -----------------------------------------------------------------
!      SECTION 02 :					      PARAMETERS
!      -----------------------------------------------------------------
!
!      This command has several optional parameters.
!
!	EXIT
!	 Requests a termination of the execution of the image.
!	 This will normally be input from the SYSMON> prompt which occurs
!	  1. after display of the data when /NOINTERVAL is specified, or
!	  2. After a CTRL/C interupt.
!
!	HELP
!	 Use system help package for SYSMON
!
!      -----------------------------------------------------------------
!      SECTION 03 :					      QUALIFIERS
!      -----------------------------------------------------------------
!
!	/MODE=ALL
!        Requests that all processes be listed.  This is equivalent to
!	 /MODE=(BATCH,INTERACTIVE,NETWORK,OTHER)
!
!	/MODE=BATCH
!        Requests that batch processes be listed.
!
!	/MODE=INTERACTIVE
!        Requests that interactive processes be listed.
!
!	/MODE=NETWORK
!        Requests that network processes be listed.
!
!	/[NO]OTHER
!        Requests that other processes be listed.
!
!
!	/INTERVAL=nn
!	 Specifies a wait period in seconds after completion of one display
!	 before displaying the next display.  Default is 60 seconds. 
!
!	/[NO]PROCESS
!	 Specifies that [no] process list is to be shown.  Default is PROCESS.
!	 Should one want to watch the system parameters only at a interval that
!	 will insure seeing all changes (i.e. 6 seconds) then the process should
!	 be negated.  	  
!
!	/SELECT=(MEMORY,PCNT,GCNT,FAULTS,DIRIO,BUFIO)
!	 Select the process for redisplay for a change in 
!	   1. Total MEMORY (i.e. Page CouNT + Global page CouNT) (Default)
!	   2. Page CouNT
!	   3. Global page CouNT
!	   4. Number of page FAULTS
!	   5. Number of DIRect I/O operations
!	   6. Number of BUFfered I/O operations
!
!	/SUBPROCESS
!	 Specifies that only subprocesses are to be listed.  Default is not
!	 specified.  	  
!
!	/OUTPUT=filename
!	 Specifies output file (or device) for the generated report.  Default
!	 is SYS$OUTPUT.
!
!=============================================================================
!  DIVISION III	:					       SPECIAL NOTES
!=============================================================================
!
!	SYSMON	/MODE=(OTHER,NETWORK,BATCH,INTERACTIVE) - ! default is "all"
!		/INTERVAL=nn -				  ! wait in secondss
!		/SELECT=(MEMORY,PCNT,GCNT,FAULTS,DIRIO,BUFIO) -
!		/[NO]PROCESS -				  ! default is process
!		/SUBPROCESS  -				  ! display subprocesses
!		/OUTPUT=filename -			  ! output
!		/BEGINNING=time -			  ! delayed start
!		/ENDING=time				  ! automatic stop
!
!=============================================================================!

DEFINE VERB HELP

DEFINE VERB EXIT

DEFINE VERB SPAWN

	PARAMETER	P1 LABEL=COMMAND VALUE(TYPE=$REST_OF_LINE)

DEFINE VERB SYSMON

!	IMAGE		"DEV_FLATT:SYSMON.EXE"

	PARAMETER	P1 LABEL=PAR_STRING VALUE(TYPE=$REST_OF_LINE)

!	PARAMETER	P1 LABEL=PAR_STRING, VALUE(TYPE=PAR_KEYWORD,LIST)
	
	

!	PARAMETER	P1
!			LABEL=FILE_SPEC
!			VALUE(REQUIRED,TYPE=$FILE)
!			PROMPT="File"

!	QUALIFIER	LOG, NEGATABLE, VALUE(DEFAULT="NOLOG")


	QUALIFIER	MODE, NONNEGATABLE, DEFAULT,
				VALUE(TYPE=MODE_KEYWORD,DEFAULT="ALL",LIST)

	QUALIFIER	PROCESS, NEGATABLE, VALUE(DEFAULT="", LIST)

	QUALIFIER	SELECT, NEGATABLE, DEFAULT, 
				VALUE(TYPE=SELECT_KEYWORD,DEFAULT="MEMORY",LIST)

	QUALIFIER	SUBPROCESS, NEGATABLE

	QUALIFIER	INTERVAL, NONNEGATABLE,
				VALUE(TYPE=$NUMBER,DEFAULT="60")

	QUALIFIER	OUTPUT, NONNEGATABLE, DEFAULT, 
			VALUE(TYPE=$FILE,DEFAULT="SYS$OUTPUT")

	QUALIFIER	USER, NEGATABLE, VALUE(DEFAULT="", LIST)

	QUALIFIER	ID, NEGATABLE, VALUE(DEFAULT="", LIST)

	QUALIFIER	DLB, NEGATABLE

	QUALIFIER	OLD, NEGATABLE

	QUALIFIER	BEGINNING, NONNEGATABLE, VALUE(TYPE=$DELTATIME)

	QUALIFIER	ENDING, NONNEGATABLE, VALUE(TYPE=$DELTATIME)

	DISALLOW	NEG PROCESS AND (MODE or USER or ID or NEG SELECT)

	DISALLOW	ID AND (USER OR MODE OR PROCESS)

	ROUTINE		SYSMON


DEFINE TYPE SELECT_KEYWORD

	KEYWORD		MEMORY, Default	! Select on total memory
	KEYWORD		GCNT		! Select on Global Page count  
	KEYWORD		PCNT		! Select on Page count  
	KEYWORD		FAULTS		! Select on faults
	KEYWORD		DIRIO		! Select on Direct I/O
	KEYWORD		BUFIO		! Select on Buffered I/O


DEFINE TYPE MODE_KEYWORD

	KEYWORD ALL, DEFAULT		! ALL modes
	KEYWORD OTHER			! OTHER (i.e. Detached)
	KEYWORD NETWORK			! 
	KEYWORD BATCH
	KEYWORD INTERACTIVE		! 

	
