!------------------------------------------------------------------------------ ! This file holds a list of CBusIO requests ! Comments start with an exclamation mark ("!") anywhere on a line. ! See end of file for more syntax information. !------------------------------------------------------------------------------ ! Revision: 13-Sep-00 ! This file is a template ! and list of the syntax rules for CBus IO Command Files Bit3_Adaptor: 1 Address_Space: 32 Data_Size: 32 VME_Address: 0x10002000 Write_Value: 0b1111 Read_VME: 0x1234abcd Read_VME: 0x1234abcd Write_Verify: 255 Call_File: \users\default\another.vio !------------------------------------------------------------------------------ ! 13-Sep-00 ! * Recommended file extension is ".VIO" (but not required). ! ! Syntax rules: ! ! - Blank lines are ignored. ! ! - Comments start after an exclamation mark ("!") anywhere on a line. ! ! * Recognized Keywords are (with colon required) ! Bit3_Adaptor: (Index of the desired Bit3 Adaptor Number) ! Address_Space: (Allowed values are 32/24/16/0 for A32/A24/A16/DPM) ! Data_Size: (Allowed values are 32/16/8 for D32/D16/D8) ! VME_Address: (VME Address for VME Write operation) ! Read_VME: (VME Address for VME Read operation) ! Write_Value: (Value to write; Range 0-0xffffffff) ! Write_Verify: (Value to write, then read and compare) ! Call_File: (Recursive call to another file) ! MilliSecond_Sleep: (Suspend execution of the command file) ! ! - Keywords are NOT case-sensitive. ! ! - Each Keyword must be followed by one and only one positive integer Value ! (with the exception of the Called_File Keyword using a character string) ! ! - One or more Keyword/Value pair may appear on the same line. ! ! - a Keyword and its matching Value may be separated by any number of spaces, ! and/or Tabs, but must appear on the same line. ! ! - Successive Keyword/Value pairs may be separated by any number of spaces, ! Tabs and/or Carriage_Returns (blank lines), or comments. ! ! * A Register will be accessed when the "Write_Value", the "Write_verify", ! or the "Read_VME" Keyword is encountered. ! ! * The Index of the Bit3 Adaptor Number (Model 617 or 618) is initialized ! using the edit field of the Dialog Box (like for interactive VME IOs). ! The state of this field is captured before the command file is executed. ! The Index of the Bit3 Adaptor Number (Model 617 or 618) may be overridden ! using the "Bit3_Adaptor:" Keyword. ! The "Bit3_Adaptor:" Keyword may take any Value in the range 0-9, and should ! correspond to an existing Adaptor. The index of the first Bit3 Adaptor is 0. ! The range is limited to 0-9 for first order sanity checking, the user needs ! to know how many Bit3 Adaptor are actually available on the PCI Bus. ! ! * The type of VME cycle performed (A16/A24/A32-D8/D16/D32) is initialized ! using the radio buttons of the Dialog Box (like for interactive VME IOs). ! The state of these buttons is captured before the command file is executed. ! The type of VME cycle performed (A16/A24/A32-D8/D16/D32) may be overridden ! using the "Address_Space:" and "Data_Size:" Keywords. ! The "Address_Space:" Keyword may only take one of 4 Values ! 0 switch to the Dual Port Memory Address Space in the Remote Crate ! 16 switch to A16 (Short IO) Address Space ! 24 switch to A24 Address Space ! 32 switch to A32 Address Space ! The "Data_Size:" Keyword may only take one of 3 Values ! 8 switch to D8 Data Cycles ! 16 switch to D16 Data Cycles ! 32 switch to D32 Data Cycles ! The data is truncated to the specified transfer type. ! ! * The type of VME cycle performed (Supervisory vs Non-Privileged, and Program ! vs Data Access) is always Supervisory Data Access. The state of the ! corresponding radio buttons does not change this default, and there is ! currently no Keyword to override this default. ! ! * The IO Method to the Bit3 Adaptor (Memory Map vs Application Program ! Interface) is always the API method. The state of the corresponding ! radio buttons does not change this default, and there is currently ! no Keyword to override this default. For single Read/Write IOs, as is ! done in command files, there is little difference between the two modes. ! ! * The Flag used to decide to automatically perform a VME Read to the same ! address after each VME Write is initialized using the check box of the ! Dialog Box (like for interactive VME IOs), and there is currently ! no Keyword to override this default. ! The state of this check box is captured before the command file is executed. ! This does NOT affect the behavior of the "Write_Verify:" Keyword, where ! the Data is always Read after each Write. ! ! * If the VME IO Command File isn't called from the interactive Dialog Box, ! but from a Master Command File, the default type of VME cycle performed is ! A32-D16 via Bit3 Adaptor #0 with NO VME Read after VME Write (unless the ! "Write_Verify:" Keyword is used). ! ! - A "VME_Address" Keyword must have been specified before a ! "Write_Value" or "Write_Verify" Keyword may be specified. ! ! * The "Write_Value" keyword causes the specified VME Address to be written ! with the specified value. ! The "Write_Verify" keyword causes the specified VME Address to be written ! with the specified value, then read back and report any value mismatch. ! The "Read_VME" keyword causes the specified register to be ! read, and the value read is reported. ! ! - The "Write_Value" specifies the Data to Write. This value may be specified ! in Decimal (e.g. 15), Hexadecimal (e.g. 0xff), or Binary (.e.g. 0b1111). ! ! - Decimal, Hex, and Binary values may use commas to help readability. ! These commas will be removed during parsing (e.g. 0b,1000,0100,0111,0000). ! No spaces are allowed within any Value string. ! ! - Keyword/Values specified for a previous Register Address are still active ! for subsequent Register Selection until they are explicitly overwritten. ! ! * The "Read_VME" keyword also updates the "VME_Address" ! context, so that a Write_Value or Write_Verify keyword appearing right ! after a "Read_VME" keyword will write to the register that ! was just read. ! ! - The "MilliSecond_Sleep:" Keyword causes the execution of the command file ! to be suspended for the number of milliseconds specified in the associated ! value (integer values only). ! ! - The "Call_File" Keyword causes a recursive call to execute the specified ! file. If the name of the called file includes embedded space characters, ! the whole file name must be enclosed by a pair of double quotes ! e.g. "My File.xyz". ! ! - Full local Keyword/Value context present before the Call_File Keyword ! is still valid after. i.e. Context changes made in the Called file are ! NOT propagated back to the Calling file. ! ! - The syntax rules within a called file are the same as described here. ! The local Keyword/Value context present before the Call_File Keyword ! is imported into the Called File. i.e. You can define some Keyword Values ! in the Calling File which will be valid inside the Called File. ! ! * If "Call_File:" is used, the current Values of "Bit3_Adaptor:", ! "Address_Space:", and "Data_Size:" are propagated into the called file. ! Any change made to these values in the called file(s) will only be valid ! within the called file, and will NOT be propagated back to the calling ! file. !------------------------------------------------------------------------------ ! - Symbol usage in command files: ! ! Symbols may be defined and used in command files. ! A symbol name must start with a dollar sign "$". ! ! A symbol is defined by giving it a numeric value. ! A symbol is defined using a Keyword/Value syntax where the Keyword is ! the symbol's name, starting with its own dollar sign but with an additional ! equal character appended to the end of the symbol name, while the value ! is the desired symbol value. ! e.g. To define a symbol named "$Slot_AONM" and give it a value "5" ! enter the following: ! $Slot_AONM= 5 ! The equal sign "=" is required and must appear directly after the last ! character of the symbol name, with no space or tab in-between. ! Any number of spaces, or tabs may appear between the symbol definition and ! its value, but the symbol and its value must appear on the same line. ! Previously defined symbols can be re-defined to change their value. ! Previously defined symbols cannot be un-defined. ! ! A symbol may be used anywhere a value is required, i.e. in any Keyword/Value ! pair and the symbol value will be substituted. e.g. ! Slot: $Slot_AONM ! A symbol must have been defined before it can be used. ! There are no predefined symbols. ! Symbols are NOT case sensitive. ! Symbol names may include any alpha numeric characters (e.g. _[(}./$< ), ! (but no space, tabs, or end of line). For clarity one should avoid ! using embedded quotation marks, equal signs, colon. ! A symbol value may be used to define another new symbol. ! ! All symbols defined before a "Call_File" Keyword are propagated into ! the Called File. i.e. You can define symbols in the Calling File ! and use those symbols (or modify them) inside the Called File. ! Symbols created or modified inside a Called File are NOT propagated ! back to the Calling file. !------------------------------------------------------------------------------