210 Part 3 The instruction-set processor level: variations in the processor
Section 1 Processors with greater than 1 address per instruction
the a, b, c, and d digits. Ordinarily the a digit is associated with the a position, the b digit with the b position, and the c digit with the g position in an instruction.
When binary digit P22 (or the b position) is used in an instruction to represent extra operation information, the instruction modification digit b is ignored. In the case of input and output instructions, when the various address positions represent machine address locations on the drum, input-output stations, or block lengths, and modification of these addresses is not desired in any case, the corresponding relative addressing digits are ignored.
The purpose of the instruction modification digits is to tell the machine whether or not to modify the twelve binary digits making up the corresponding address position in an instruction by addition of the contents of one or the other of two counters. In the normal case, if the a, b, or c digit is a zero, the twelve binary digits in the corresponding position are interpreted, unchanged, as the binary representation of the machine address of the number word to be processed by the instruction.
If one or more of the a, b, or c digits is a one, the contents of one of two auxiliary address counters is added to the corresponding twelve binary digits to yield a final address usually different from that given by the original twelve-digit portion of the instruction word. The addresses are then said to be relative to the counter.
The two counters involved in the address modification feature of the MIDAC are known as the instruction counter and the base counter. In the normal case, if the fourth instruction modification or d digit is a zero, the contents of the instruction counter will be added to the contents of the various twelve-digit addresses (dependent on the values of the a, b, and c digits) before further processing of the instruction. If the a digit is one and the d digit zero, the contents of the instruction counter will be added to the a address; similarly for b and d digits and b address, etc.
If the d digit is a one, the contents of the base counter will be normally added to the contents of the twelve digits in the a , b , and g positions (again dependent on the values of the a, b, and c digits), before further processing of the results. If the a digit is one and the d digit one, the contents of the base counter will be added to the a address, etc.
The effect of the instruction modification digits may be summarized as follows:
Then the modified addresses a ', b ', and g ' are related to the a , b , and g addresses appearing in the instruction by the following:
In certain instructions addresses relative to one of the two counters may be prohibited. Thus, if in a particular instruction a may be relative only to the instruction counter, then for that instruction
a ' = a + aC0
no matter whether the d digit is a 0 or a 1.
The notation (a '), (b '), or (g ') is used to indicate the word stored in the location whose address is a ', b ', or g '.
The instruction counter is a twelve-binary digit (modulo 4096) counter which contains the binary representation of the address of the instruction which the control unit is processing or is about to process. In normal operation when no change of control operation is being processed, the contents of the instruction counter is increased by one at the completion of each instruction. Thus, normally the next instruction to be processed is stored in the acoustic storage cell immediately following the cell which contains the present instruction.
A change of control operation is one which selects a next instruction not stored in sequence in the acoustic storage. That is, at the completion of such instructions the contents of the instruction counter is not increased by one, but instead is changed entirely.
The base counter is a second twelve-binary-digit counter (modulo 4096), physically identical to the instruction counter, which contains the binary representation of a base number or tally. Unlike the instruction counter, however, the base counter does not sequence automatically, but remains unchanged until a change of base instruction is processed. This counter serves two primary purposes, dependent on the usage to which it is put:
1 It may contain the address of the initial word in a group, thus serving as a base address to which integers representing the relative position of a given word in the group of words may be added by using the address modification digits.