COMINT Address Specification File Format ----------------------------------------------- Original Rev. 31-OCT-1991 Latest Rev. 29-OCT-1992 This file describes the format of the Address Specification File that is used to generate the binary data for the COMINT Card Address PROM's. The Address Specification File is converted into this binary PROM data by a program called ComAdrs. Inputs: ------- There is one input file called the COMINT Address Specification File. This is an ASCII file. Outputs: -------- There are Three output files. There is one file each for the Mother Board Address, the Card Address, and the Function Address. These files are in the proper binary format to be transfered via Kermit to the IBM-PC PROM programmer (VARIX or Sprint Plus). Rules and Syntax of the COMINT Address Specification File: ---------------------------------------------------------- 1. The COMINT Address Specification File uses the ASCII format. 2. The COMINT Address Specification File is organized as records. No record can be more than 255 characters long. 3. The COMINT Address Specification File is organized into three sections: the Header, the Data Section, and the Trailer. 4. The data section must begin with the characters "Beginning_of_Data_Section" on a line by themselves and the data section must end with the characters "End_of_Data_Section" on a line by themselves. 5. The COMINT Address Specification File starts with a Header area. This may be any number of lines (records) long and may contain any desired information. Typically it will contain information which identifies the file (e.g. the date, description of any special addresses, the list of modifications). 6. The COMINT Address Specification File Trailer section, like the Header, may be any number of lines long and it may contain any information that is useful in identifying and understand the COMINT Address Specification File. 7. The COMINT Address Specification File Data Section is the part of the file that specifies the CBus Addresses that are to be read by the COMINT card when it builds an L1 Data_Block Syntax and Rules for the Data Section of a COMINT Address Specification File: ----------------------------------------------------------------------------- 1. All information in the data section of a COMINT Address Specification File is in decimal format. 2. Any blank lines in the data section will be ignored. 3. Any comment lines in the data section must begin with one of the three following characters: "!" ";" "*" . When one of these three characters is found in a line then all text to the right of this character is assumed to be part of a comment. 4. There are 8192 addresses that may be described in a COMINT Address Specification File. These are numbered 0 through 8191. 5. An address read by the COMINT Card is specified in three parts (the Mother Board Address, the Card Address, and the Function Address. The Mother Board Address and the Function address may be 1, 2, or 3 decimal digits long. In this document the character string "xyz" will be used to indicate one of these 1, 2, or 3 digit addresses. The Card Address may be 1 or 2 decimal digits long. These will be represented in this document by the character string "xy". 6. All data for all of the COMINT address PROM's is initialized to logic LOW and it will remain that way unless specified otherwise in the data section of a COMINT Address Specification File. 7. The information in the Data Section of a COMINT Address Specification File does not need to be written in straight increasing address order but it will be much easier to understand if it is written this way. 8. Only one Address Specification Phrase may appear on a line. Each Address Specification Phrase starts by specifying the PROM address that is being described. This can be 1, 2, 3, or 4 decimal digits long. In this document the PROM address will be represented by the character string "wxyz". 9. An Address Specification Phrase in the Data Section of the COMINT Address Specification File has the following format: The first field in an Address Specification Phrase is the PROM Address. This must have the following format: Adrs = wxyz, The comma is required. Spaces and capitalization are optional. The second field in an Address Specification Phrase is the Mother Board Address. This has the following format: MBA = xyz Spaces and capitalization are optional. The third field in an Address Specification Phrase is the Card Address. This has the following format: CA = xy Spaces and capitalization are optional. The forth field in an Address Specification Phrase is the Function Address. This has the following format: FA = xyz Spaces and capitalization are optional. The four fields in an Address Specification Phrase are separated from one another by space characters. One or more space characters may be used. 10. There is an alternate format for specifying the PROM Address in an Address Specification Phrase. The normal format defines a specific numeric value for the PROM Address in an Address Specification Phrase. The alternate format for specifying the PROM Address instructs the ComAdrs program to use a value for the PROM Address in the current Address Specification Phrase that is 1 greater than the value of the PROM Address in the previous Address Specification Phrase. The syntax for this alternate format is ADRS = +INC, Note that the comma is required. The spaces and capitalization are optional. When using this alternate +INC format for a single Address Specification Phrase or for a block of Address Specification Phrases; it must be proceeded and followed by Address Specification Phrases that use the standard numeric value format for specifying the PROM Address. No PROM Addresses may be skipped with in this sequence of phrases: numeric value phrase, +INC phrase(s), numeric value phrase. 11. In the Data Section of a COMINT Address Specification File a comment may follow an Address Specification Phrase. If there is a comment then it must begin with a comment indicator (i.e. ! ; * ). 12. Examples of legal Address Specification Phrases in the Data Section of a COMINT Address Specification File: Adrs = 2753, MBA = 129 CA = 33 FA = 85 ! Comment about adrs 2753 ADRS = 5891, mba=65 Ca=17 FA=195 ; Comment about this address. ADRS = +INC, MBA= 169 CA= 46 FA= 18 ; Note use of +inc format. ADRS = 5893, mba=65 Ca=17 FA=196 ; Phrase following a +INC phrase 13. The Data Section of a COMINT Address Specification File may contain one or more "Repeat Block" statements. These statements cause blocks of COMINT CBus Addresses, that have already been specified, to be repeated in another section of the COMINT PROM's. Optionally this repeated block may be included in the COMINT PROM's with its Function Addresses offset by a constant value from their original values which were defined with Address Specification Phrases. For example, the COMINT Address Specification File may contain hundreds of lines of Address Specification Phrases to give a detailed description of the the CBus Addresses required for reading the Current Beam Crossing data and then, all of the CBus Address required for reading the Previous Beam Crossing data may be specified by using a two line Repeat Block statement, with a Function Address offset of -128. The Repeat Block statement specifies the following: The beginning and ending PROM Addresses of the block that will be repeated (i.e. the copy source). The beginning and ending PROM Addresses where the block will be copied to (i.e. the copy target). and the Function Address offset that will be used when making the copy of the repeated block. Both the beginning and ending PROM Addresses of the target area where the repeat block will be copied to are required in the Repeat Block statement. Both addresses are required to verify that the author of the COMINT Address Specification File understands the full range of PROM addresses that will be occupied by the repeat block. All Address Specification Phrases that describe the source PROM Addresses for the repeat block must appear in the COMINT Address Specification Files before the Repeat Block statement appears. The following is an example of a Repeat Block statement. A comment may be included after either line of the Repeat Block statement. Any comments must begin with a comment indicator character. The two lines of the Repeat Block statement must be adjacent in the COMINT Address Specification File. Either a plus sign "+" or else a minus sign "-" is required before the Function Address Offset value. Repeat Block Beginning with PROM_Adrs wxyz through PROM_Adrs wxyz Copied to PROM_Adrs wxyz through PROM_Adrs wxyz with FA Offset of -pqr 14. The Data Section of a COMINT Address Specification File may contain an "Invert Card Address PROM MSB" statement. This statement forces the most significant bit of the Card Address PROM to be inverted. Note that the most significant bit of the CBus #1 Card Address PROM is used for the End_of_Data_Block_Flag and that it is not part of the Card Address information. This statement allows the End_of_Data_Block_Flag to be inverted so that it will normally be at a voltage high level and just pulse to a voltage low level for one address at the end of the Data Block. An "Invert Card Address PROM MSB" statement may be included anywhere in the Data Section of an Address Specification File but it would be best to put it at the end of the file along with the Address Specification Phrase which describes the End_of_Data_Block_Flag. 15. The next to the Most Significant Bit of the CBus #1 Card Address PROM is used for the special function of signaling the VME Transfer Computer when all of the Current Beam Crossing data has been read out and the Data Block Builder is starting to read the Previous Beam Crossing data. The two high order bits of the Card Address PROM are not part of the 6 bit Card Address. Note that this next to MSB signal line may be used to signal the VME Transfer Computer at other points during the Data Block Building cycle e.g. when it is far enough into the Data Block Building cycle that it is certain that there will not be a Level 1.5 reject. In the data section of an Address Specification File there are two phrases which are used to control the state of the next to MSB of the Card Address. They are: Start Setting Card Address PROM Next to MSB High at Adrs = wxyz Start Setting Card Address PROM Next to MSB Low at Adrs = wxyz There are special rules for using these Start Setting Card Address PROM Next to MSB phrases: They must appear at the very end of the Data Section of the Address Specification File after all of the Address Specification Phrases and any Repeat Block phrases have been made and just before the End_of_Data_Section statement. The Start Setting Card Address PROM Next to MSB phrases are all grouped together at the end of the Data Section (instead of being distributed through out the Data Section) so that it is easy to find them all if it is necessary to make a change in the programming. Unlike Address Specification Phrases (which may specify a PROM Address only once) the Start Setting Card Address PROM Next to MSB phrase may specify a PROM Address for a second time (the first time being when it was specified in a Address Specification Phrase). The argument of the "Adrs =" part of a Start Setting Card Address PROM Next to MSB phrase must be of the numeric PROM Address type and not of the alternate +INC PROM Address type. They must appear in increasing value in the Data Section of the Address Specification file. Unlike the Address Specification phrases which effect only one PROM Address the Start Setting Card Address PROM Next to MSB phrase effects all PROM Addresses starting with the one specified through the end of the PROM. For example "Start Setting Card Address PROM Next to MSB HIGH at Adrs = 1234" will set the Card Address PROM next to MSB high for all PROM Addresses 1234 through 8191. Recall that the Card Address PROM Next to Most Significant Bit is just like the Card Address most significant bit in that when a Data Block is NOT being built, and thus address PROM's are disabled and not driving the bus, then the output of from the Card Address PROM Next to MSB will be high. Thus the active state (which flags the VME Transfer Computer that it should do something) must be the low state. Program design and layout: -------------------------- 1. All symbols that must be shared between modules are kept in a common section. This common section is put in each program module that needs it with an Include statement. 2. The ComAdrs program has two display formats. The "SHORT" format is used for normal operation and the "FULL" format is used to understand problems and special conditions. 3. The ComAdrs program will check the range limits on data that it reads from the COMINT Address Specification File. ComAdrs will check that the PROM Address is within the range [0:8191] and it will verify that a given PROM Address is specified only once. When ComAdrs finds a single or block of Address Specification Phrases that use the alternate +INC format for specifying the PROM Address it will verify that the first standard format (definit numeric value) PROM Address that it finds following the alternate format phrase(s) does fit into the sequence of PROM Addresses that it has been generating for the alternate format phrases. ComAdrs will check that the Mother Board Address is a legal MBA. The legal MBA's are: 57, 65, 66, 68, 71, 105, 106, 129, 130, 132, 135, 153, 154, 169, 170, 171, 172, 175, 201, 202, 204, 207, 209, 225, 228, and 249. In addition to these addresses, the MBA of 0 will be allowed. ComAdrs checks that the Card Address is in the range [0:63]. In addition the CA's of 64, 128, and 192 will be allowed for setting the high order bits of the CA PROM. ComAdrs checks that the Function Address is in the range [0:255] During the processing of a Repeat Block statement the above checks are made and in addition it is verified that: All of the source PROM Addresses for the Repeat Block copy have already been defined with Address Specification Phrases. And that no part of the PROM Address target area of the Repeat Block copy has already been defined in any Address Specification Phrases. And that no part of the PROM Address target area of the Repeat Block copy is subsequently redefined in any additional Address Specification Phrases. And that All Function Addresses after being modified by the optional Function Address offset are still with in the legal Function Address range [0: 255]. 4. ComAdrs checks that no Address Specification Phrase(s) or Repeat Data Block phrase(s) follows the first Start Setting Card Address PROM Next to MSB phrase that it finds in the Data Section of an Address Specification File. ConAdrs also checks to verify that the argument of the "ADRS =" part of the Start Setting Card Address PROM Next to MSB phrases appear in increasing value in the Data Section of the Address Specification File. Because a large block Card Address PROM Addresses will need to have their next to MSB set high, no warning message will be generated when this bit is found high.