These are the commands accepted by the 7094 emulator scripting system.
The syntax is free format, in that line breaks may appear between terms,
except that string literals inside quotes must be contained on a single line.

The syntax defintions given below are described using the following specifiers:-

* All items must be given in the order shown, in sequence from left to right.

* Words in capital letters, or characters inside double quotes represent
keywords or symbols that are to be specified literally as shown.

* Items enclosed in square brackets are optional, and need not be specified.

* Items separated by the OR symbol "|", indicate a choice.
One and only one of the items shown must be specified.

* Items consisting of several subterms may be grouped together inside
parentheses for clarity, indicating that if the group is specified at all,
all of its terms are involved in the syntax.

* An asterisk or a digit preceding a group indicates it can be specified a
number of times, but must be given at least once. Such groups will also
contain a "," term, indicating that multiple specifications must be
separated by a comma.

* Common subterms used in several commands are given in lower case and enclosed
in angle brackets. The syntax for these items is given after the command
definitions.

Emulator Configuration
  CONFIG SET CHANNELS ["="] <number>
  Sets the number of emulated channels. Must be between 1 and 8.
  If the specified value is lower than the current number of channels,
  any tapes devices on the removed channels are also removed.

  CONFIG ADD TAPE ["="] <device addr>
  Adds a tape drive at the specified address.

  CONFIG DEL (TAPE ["="] <device addr>) | ALL
  Removes the tape drive at the specified address.

  CORE SIZE ["="] <address>
  Sets the size of emulated core storage to the specifed value which must be
  between 4096 and 32768.

  SET SENSESW <number>|ALL ON|OFF
  Sets a specified sense switch, or all sense switches, to be On or Off.


