next up previous
Next: Miscellaneous special functions Up: Alan Turing's Manual for Previous: The logical operations


The B-tube.

It will have been noticed that a number of the examples already given involve the formation of an instruction in the accumulator by addition, the copying of this instruction into the list of instructions, and the subsequent obeying of it. This is a rather clumsy process, and appears particularly so when it is desired to add the same number to several `skeleton instructions' to obtain actual instructions. The `B-tube' is primarily a device to enable this to be done more readily. It provides for eight different quantities which may be added to any instruction. One such quantity normally has to be added to each instruction. This could become a nuisance, but we avoid any such difficulty by adopting the convention that normally one of those lines (called B0) is to be zero.

We must therefore extend still further the quantities which go to make up the state of the machine and include the eight four-character lines of the B-tube. These are called B0, ..., B7. We also have to modify considerably the description of the manner in which the `instruction ${\tt\bf I}(\Sigma)$ next to be obeyed' is to be determined from the state $\Sigma$ of the machine. We first carry out the process described for the reduced machine, viz. add 1 to control and take the short line whose name is the resulting quantity. This however is not the instruction itself but what we may call the `presumptive instruction'. This presumptive instruction we will call J. It is a row of 20 digits. This presumptive instruction is to be divided into four parts:

We must next look at the function number part of the presumptive instruction and decide whether it is `B-normal' or `B-exceptional'. The B-exceptional cases are those where digits 14, 18, 19 are all 1, i.e., where the third character is one of T, Z, ..., £ and the fourth one of O, B, ..., £. The next step is to form the `actual instruction'. In the B-exceptional cases this is identical with the presumptive instruction, but in the B-normal cases it is obtained by adding the content of one of the B lines to the presumptive instruction. The number of the B line concerned is given in the B-line part of the presumptive instruction.

It will be seen on looking at the list of equations that quantities B, ${\tt\bf B}'$ appear in certain of them. These are the (before and after) contents of the B line whose number is given in the B line whose number is given in the B line part of the actual instruction. Likewise, S, ${\tt\bf S}'$ are the store lines whose addresses are to be found in the actual instruction and the equations applied are to be determined according to the function number part of the actual instruction.

In addition to the B-lines there is yet another quantity to be included in the state of the machine. This is the one-digit row Q, known as the `B sign flip flop'. Its properties are entirely covered by the equations. It is particularly useful in counting processes.

The B-tube may be considered as having essentially three functions. The primary purpose is the modification of presumptive instructions to give actual instructions. This was the only purpose in the Mark I machine. Since counting operations often go hand in hand with altering the B additives, the Q facility was added, and also the facility for subtracting (TL and TG) from the B lines as well as setting them (TT and TO). By adding the functions TZ and TB it was made possible to use the B tube as a `shunting station' for 20 digit lines. The complexities of the exceptional instructions were made necessary by the fact that when one is setting a B line one does not usually wish the instruction involved to be modified by what is already in the B line in question. However when using the B line as a shunting station, particularly when transferring from a B line to an `indeterminate' position it is necessary that the instruction involved should bring two different B-lines into action, one containing information as to the destination of the content of the other. These cases can be covered by the `B-normal' variants TT, TZ, TL of the more frequently used TO, TB, TG (see p. [*]).

[Once again, here is a list of relevant instructions from the full table:

Function symbol Equations
/T ${\tt\bf C}' = {\tt\bf S}_+$ if ${\tt\bf Q}= 1$
  ${\tt\bf C}' = {\tt\bf C}_+ + 1$ otherwise
TT ${\tt\bf B}' = \{{\tt\bf S}_+\}_0^{19}, {\tt\bf Q}' = \sigma({\tt\bf B}')$
TO as TT, but B-exceptional
TZ $\{{\tt\bf S}_+'\}_0^{19} = {\tt\bf B}$, $\{{\tt\bf S}_+'\}_{20}^{39} = \{{\tt\bf S}_+\}_{20}^{39}$, ${\tt\bf Q}' = \sigma({\tt\bf B}')$
TB as TZ, but B-exceptional
TL ${\tt\bf B}' = \{{\tt\bf B}_+ - {\tt\bf S}_+\}_0^{19}, {\tt\bf Q}' = \sigma({\tt\bf B}')$
TW as TL
TG as TL, but B-exceptional
where $\sigma(X)$ is the most significant bit of $X$. Note also that the ``official'' dummy instruction, , is B-exceptional, so that it does not change the state of the machine regardless of the contents of the B tube; it is the only documented B-exceptional instruction aside from those listed above.]

As an example of the use of the B-tube we have again programmed the process of adding up the lines in page 4 [3 in the original]. We shall make a number of remarks about this routine.

It will be seen that the use of the B tube for the modification of instructions fits very well with its use counting repetitions of an operation. The two are combined in this routine.

On the check sheets we put both the presumptive instruction and the instruction proper in one line in the second column when they differ. There are the alternatives of using two lines, and of having an extra column. The use of an extra line is not very practical as one is liable to copy a long sequence of instructions onto check sheets without noticing that some are only presumptive. If only one line is used this can be rectified with an india-rubber. The extra column would not be sufficiently often used to justify it.

As a space economy measure one can often combine an `addressless instruction' (i.e. one of the instructions //, /L, /W, /G, /V, T:, for which the store line is irrelevant) with a `control transfer number', i.e. the first ten digits of a store line referred to in a `control transfer instruction' (/H, /P, /Q, /O, or /M). This occurs for instance in the case of the short line /@, which contains E@T:. The whole line represents an instruction clearing the accumulator. The appearance of E@ at the beginning of the instruction rather than e.g. // or :: is only relevant to the line as an instruction in that line E@ becomes brightened momentarily during the obeying of this instruction.


E @ T : & / & V E / / \\
/ A Q O & E & @ / / / \\
/ + Q ...
... & A & \\
/ @ / T & : &  \cline{3-3}
/ C / S & S & {\rm Cue} \\
Entered at /@, left at S@
$[\tp{/C}]' = \{ \Sigma_{r=0}^{31}[\tp{/+}+2r] \}_0^{39} $

[Further note: a Q$\alpha$ function symbol is a T$\alpha$ with B7 selected in the B-line portion; see the teleprinter code table on p. [*]. So, for example, QC is a TC operation ( ${\tt\bf A}' = {\tt\bf A}+ {\tt\bf S}$), except that B7 is added to the instruction before it is obeyed.]

& /@/T & & & E @ T : \\
& /C/S & & /C & !!!!!!A/ \\


Make up a routine, with an official account, for the purpose of copying column ¼ onto column D.

next up previous
Next: Miscellaneous special functions Up: Alan Turing's Manual for Previous: The logical operations
Robert S. Thau 2000-02-13