Required Fields

Specifying Fields

Specifying ROM words

At times it may be desirable for the value of a certain field to specified by every "word" instruction. For example, some microcode sequencers require that a "next address" be specified with each instruction. In such a case it is possible to associate a field with a position in the operand field of the "word" instruction. To clarify this, consider the following instruction.
word abc,def,ghi
The command "abc" is at command-position 0, "def" is at command-position 1, and so forth. One associates a field with a certain command position by specifying the "cmdpos" parameter on the "field" statement. The following is an example.
flda: field width=5,position=0,cmdpos=0

fldb: field width=5,position=5,cmdpos=1

fldc: field width=5,position=10,cmdpos=2


Once these declarations have been made, each "word" statement must have at least three operands. These three operands must be either numbers or expressions that specify the value of the corresponding fields. The first three operands must not be of the form "expression->field_name". The following is a more complete example.
flda: field width=5,position=0,cmdpos=0

fldb: field width=5,position=5,cmdpos=1

fldc: field width=5,position=10,cmdpos=2

word 3,7,9

word a+b,c,0x5


A required operand may be forced to its default value by specifying a null value for the operand. The following statement specifies null values for three required operands.
word ,,

As this example illustrates, a null value is simply an omitted value, with the requisite commas still in place.