 
		AT. -- INDIRECT FILE PROCESSOR
 
     The indirect command file processor provides BATCH-like capabilities
 for controling taskbuilds and routine processes.  It is sufficiently complex
 that is is practically a program language.  
     Any MCR command appearing in the command file will be executed if the
 terminal's privilege allows it to do so.  Directives (commands to  ...AT.)
 can be used to control the logic flow of MCR commands, input data from
 the user's terminal, and create files for future use.
 
     A command file is started by    @filename.ext/sw
 where  .cmd  is the default extension and a number of switches may be used.
     Specific HELP on the use of AT. may be obtained with the keywords.
 
	DIRECTIVES			SPECIAL STRING-SYMBOLS
	LABEL				STRING-EXPRESSIONS
	NUMERIC-EXPRESSIONS		SUBSTITUTION
	PARAMETER-PASSING		SWITCHES
	SPECIAL LOGICAL-SYMBOLS		SYMBOLS
	SPECIAL NUMERIC-SYMBOLS		<Directive Name>
2	DIRECTIVES
 
 .label			Define a label.
 .ASK			Ask operator a YES/NO question.
 .ASKN			Ask operator for numeric value.
 .ASKS			Ask operator for string value.
 .BEGIN			Marks the beginning of a Begin-End block.
 .CHAIN filename	Close current file, and start executing new one.
 .CLOSE			Close an open output file.
 .DATA			Send a single line of data to a secondary output file.
 .DEC			Decrement numeric symbol by 1.
 .DELAY			Delay execution for specified time.
 .DISABLE		Disable substitution, data, global symbols, lowercase,
			escape recognition or echo control.
 .ENABLE		Enable substitution, data, global symbols, lowercase,
			escape recognition or echo control.
 .END			Mark the end of a Begin-End block.
 .ERASE			Erase LOCAL or GLOBAL symbols.
 .EXIT [status]		Exit from level of indirect file and set status.
 .GOSUB			Goto a subroutine.
 .GOTO			Goto the specified label.
 .IF			Determine if symbol, or string expression meets one of
			several possible conditions.
 .IFACT/.IFNACT		Determine if task is active or not active.
 .IFDF/.IFNDF		Determine if a symbol is/is not defined.
 .IFINS/.IFNINS		Determine if a task is installed.
 .IFLOA/.IFNLOA		Determine if a driver is loaded.
 .IFT/.IFF		Determine if a logical symbol is True or False.
 .INC			Increment a numeric symbol.
 .ONERR			Branch to a label if error detected.
 .OPEN #n FILESPEC	Open a file for write output.
 .OPENA #n FILESPEC	Open a file for write APPEND output.
 .OPENR #n FILESPEC	Open a file for reading.
 .PARSE			Parse a string variable.
 .PAUSE			Pause for operator action.
 .READ #n stringvar	Read one ASCII line into the string variable.
 .RETURN		Return from subroutine.
 .SETT/.SETF		Set logical symbol True/False.
 .SETN			Set value of numeric symbol.
 .SETS			Set value of string symbol.
 .STOP [status]		Exit from ...AT. and optionally set status.
 .TEST string sym	Test length and character type of string symbol.
 .TESTFILE filespec	Test a file for existence.
 .WAIT			Wait for specified task to exit.
 .XQT			Start a task but do not wait for it to complete.
2	LABEL
 
    Any statement in an indirect command file, may have a label.  This
 label is used as a reference point to branch back to or to jump to (.GOTO, 
 .ONERROR, .GOSUB).  A label may contain only alphanumeric characters and a $.
 
 Labels may be from 1-6 characters long and are followed by a colon, :,
 and must be preceded by a period (.). Labels may be declared as direct
 access labels by placing them on  lines by themselves.  This enables very 
 fast jumps to a label for frequently used labels.  Only 20 such labels are
 maintained by AT. at any given time.
