 
		   AT. -- INDIRECT FILE PROCESSOR
 
   The indirect command file processor provides BATCH like capabilities
   for controlling taskbuilds and or any routine set of commands.  It is
   sufficiently complex to serve as a program language. (Similar although
   more sophisticated than a TSO CLIST.)
 
   Directives (Indirect file processor commands) can be used to control
   the logic flow of MCR commands, input data from the user's terminal,
   and create files for future use.
 
   FOR additional information, type:  HELP AT. Keyword
 
   where some available keywords are
 
	 Commandline        Command line to execute an indirect command file
	 Directive          List of indirect file processor commands
	 Expression         Logical, numeric and string variable handling
	 Label              Indirect command file statement labels
	 Symbol             Logical, numeric and string variables
 
2 LABEL
 
 
		     Indirect Command File Labels
 
 
  Any statement in an indirect command file, may have a label.  This label
  is used as a reference point to branch to either forward or backward in
  the file.
 
  A label may contain only alphanumeric characters and a $.  Labels may be
  1-6 characters long; 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
  frequently used labels.
 
 
	Example labels  .APPEN:   .100:   .$QUIT:
 
	Example calls   .GOTO APPEN   .GOSUB 100   .ONERR $QUIT
 
 
2 DIRECTIVE
 
		   Indirect File Processor Directives
 
 .ASK                   Ask the user a question and accept response.
 .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 file.
 .DELAY                 Delay execution for specified time.
 .ENABLE/.DISABLE       Enable substitution, data, global symbol,lowercase,
			or escape recognition.
 .GOTO                  Goto the specified label.
 .GOSUB                 Goto a subroutine and return.
 .IF                    Test of whether a condition is true or false.
 .INC/.DEC              Increment (decrement) a numeric symbol by 1.
 .ONERR                 Branch to a label if error detected.
 .PAUSE                 Pause for operator action.
 .SET                   Set the value of a symbol.
 .TEST string sym       Test length and character type of string symbol.
 .WAIT                  Wait for specified task to exit.
 .XQT                   Start a task but do not wait for it to complete.
 
	 For additional information, type:   HELP AT. keyword
		       (.e.g.  HELP  AT.  .GOSub)
2       .ASK
 
 
 For HELP with .ASKN, or .ASKS type:  HELP AT. Directive ASKS or ASKN
 
 .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 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>  - default symbol  ssssss to false.
	4. <ESC> - set special logical symbol <ESCAPE> to true
		   if and only if escape recognition has been enabled.
 
 
 
2       .ASKN
 
 
	.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.  Octal assumed unless
		     a decimal point present.
	 def       = the default value.
	 ssssss    = the 1 to 6 character symbol to be assigned a value.
 
 
2       .ASKS
 
 
	.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
			     at least one blank.
		low:high   = the inclusive limit for he numbetr of characters
			     response string.
 
 
2       .CHAIN
 
 
	.CHAIN          Continue processing using another file.
 
 
    Closes the current indirect file and erases all local symbols and
    then opens a new command file (however data files are not closed).
 
	format: CHAIN filespecifier/SW    where   /SW is one of the switches
						  /DE, /TR, /MC
 
 
2       .SET
 
			   .SET Directive
 
    In actuality, there is no .SET directive.  In order to set the value
    of a symbol, the 'set' directive must take one of the following forms
    depending on the symbol type.
 
    .SETT/.SETF  Set a symbol True or False.
 
		.SETT/.SETF  ssssss
 
    .SETN   Set Symbol to Numeric Value.
 
	       .SETN ssssss  numexp
 
    .SETS   Set Symbol to STring Value.
 
	       .SETS ssssss strexp
 
     where:  ssssss    1-6 character string symbol
	     numexp    a numeric expression (w/o embedded blanks or tabs)
	     strexp    any string expression
2 .INC
 #.DEC
2 .DEC
 
 
		Increment a Numeric Symbol
 
	.INC ssssss     Increment the symbol ssssss by 1.
 
 
		Decrement a Numeric Symbol
 
	.DEC ssssss     Decrement the symbol ssssss by 1.
 
 
	where: ssssss   1-6 character numeric symbol name
				      -------
 
2       .IF
 
   .IF ssssss  relop  expr  Command   Test if symbol meets specified condition
 
	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.
 
     Further types of IF clauses may be found by typing:
 
	HELP AT.  .IF [.IFACT, .IFDF, .IFINS, .IFLOA, or  .IFT]
3       .IFACT
 
 
	.IFACT/.IFNACT       Test if task is active (or not active).
 
	.IFACT tttttt  Conditional Command
		       Execute Conditional Command if task tttttt is active.
 
	.IFNACT tttttt Conditional Command
		       Execute Conditional Command if task tttttt isn't active.
 
 
3       .IFDF
 
 
	.IFDF/.IFNDF    Test if Symbol is Defined (or not defined).
 
	.IFDF  symbol Conditional Command
	.IFNDF symbol Conditional Command
 
 
3       .IFINS
 
 
	.IFINS/.IFNINS          Test if task is installed (or not installed).
 
	.IFINS  tttttt Conditional Command
	.IFNINS tttttt Conditional Command
 
 
3       .IFLOA
 
 
	.IFLOA/.IFNLOA          Test if Driver is Loaded (or not loaded).
 
	.IFLOA  dd:  Conditional Command
	.IFNLOA dd:  Conditional Command
 
 