Emulator Control
  PRESS RESET|CLEAR|START|LOADCARD|LOADTAPE
  Simulates pressing the specified main console button.

  ADRSTOP (["=" <address> [COUNT "=" <number>])|OFF
  Sets or removes an instruction fetch address stop at the specified address.
  An optional count value allows the address to be reached a number of times
  before actually causing an address stop.

  CORE "[" <address> "]" "=" <number>
  Sets the value of the specified Core storage word to the specified value.


Emulator Monitoring
  CHKICTR <address>
  Checks that the emulator instruction counter contains the value specified,
  and displays an error if it doesn't.

  TRACE ON|OFF
  Turns instruction and channel tracing On or Off.

  PLOT *(ON|OFF|CLEAR [","])
  Controls a gimmicky window that shows core storage activity graphically.


Device Control
  (LOAD|MOUNT) (TAPE <tape ref>)|(READER <file spec>)
  Loads the contents of the specified PC file to the reader or the specified
  tape drive. LOAD and MOUNT are synonyms.

  RELOAD (TAPE <tape ref>)|READER
  Reloads the specified device with the same PC file that was specified
  previously using the LOAD/MOUNT command.

  REWIND (TAPE <tape ref>)|READER
  Repositions the specified device to the start of its current data contents.

  READER CLEAR|(CARD <string>|EOF)|(LOAD <fileSpec>)
  Clears the data contents of the specified device.
  Appends a card with the specified text, or an EOF card.
  Appends card images from a text files.

  SAVE PUNCH|PRINTER|(TAPE <taperef>) [TO] <file spec>
  Save the current data contents of the specified device to the PC file
  specified.

  ZAP READER|(TAPE <taperef>) "[" <number> "]" "=" <number>
  Modifies the data contents of the specified device. The byte at the data
  position given inside the square brackets is changed to the given value.

  SET TAPE <tape ref> WRPROT ON|OFF
  Sets or resets the specified tape drives write protect status.


Display Control
  SHOW|HIDE [WINDOW "="] *(<window ref> ","}
  Shows or hides the specified emulator window.

  WINDOW <window name> *(TOP|LEFT|WIDTH|HEIGHT ["="] <value> ",")
  Sets the position and/or size attributes of the specified emulator window.

  DISPLAY *(<string>|SPACE|(OPTION "(" <string> ")"))
  Displays a window containing a line for each of the items specified, and
  then waits for a response from the user.
    SPACE insert a blank line
    OPTION inserts a line of bold text that can be clicked by the user.
  The displayed window always includes a "CANCEL" button to terminate the
  script, and will also contain a "CONTINUE" button if no OPTION items
  were specified.

  PAUSE [<string>]
  Simple command to pause a script and optionally display a message.

  TAPEVIEW (TAPE <taperef>)|([MODE ["="] BIN|BCD)|
           (LINE ["="])|(SAVE [TO] <file spec>)
  Invokes the tape viewer to display the data on the specified tape drive.
  Display mode and line number can be specified, and the result saved to a file.

Scripting Control
  IF <condition> <command>
  Executes the specified command if the specified condition evaluates to TRUE.

  GOTO <label ref>
  Transfers script control to the line in the script file that begins with
  the label specified.

  CALL <label ref> ["(" <string> ")"]
  Transfers script control as a subroutine to the specifed label, with the
  option of passing a single parameter to the called subroutine.

  RETURN
  Returns script control to the line in the script file following the last
  executed CALL command.

  EXEC <script name> [*( "(" <string>|<number> "," ")" )]
  Suspends execution of the current script file and begins executing the script
  file specified. Up to 9 parameters may be passed to the EXECed script.

  EXIT
  Terminates execution of the current script file and resumes execution of any
  script that invoked the current script via the EXEC command. If there is no
  calling script, scripting stops.

  HALT
  Terminates execution of all active scripts, regardless of any nesting of
  scripts via the EXEC command.

  SLEEP <number>
  Suspends execution of the current script for the number of milliseconds
  specified.


Miscellaneous
  TRACE SAVE [[TO] <filespec>]
  Saves collected trace information to the specified file.


Common subterms used in the syntax definitions above.

<number>
A sequence of Decimal or Octal digits.
Generally, octal values are required for 7094 related items such as
addresses, and decimal values for other items such as a window position.

<colour name>
One of the following standard Windows colour names:-
BLACK,WHITE,MAROON,GREEN,OLIVE,NAVY,PURPLE,TEAL,GRAY,SILVER,
RED,LIME,YELLOW,BLUE,FUCHSIA,AQUA,LTGRAY,DKGRAY,INFOBK

<string>
Syntax:  <string> ["+" <string>]
Example: 'fred'+'frog'
A string of characters enclosed in single quotation marks.
The entire string must be contained a a single script file line.
A group of string items can be concatenated to represent a single
string item by joining them with plus signs.

<address>
A number in the range 0 to 32768.

<variable>
Syntax:  "&"(digit "0" to "9")
Example: &1
Indicates a parameter passed to a script file or subroutine.

<condition>
Syntax:  OPTNUM|<number>|<variable>  "="|"<>" <number>
Example: OPTNUM<>3
An expression that evaluates to TRUE or FALSE. Factors may be:-
OPTNUM     - After a DISPLAY command, the ordinal value of
             any OPTION item clicked by the user.
<number>   - A literal numeric value
<variable> - The value of a parameter passed by EXEC or CALL
The factor is expected to be numeric and the value of the condition
is given by the factor being as specified (equal or not equal) to the
numer specified at the end of the condition.

<tape ref>
Syntax:  TAPE [=] ccuuu|Cuu
Example: 01221 or B5
Specifies a tape unit address, using either of two formats:-
CCUUU -  5 digit octal address.
CUU   -  Channel letter and two digit decimal unit number.

<file spec>
Syntax:  SCRATCH|(FILE ["="] <string>)
Example: File='IBSYS.BIN'
SCRATCH indicates no existing file, and will result in a Windows file
name being the tape drive's address plus '.BIN'.
<string> is a standard Windows Path/file specification enclosed
in single quotes.

<window ref>
Identifies an emulator window, and can be any of the following:-
MAIN,CORE,READER,PUNCH,PRINTER,TAPE,TRACE

<script name>
The name of a script file, with an extension of ".EC7".