2	NUMERIC-EXPRESSIONS
 
    Numeric symbols or constants may be combined with other symbols or
 constants by logical and arithmetic operators to form a numeric experssion.
 Arithmetic operators are used to add (+), subtract (-), multiply (*),
 and divide (/).  Logical operators are the inclusive OR (!), and logical 
 AND (&).  No embedded blanks or tabs are permitted between operators.
 Expressions are evaluated from left to right unless parentheses are used
 to form subexpressions that are evaluated first.  An expression type
 is octal only if all operands are octal.  Numeric expressions are permitted
 as second operands in numeric .IF and .SETN directives, and as range and
 default arguments in .ASKN and .ASKS directives.  They are also permitted to
 represent exit status in the directives .EXIT and .STOP.
2	PARAMETER-PASSING

	Parameters may be passed to an indirect command file by appending
	a space to the file specification, followed by the space-delimited
	parameters:

		>@file arg1 arg2 arg3 ... argn

	The entire command line, less the initial "@" will appear in "COMMAN"
	The first eight parameters will appear in P1, P2, ... , P8
	The file specification will appear in P0
	The number of parameters passed (including the file spec) will appear
		in <STRLEN>
	Any trailing information in the command line beyond the eight
		parameters will appear in P9

	For information on performing alternative command parses as well as
	additional parses on the arguments, see the .PARSE statement.

	This feature is currently not supported by DEC and is not documented
	in the 'MCR Operations' Manual.
2	SPECIAL
3	LOGICAL-SYMBOLS
 
 <ESCAPE>	True if the last query was answered with a single escape.
 <DEFAUL>	True if answer to last numeric query was defaulted.
 <ALPHAN>	True if last string entered via .ASKS or tested with .TEST
		contains only alphanumeric characters.
 <RAD50>	True if last string entered via .ASKS or tested with  .TEST
		contains only RADIX-50 characters (alphanumeric characters
		plus  .  and $).
 <MAPPED>	True if system is mapped.
 <EOF>		True if the last .READ directive encountered the End Of File.
3	NUMERIC-SYMBOLS
 
 <MEMSIZ>	Memory size in K words.
 <EXSTAT>	Assigned the value of 0,1,2, or 4 depending on the exit status
		from the last MCR command executed or from the last .WAIT tsknam
		directive where 'tsknam' was activated by the .XQT directive.
		This special numeric symbol is modified at the completion of a 
		synchronous MCR command or at the completion of a .WAIT
		directive.  The .EXIT statement can also modify <EXSTAT>.  
		The value is returned from the task that has completed, if the 
		task exits with status.  Otherwise the value is returned from
		MCR.  The values 0,1,2 and 4 indicate
				0	Warning
				1 	Success
				2	Error
				4	Severe error
 <SYUNIT>	Unit number of system device (SY:).
 <STRLEN>	Length of string entered via .ASKS, or tested with .TEST.
 <FILERR>	Contains the last FCS error code resulting from a .TESTFILE,
		.OPEN, .OPENA, .OPENR, .READ or .DATA directive.
 <SPACE>	Assigned the number, in octal, of free bytes in the internal
		symbol table of AT.
 <SYSTEM>	Operating system type. 
			RSX-11M	     = 1	RSX-11M-PLUS = 6
3	STRING-SYMBOLS
 
 <SYDISK>	Device mnemonic of system device(SY:) in format DD.
 <UIC>		Current UIC in format [ggg,mmm].
 <SYSUIC>	System SYSIC in format [ggg,mmm].
 <LIBUIC>	System LIBUIC in format [ggg,mmm].
 <DATE>		The date in form DD-MMM-YY.
 <TIME>		The time in form HH:MM:SS.
 <FILSPC>	Contains the expanded file specifier for the last file specified
		in a .TESTFILE, .OPEN, .OPENA, or .OPENR directive.
 <CLI>		Assigned the name of the current CLI (MCR).