3       .IFT
 
 
	.IFT/.IFF               Test if condition is true or false.
 
	.IFT logical-symbol  Conditional Command
	.IFF logical-symbol  Conditional Command
 
 
2       .TEST
 
 
 
	.TEST   Test String Symbol Length.
 
	.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.
 
 
2       .DELAY
 
 
	.DELAY          Delay execution for a specified period of time.
 
	.DELAY nnu      where:  nn = Number of time units to delay.
				 u = T - tics;
				     S - seconds;
				     M - minutes;
				     H - hours.
	The value of nn is taken to be octal if no decimal point (.)
	is present.
 
 
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       .PAUSE
 
	.PAUSE          Pause for operator action.
 
	The operator must type RES tttttt where tttttt is the name of
	the indirect file processor task active at TI: to start .AT going
	again.
 
2       .GOTO
 
 
	.GOTO   label           Branch to a label, where label is any
				of the labels in the command file.
 
2 .RETURN
  #.GOSUB
2        .GOSUB
 
 
 
	.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.
 
 
	.RETURN                 Return to the next statement following the last
				.GOSUB.
 
 
2       .ONERR
 
 
       .ONERR  label        If an error in the logic, syntax, data entry, etc.
			    is detected in processing indirect command file,
			    goto the label specified by the last .ONERR
			    directive.
 
 
2       .OPEN
 
 
	.OPEN  [#N]  filename        (brackets are not part of the syntax)
	Where file name is name of file to be created, N specifies which
	of 4 possible files(0-3) may be open.  If omitted, .OPEN defaults
	to zero.  The default extension for the file name is .DAT.
 
 
2       .CLOSE
 
 
	.CLOSE  [#N]            Close the specified output file (file 0 if
				#N is omitted).
 
 
2       .DATA
 
 
	.DATA [#N]   text-string                Output a line of data to the
						file open on channel #N.
 
2 .XQT
 
 
	.XQT                            Execute an MCR command without
					explicitly for it to finish.
 
 
2 .DISABLE
  #.ENABLE
2 .ENABLE
 
 
   .ENABLE/.DISABLE
 
   For specific help on the .ENABLE directive, type:
 
		HELP AT. .Enable Substitution
				 Data
				 Lowercase
				 Global
				 Escape
 
 
   Note: The .DISABLE directive undoes whatever was done with the
	 .ENABLE directive.
 
 
3      LOWERCASE
 
	If the command .ENABLE LOWERCASE has been issued, values
     entered at the terminal in response to a .ASKS are not converted
     from lowercase to uppercase.
 
3       DATA
 
	If the command .ENABLE DATA #N is given, all lines following
     the .ENABLE DATA are output to the secondary file.
 
3       GLOBAL
 
	If global symbols have been enabled (.ENABLE GLOBAL), then
     global symbols will be preserved across chain boundaries.
 
3       SUBSTITUTION
 
	Substitution must be enabled if one is to substitute an
	input parameter into a command string.
 
    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.
 
3       ESCAPE
 
	If escape sequence recognition is recognized, the logical symbol
    <ESCAPE> will be set true if the answer to a .ASK, .ASKS, or .ASKN is
    answered with an ESCAPE.
 
2       SYMBOLS
 
		     Indirect Command File 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 to 65535(10) and may be defined as either decimal or octal.
 
   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.
 
   Information on special symbols can be found by typing:
 
	 HELP AT. SYMBOLS Logical
			  Numeric
			  String
 
3       LOGICAL
 
			  Indirect Command File
			 Special Logical Symbols
 
 
 <ESCAPE>       True if the last querry was answered with a single escape.
 <DEFAUL>       True if answer to last numeric querry 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.
 
3       NUMERIC
 
			  Indirect Command File
			 Special Numeric Symbols
 
 <MEMSIZ>       Memory size in K words.
 <SYUNIT>       Unit number of system device (SY:).
 <STRLEN>       Length of string entered via .ASKS, or tested with .TEST.
 
3       STRING
 
			Indirect Comman File
		       Special String Symbols
 
 <SYDISK>       Device mnemonic of system device(SY:).
 <UIC>          Current UIC.
 <SYSUIC>       System UIC.
 
2       EXPRESSIONS
 
		    Indirect Command File Expressions
 
 NUMERIC symbols or constants may be combined with another 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 parenthesis 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.
 
 STRING constants are a string of up to 80. printable characters enclosed in
 double quotes (").  Null strings are permitted.  "ABCDE" and "" are both string
 constants.  String constants are assigned with the .SETS and .ASKS directives. s
 They may be used with both the .IF and .SETS directives.
 
	Example:  .SETS  S1  "ABCDEFG"
		  .SETS  S2  S1[4:6]     Sets the string symbol S2 to be EFG
 
 Strings may be combined with the concatenation operator (+).
	Example:  .SETS  S3  S1+"E"+S2[2:3]  Sets S3 to be ABCDEFGEEF
 
2       COMMANDLINE
 
 
		Indirect File Processor Command Line
 
 
       A command file is executed by typing:
 
		      >@filename<.ext></switch>
 
       where:  .ext     file type (.CMD  is the default file type)
	       /switch  is any combination of the following
 
	       /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    Do not send the commands to MCR.
 
		The defaults are /NOTR, /NODE, /MC
 
 
 
 
 
 
