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 - set symbol ssssss to true. 2. N - set symbol ssssss to false. 4. - default symbol ssssss to false. 4. - set special logical symbol 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 , and sets the special logical symbols and 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 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 True if the last querry was answered with a single escape. True if answer to last numeric querry was defaulted. True if last string entered via .ASKS or tested with .TEST contains only alphanumeric characters. True if last string entered via .ASKS or tested with .TEST contains only RADIX-50 characters(alphanumeric characters plus . and $). True if system is mapped. 3 NUMERIC Indirect Command File Special Numeric Symbols Memory size in K words. Unit number of system device (SY:). Length of string entered via .ASKS, or tested with .TEST. 3 STRING Indirect Comman File Special String Symbols Device mnemonic of system device(SY:). Current UIC. 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> 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