2	STRING-EXPRESSIONS
 
    A string constant  is a string of up to 80. printable characters 
 enclosed in double quotes (").  Null strings are permitted.  Thus "ABCDEFG"  
 and ""  are both string constants.  String variables are assigned with the 
 .SETS and .ASKS directives.  Substrings may be used with both the .SETS and
 .IF directives in the form:-

		  .SETS  S1  "ABCDEFG"
		  .SETS  S2  S1[1:3]

 where S2 is set to "ABC" (3 characters starting at character 1).  Strings
 may be combined with the concatenation operator (+) to form a string
 expression such as:-

 		  .SETS  S3  S1+"B"+S2[1:3]
2	SUBSTITUTION
 
    If SUBSTITUTION is enabled (.ENABLE SUBSTITUTION) the string or numeric
 symbol name enclosed in single quotes (') is replaced with its assigned value.
 When a numeric symbol is substituted into a string, the type (octal or decimal)
 is determined by the value assigned via an .ASKN or .SETN directive.
2	SWITCHES
    The INDIRECT FILE PROCESSOR supports four switches which may
 be appended to any indirect command file sent directly to AT.
 
	/TR 	Indicate  that a trace of each processed command
		line is to be displayed at TI: (good for debugging).
	/DE	Delete the command file after processing.
	/MC	Send the commands to MCR
	/LI	Print MCR commands on TI:
 
    The defaults are /NOTR, /NODE, /MC , /LI
2	SYMBOLS
 
     There are three symbol types: LOGICAL, STRING, NUMERIC.
 A Logical symbol may be either true or false.  A String symbol may have up
 to 80 ASCII characters.  A Numeric symbol is assigned a value in the range
 of 0-65535(10) and may be defined as either decimal or octal.

     A symbol's type is defined by the first assignment directive that assigns
 a value to the symbol.  Subsequent assignments may assign a different value,
 but cannot redefine the symbol type.
 
    In addition a symbol may be either local or GLOBAL.  A local symbol,
 is erased when a command file is chained to from another.  However, the
 value of global symbols are preserved.  If global symbols have been
 enabled (.ENABLE GLOBAL), then symbols preceded by a $ become
 global symbols.
2	.ASK
 
	.ASK	Ask a question and wait for reply
 
	.ASK  ssssss txt-string
 
	where:	ssssss	   = 1 - 6 character symbol to be assigned a
			     true/false value.
		txt-string = any ascii string of characters preceded 
			     by a blank.  The maximum length is 70 characters.

	When executing a .ASK directive, the processor displays txt-string
	prefixed by an asterisk and suffixed with "? [Y/N]:".

	The processor recognizes only 4 answers to a .ASK directive.
	1. Y<CR> - set symbol  ssssss to true.
	2. N<CR> - set symbol  ssssss to false.
	4. <CR>  - set symbol false.
	4. <ESC> - set symbol ssssss to true and set special logical symbol 
		   <ESCAPE> to true if and only if escape recognition has been
		   enabled.

	For help on .ASKN type "HELP AT ASK N"
	For help on .ASKS type "HELP AT ASK S"
3	N
 
	.ASKN	Ask for definition of Numeric symbol.
 
	.ASKN ssssss txt-string
	.ASKN[low:high] ssssss txt-string
	.ASKN[::def] ssssss txt-string
	.ASKN[low:high:def] ssssss txt-string
	(brackets are required syntax)
 
	Where:	low:high   = inclusive limits for response.
		def	   = the default value.
		ssssss     = the 1 to 6 character symbol to be assigned a value.
		txt-string = any ascii string of characters preceeded 
			     by a blank.  The maximum length is 70 characters.
 
	The range and default values are assumed to be octal unless specified
	with a trailing period (.).  The default type for the input value is
	decimal if either the range or default values are decimal, and octal
	otherwise.  The response may be forced to octal by preceding the value
	with a pound sign (#) or forced to decimal by a trailing period (.).
	The type of the response (octal/decimal) determines the type of the
	symbol.  To force a decimal default without specifying explicit range
	or default use the construction:
		.ASKN [::0.] A ...

	When executing a .ASKN directive the processor displays txt-string
	prefixed by an asterisk and suffixed with an expression of the form
	" [x R:low-high D:def]:" where:
		x         = O if default radix is octal, D if decimal.
		low-high  = the specified range, and is only present if a
			    range was specified.
		def       = the specified default, and is only present if a
			    default was specified.
3	S
 
	.ASKS	Ask for a definition of a string symbol
 
	.ASKS  ssssss  txt-string
	.ASKS [low:high]  ssssss txt-string
	(brackets required syntax)
 
	where:	ssssss     = 1-6 character symbol to be assigned to a value.
		txt-string = any ascii string of characters preceded by
			     by a blank.  The maximum length is 70 characters.
		low:high   = the inclusive limit for the number of characters 
		             allowed in the response string.

	When executing a .ASKS directive the processor displays txt-string
	prefixed by an asterisk and suffixed with an expression of the form
	" [S R:low-high]:" where

		low-high = the specified range for number of characters, and
			   is included only if a range was specified.
2	.BEGIN
	#.END
2	.CHAIN
 
	.CHAIN	Continue processing using another file.
 
	.CHAIN filespec[/switches]	(brackets not part of syntax)

	where:	filespec = the name of the new command file
		switches = any of /DE, /TR, /MC, /LI

	Closes the current indirect file and erases all local symbols and
	then opens a new command file.  (Note however that data files are not
	closed).
2	.CLOSE
 
	.CLOSE	Close Secondary Output File.

	.CLOSE	[#n]

	Close the specified output file (file 0 if #n is omitted).
2	.DATA
 
	.DATA	Output Data to a Secondary File.

	.DATA [#n]   text-string

	Output a line of data to the file open on channel #n.
2	.DEC
 
	.DEC	Decrement a Numeric Symbol

	.DEC ssssss

	Decrement the numeric symbol ssssss by one.
2	.DELAY
 
	.DELAY		Delay execution for a specified period of time.
 
	.DELAY nnu

	where:	nn = Number of time units to delay.
		 u = T - ticks;
		     S - seconds;
		     M - minutes;
		     H - hours.

	The value of nn is taken to be octal if no decimal point (.) 
	is present.
2	.DISABLE
	#.ENABLE
2	.ENABLE
 
	.ENABLE/.DISABLE	Enable/Disable Processing Options

	.ENABLE/.DISABLE SUBSTITUTION	(Initially disabled)
	.ENABLE/.DISABLE QUIET		(Initially disabled)
  	.ENABLE/.DISABLE DATA [#n]	(Initially disabled)
  	.ENABLE/.DISABLE LOWERCASE	(Initially enabled)
  	.ENABLE/.DISABLE GLOBAL		(Initially disabled)
  	.ENABLE/.DISABLE ESCAPE		(Initially disabled)
 
	SUBSTITUTION - If enabled the processor substitutes a string for
		any symbol enclosed in single quotes (').
	QUIET - If enabled, and the system supports Parent/Offspring Tasking,
		then MCR commands are not echoed on the terminal.
	DATA - If enabled all subsequent lines (up to a .DISABLE DATA) are
		output to the secondary file open on channel n (0 if not
		specified).
	LOWERCASE - If disabled any lowercase characters typed at the terminal
		in response to a .ASKS directive are converted to uppercase.
	GLOBAL - If enabled all symbols that begin with a dollar sign ($) are
		defined as global to all levels of indirect file nesting, and
		across .CHAIN directives.
	ESCAPE - If enabled then <ESC> is permitted as an answer to a .ASK,
		.ASKN, or .ASKS directives, and the special symbol <ESCAPE>
		is set accordingly.
2	.END
 
	.BEGIN/.END	Begin/End Blocks.

	.BEGIN/.END blocks are used for defining symbols only within the block
	defined by the .BEGIN and .END directives.   All local symbols defined
	within the block will be undefined after the next .END is encountered. 
	All local symbols defined outside the block are defined within the
	block and retain their definitions after the next .END.  A .ERASE LOCAL
	command erases only those local symbols within the block.   No .GOTO
	may branch into or out of a block but .GOTOs may branch across nested
	blocks.  A .GOSUB saves the current block context and scans down the
	file looking for the first occurence of the subroutine label.  Any
	intervening .BEGIN's or .END's are ignored.  The .RETURN directive
	restores the block context.
2	.ERASE
 
	.ERASE	Delete Symbols.

	The directive .ERASE LOCAL or .ERASE GLOBAL erases (removes from the
	symbol table) all LOCAL or GLOBAL symbols respectively.  If the .ERASE
	LOCAL directive is issued from within a .BEGIN / .END block, only those
	local symbols defined within the block are erased.
2	.EXIT
 
	.EXIT	Exit Current Command File.

	.EXIT [status]		(brackets not part of syntax)

	The .EXIT directive terminates processing of the current command file
	or Begin-End block and returns control to the previous level command
	file or, if the directive is executed within a block, to the line
	following a .END directive.
	The directive allows you optionally to specify a value to copy into
	the special symbol <EXSTAT>.
2	.GOSUB
 
	.GOSUB	Call a Subroutine

	.GOSUB  label

	Jump to subroutine whose starting point is marked with the label.
	When a .RETURN is encountered, return to the next statement following
	the .GOSUB.
2	.GOTO
 
	.GOTO	Branch to a label.
 
	.GOTO	label

	Branch to a label, where label is any  of the labels in the command
	file.  .GOTO cannot branch out of, or into, a Begin-End block.
2	.IF
 
	.IF	Test if symbol meets specified condition
 
	.IF ssssss  relop expr Command

	where:	ssssss    = 1-6 character symbol name
		relop	  = one of the following relational operators
			    EQ or =   - equal to
			    NE or <>  - not equal to
			    GE or >=  - greater than or equal to
			    LE or <=  - less than or equal to
			    GT or >   - greater than
			    LT or <   - less than
		expr	  = expression of same type as symbol
		Command   = indirect file processor command (.GOTO, etc)
			    MCR command, etc.
 
	.IF clauses  may be combined into elaborate tests using the
	logical operators .OR and .AND to combine various types
	of IF clauses.  
 
	For help on .IFACT type "HELP AT .IF ACT"
	For help on .IFDF type "HELP AT .IF DF", etc.
3	ACT
	#NACT
3	DF
	#NDF
3	F
	#T
3	INS
	#NINS
3	LOA
	#NLOA
3	NACT
 
	.IFACT/.IFNACT	     Test if task is active(not active)
 
	.IFACT tttttt  Conditional Command
		Execute Conditional Command if task tttttt is active.
 
	.IFNACT tttttt Conditional Command
		Execute Conditional Command if task tttttt is not active.
2	NDF
 
	.IFDF/.IFNDF	Test if Symbol is Defined(not defined)
 
	.IFDF  ssssss Conditional Command
		Execute Conditional Command if symbol ssssss is defined.
	.IFNDF ssssss Conditional Command
		Execute Conditional Command if symbol ssssss is not defined.
2	NINS
 
	.IFINS/.IFNINS		Test if task is installed(not installed)
 
	.IFINS  tttttt Conditional Command
		Execute Conditional Command if task tttttt is installed.
	.IFNINS tttttt Conditional Command
		Execute Conditional Command if task tttttt is not installed.
2	NLOA
 
	.IFLOA/.IFNLOA		Test if Driver is Loaded(not loaded)
 
	.IFLOA  dd:  Conditional Command
		Execute Conditional Command if the driver for dd: is loaded.
	.IFNLOA dd:  Conditional Command
		Execute Conditional Command if the driver for dd: is not loaded.
2	T
 
	.IFT/.IFF		Test if condition is true or false
 
	.IFT ssssss  Conditional Command
		Execute Conditional Command if symbol ssssss is true.
	.IFF ssssss  Conditional Command
		Execute Conditional Command if symbol ssssss is false.
2	.INC
 
	.INC	Increment a Numeric Symbol
 
	.INC ssssss

	Increment the symbol ssssss by 1.
2	.ONERR
 
	.ONERR	Branch to label on detecting an error.

	.ONERR	label

	If the processor detects one of the following errors:-

	- Task not installed in system (.XQT, .WAIT, .IFACT, .IFNACT)
	- Undefined symbol
	- Bad syntax (.XQT, .WAIT, .DELAY)
	- Unrecognized command
	- String substitution error
	- Symbol type error (.IF, .IFT, .IFF, .INC, .DEC)
	- Redefinition of a symbol to a different type (.ASK, .ASKN,
		.ASKS, .SETT, .SETF, .SETN, .SETS)
	- Data File error (.OPEN, .OPENA, .DATA, .CLOSE, between .ENABLE
		DATA and .DISABLE DATA)

	control passes to the line containing the specified label.
2	.OPEN
 
	.OPEN	Open Secondary File for Output

	.OPEN  [#n]  filename		(brackets not part of syntax)

	Where filename is the name of file to be created, n specifies which
	of 4 possible file channels (0-3) to use (defaults to 0 if #n
	not specified).  The default extension for the file name is .DAT.

	For help on .OPENA type "HELP AT .OPEN A"
	For help on .OPENR type "HELP AT .OPEN R"
3	A
 
	.OPENA	Open Secondary File for Append

	.OPENA [#n] filename		(brackets not part of syntax)

	Where filename is the name of a file to be opened for append, and
	where n specifies which of 4 possible file channels (0-3) to use
	(defaults to 0 if #n not specified).  If 'filename' does not exist
	it is created.  The default extension name is .DAT.
3	R

	.OPENR	Open Secondary File for Read

	.OPENR [#n] filename		(brackets not part of syntax)

	Where filename is the name of the file to be opened for append, and
	where n specifies which of 4 possible file channels (0-3) to use
	(defaults to 0 if #n not specified).

	This feature is currently not supported by DEC and is not documented
	in the 'MCR Operations' manual.
2	.PARSE 

	.PARSE	Parse a string variable

	Strings may be parsed into substrings using the .PARSE statement.
	The statement has the form:

		.PARSE <string> <control string> <var1> <var2> ... <varn>

	The string will be decomposed into substrings as specified by the
	control string, and the substrings stored in the specified variables.
	The first character of the control string delimits the first
	substring, the second character of the control string delimits the
	second substring, and so on.  The last character of the control string
	will be repeated if the number of destination variables exceeds the
	length of the control string.  If there are more variables specified
	than substrings, the additional variables will be set to null strings.
	<STRLEN> will contain the actual number of arguments processed
	(including explicit null arguments).

	Note that the last output variable will contain the trailing part of
	the source string that would not fit in any of the other output
	variables.

	For an example, type "HELP AT .PARSE EXAMPLE"
3	EXAMPLE

	An example of the usage of the PARSE statement is:

		.PARSE COMMAN " ," FILE A1 A2 A3 A4 A5

	Given that COMMAN contains "TESTFILE IND,MCR,,LOA" the results would
	be:

		FILE=	TESTFILE
		A1=	IND
		A2=	MCR
		A3=	Null
		A4=	LOA
		A5=	Null

		<STRLEN> would contain a 5.

	Note that the explicit null argument is counted in <STRLEN>.

	This feature is currently not supported by DEC and is not documented
	in the 'MCR Operations' manual.
2	.PAUSE
 
	.PAUSE		Pause for operator action.
 
	.PAUSE

	The operator must type UNSTOP AT. to start AT. going again.
2	.READ

	.READ	Read a line from an input file

	.READ [#n] ssssss		(brackets not part of syntax)

	where:	n	= file channel number (0 if omitted)
		ssssss	= a string variable

	To read from a data file, the file must first be opened successfully
	using the .OPENR statement.  Records may then be read using the .READ
	statement until either <EOF> comes true, or <FILERR> returns an error
	code.  When processing is complete, the file should be closed using
	a .CLOSE statement.

	The .READ statement is similar in format to the .DATA statement,
	except that instead of having as its argument the text to be written
	out to a file, the argument is a string variable.  The entire record
	will be written into the string variable.  An error will occur if the
	record is longer than 80. characters.  If an error occurs while reading
	a file, the variable will be unchanged from its previous state.

	The <EOF> variable is only set by the ".READ" statement.  This means
	specifically that its state is indeterminate following a ".OPENR"
	statement.  If an end-of-file has occurred, both <EOF> and <FILERR>
	will be set to indicate the end-of-file.

	For an example using .READ type "HELP AT .READ EXAMPLE"

	This feature is currently not supported by DEC and is not documented
	in the 'MCR Operations' manual.
3	EXAMPLE

	The following indirect command file routine will list a file on
	the terminal:

		.OPENR FILE
		.IF <FILERR> NE 1 .GOTO ERROR

	.LOOP:	.READ A
		.IFT <EOF> .GOTO DONE
		.IF <FILERR> NE 1 .GOTO ERROR
	; 'A'
		.GOTO LOOP

	.DONE:	.CLOSE
2	.RETURN
 
	.RETURN	Return from a subroutine

	.RETURN

	Return to the next statement following the .GOSUB directive that
	initiated the directive. 
2	.SETF
	#.SETT
2	.SETN
 
	.SETN	Set Symbol to Numeric Value
 
	.SETN ssssss  numexp
 
	where:	ssssss   = 1-6 character numeric symbol
		numexp	 = a numeric expression (no embedded blanks
			   or tabs allowed).
2	.SETS
 
	.SETS	Set Symbol to String Value
 
	.SETS ssssss strexp
 
	where:	ssssss   = 1-6 character string symbol
		strexp   = any string expression
2	.SETT
 
	.SETT/.SETF	Set a symbol True or False
 
		.SETT ssssss
	or	
		.SETF ssssss
 
	where:	ssssss is a 1-6 character logical symbol being set.
2	.STOP
 
	.STOP	Terminate Command File Processing

	.STOP	[value]		(brackets not part of syntax)

	The .STOP directive immediately terminates command file processing
	and exits.  It allows you optionally to set the exit status for
	AT. execution.
2	.TEST
 
	.TEST	Test String Symbol 
 
	.TEST ssssss

	where:	ssssss is a string symbol.
 
	The .TEST directive places the length of the string into
	<STRLEN>, and sets the special logical symbols <ALPHAN> and <RAD50>
	according to the type of characters in  ssssss.

	For help on .TESTFILE type "HELP AT .TEST FILE"
3	FILE

	.TESTFILE	Test to see if file exists

	The TESTFILE statement may be used to determine if a specific file
	exists, or to determine translations of assigned devices.  The
	format of the statement is:

		.TESTFILE <file specification>

	The outputs of this statement are the <FILSPC> and <FILERR> special
	symbols.  <FILSPC> returns the fully expanded file specification, and
	<FILERR> returns the FCS status code from the lookup.

	If no filename is included in the file specification, only device
	translation will be performed.

	For several examples, type "HELP AT .TESTFILE EXAMPLES".

	This feature is currently not supported by DEC and is not documented
	in the 'MCR Operations' manual.
3	EXAMPLES

	An example of using the "TESTFILE" statement for logical device
	translation:

		.TESTFILE TI:

	will return:		<FILLERR> = 1.
				<FILSPC> = TT010:

	An example of using the "TESTFILE" statement for file information:

		.TESTFILE MP:IND.MAP

	if the file exists:	<FILERR> = 1.
				<FILSPC> = DR001:[101,300]IND.MAP;6

	if not:			<FILERR> = 230.
				<FILSPC> = DR001:[101,300]IND.MAP;0
2	.WAIT
 
	.WAIT		Wait for a Task to Finish Execution
 
	.WAIT tttttt	where tttttt is the task name.
 
	If tttttt is omitted the task name defaults to TTnn, where nn is the 
	number of the user's terminal.
2	.XQT

	.XQT	Initiate parallel task execution

	.XQT tsk-name command-string

	where:	tsk-name	= name of task to execute
		command-string	= command-line for task

	Usually the processor passes a command to MCR and waits until the
	command's execution has completed.  However the .XQT directive can
	be used to initiate a task and not wait for it to complete.  Thus,
	for example, one could initiate a compilation, construct a build file
	while it was running, and then wait for it to complete (using .WAIT).

	AT. permits up to 10 successive .XQT directives.
