Please note, this is archived content and is no longer being updated. Please update your bookmarks and links to point to this permanent URL: http://curation.cs.manchester.ac.uk/digital60/www.digital60.org/birth/manchestercomputers/mark1/documents/progman.html.

Programmers' Handbook (2nd Edition) for the Manchester Electronic Computer Mark II

A.M. Turing, revised R.A. Brooker, October 1952

Chapter 1.   The Logical Design of the Machine and the Instruction Code

1. General remarks on electronic computers.

Electronic computers are intended to carry out any definite rule of thumb process which could have been done by a human operator working in a disciplined but unintelligent manner. The electronic computer should however obtain its results very much more quickly. The human computer with whom we are comparing it may be imagined as supplied with various computing aids. He should have a desk machine, paper to write his results on, and more paper on which is written a detailed account of how the calculation is to be carried out. These aids have their analogues in the electronic computer. The desk machine is transformed into the arithmetical unit, and the paper becomes the "information store" or more briefly the store, whether it is paper used for results or paper carrying instructions. There is also a part of the machine called the control which corresponds to the computer himself. If his possible behaviour were very accurately represented this would have to be a formidably complicated circuit. However we really only required him to be able to obey the written instructions and those can be made so explicit that the control can be quite simple. There remain two more components of the electronic computer. These are the input and output mechanisms, by which information is to be transferred from the outside world into the store and conversely. If the analogy of the human computer is to be maintained these parts would correspond to his ears and voice, by means of which he communicates with his employer.

2. Scales of notation.

The information stored on paper by the human computer will mostly consist of sequences of digits drawn from 0, 1, ..., 9. There may also be other symbols such as decimal points, spaces etc., and there may be occasional remarks in English, Greek letters etc. There may in fact be anything from 10 to 100 different symbols used, and there is no particular need to decide in advance how many different symbols will be concerned. With an electronic computer however such a decision has to be made; the number of symbols chosen is ruled very largely by engineering considerations, and with the vast majority of machines the number is two. The reason for this is that the "scale of 2" matches naturally with the "on-off" property of electronic switching circuits. Machines (e.g., ENIAC) have however been made with 10 different symbols. The number for the MK II machine is two, and the symbols used are 0 and 1.

It is not difficult to see that information expressed with decimal digits can be translated into information expressed with 0's and 1's by some suitable conventions, e.g., we could replace 0 by 0000, 1 by 1000, 2 by 0100, 3 by 1100, 4 by 0010, 5 by 1010, 6 by 0110, 7 by 1110, 8 by 0001, and 9 by 1001.

The scheme that is most economical in 0's and 1's however, and the one adopted for the MK II, is to use the pure binary representation of a number in which the digits, 0 or 1, are the coefficients of successive powers of 2. The most natural convention to choose is that by which the value of a 1 in the rth position from the right hand end is 2r-1, so that e.g., 11001 means 25. This is the closest possible analogue of the ordinary Arabic notation for integers. The convention chosen for use with the Mark II machine is different. The value of a 1 in the rth position from the left hand is 2r-1 so that 25 is represented by 10011 instead of 11001. These facts may be described by saying that the machine uses 'the scale of two with the most significant digits at the right hand end'.

Although the scale of two is appropriate for use within an electronic computer it is not so suitable for work on paper, and it is not possible to avoid paper work altogether. Without attempting to explain the reasons at this stage let us accept that there are occasions when it is desirable to write down on the paper the sequence of symbols stored in some part of the machine. Suppose for instance that the sequence was

10001110111010001001100011100101010101101100100110

The copying of such sequences is slow and very liable to inaccuracy. It is very difficult to 'keep one's place'. It is therefore advisable to represent such a sequence on paper in a different form, not subject to these difficulties. The method chosen is to divide the sequence into blocks of five

10001 11011 10100 01001 10001 11001 01010 10110 11001 00110

and then to replace each block by a single symbol, according to the table below. The above sequence then becomes Z"SLZWRFWN.

        0  00000  /    11   11010  J    22   01101  P
        1  10000  E    12   00110  N    23   11101  Q
        2  01000  @    13   10110  F    24   00011  O
        3  11000  A    14   01110  C    25   10011  B
        4  00100  :    15   11110  K    26   01011  G
        5  10100  S    16   00001  T    27   11011  "
        6  01100  I    17   10001  Z    28   00111  M
        7  11100  U    18   01001  L    29   10111  X
        8  00010  ½    19   11001  W    30   01111  V
        9  10010  D    20   00101  H    31   11111  £
       10  01010  R    21   10101  Y

These symbols are essentially the teleprinter code, except that the combinations 00000, 01000, 00100, 00010, 11011, 11111 which in true teleprint are represented by

no effect, line feed, space, carriage return, figure shift, letter shift
respectively have here been given the representations /, @, :, ½, ", £. These symbols have been chosen so as to enable the upper case of the typewriter to be used throughout.

The user is strongly recommended to learn the above table. In principle it is possible to do without these aids for the machine itself can do all the conversion processes required. In practice it frequently happens that some single number is required in the scale of 32, and it is found less trouble to do the conversion by hand than to use the machine. To convert a decimal fraction to the scale of 32 multiply repeatedly by 32, subtracting and recording the integral part at each stage. This can be done very quickly with a Brunsviga with transfer. The integral part obtained may then be looked up in the above table. See also appendix.

3. The forms of storage used.

The information store in the MK II machine consists of the magnetic store and the electronic store. The information in the magnetic store is of considerable volume viz. 655360 binary digits: in other words it corresponds to paper on which is written 655360 digits each of which might be either 0 or 1. But this information is not particularly readily available. It is (to maintain the analogy) as if it were written in a book. In order to find any required piece of information it is necessary to open the book at the appropriate page. The electronic store has a considerably smaller capacity viz. 10240 digits but this information is much more readily available and is to be compared rather to a number of sheets of paper exposed to the light on a table, so that any particular word or symbol becomes visible as soon as the eye focusses on it.

The information in the magnetic store consists of magnetised areas of nickel on the cylindrical surface of a rotating wheel. Each digit stored is represented by one magnetised area. These 655360 areas are arranged in 256 tracks of 2560 digits each. The centres of the areas forming one track lie in a plane perpendicular to the axis of the wheel (and therefore on a circle). The 256 planes are equidistant; the 2560 digit areas on one circle are not however equidistant. The information in one track is further subdivided into two equal parts, which may be described as the left page and the right page if we continue to follow the simile of the book.

The electronic store.

The information in the electronic store consists of 8 tubes of 1280 binary digits each. A tube thus contains the same amount of information as a half-track or page of the magnetic store. It may also be described as an electronic page. A tube of information is divided into 64 lines of 20 digits each. These digits are stored as charges on the inner surface of the front of a cathode ray tube, the digits of one line forming a straight horizontal segment. (A line is the basic unit of information processed by the machine: lines represent both the numbers and the instructions which tell the machine what to do with the numbers).

The 64 lines of a page are to be regarded as arranged in 2 columns of 32 thus

               0       32
               1       33
               2       34
               3       35
               .        .
               .        . 
               .        . 
               .        . 
              31       63

This is in fact how they are displayed on the monitors of the machine (see photo).

The lines may be numbered consecutively through the 8 tubes. They could be numbered 0,1, ...., 511. However, for reasons which the reader is asked to accept at the moment, the labelling obtained by transforming to the scale of 32, i.e., to the teleprinter code, is used. Thus the lines are known as //, E/, @/, ...., £K. In their geometrical arrangement on the tubes they are as below (1!)

         Tube 0      Tube 1                 Tube 7
         ------      ------                 ------
         //  /E      /@  /A                 /C  /K
         E/  EE      E@  EA                 EC  EK
         @/  @E      @@  @A . . . . . . . . @C  @K
         .   .       .   .                  .   .
         .   .       .   .                  .   .
         .   .       .   .                  .   .
         .   .       .   .                  .   .
	 £/  £E      £@  £A	            £C  £K

Each tube is formed of two columns and the second character describing a line gives the column in which it is to be found.

Associated with each line is a line pair or long line consisting of that line together with the next line. E.g., the lines R/ and J/ form a pair and so do BK and GK. These long lines will be referred to by R/ and BK, i.e., the name of the first line of the pair. There is one exception to this rule: the line pair associated with the last line of each page consists of that line together with the first line of the same page (not the next page). Thus the line pair £E consists of £E and //.

Although the information on the magnetic wheel is arranged geometrically so differently from that in the electronic store it may be found convenient to imagine it as if it were similarly arranged. There is very little to interfere with the illusion. The only convenient method for making the content of a track visible is to copy the track on to a pair of tubes, a process which effectively conceals the true arrangement of the digits of the track. This way of thinking permits us to divide up the magnetic information also into lines or line-pairs. There is a good deal of ambiguity about the naming of these lines, for a page of the magnetic store could be copied onto any one of the 8 electronic tubes. We make no attempt to remove this ambiguity and accept that there are 8 alternative names for a line stored on the wheel.

Two further units of the machine must now be described, the control and the arithmetical unit. Roughly speaking the control interprets lines of the electronic store (i.e., the information held on these lines) as instructions and under their direction causes the arithmetical unit to interpret line pairs as numbers and perform certain arithmetical operations on them. These units will be described in detail.

4. The control.

The control of the machine causes instructions to be selected from consecutive lines of the electronic store and decoded. The instruction will, in general, cause the arithmetical unit to select a number (line pair) and perform some arithmetical operation on it. When this operation has been carried out, i.e., when the instruction has been obeyed, the instruction in the next line is selected, decoded and obeyed. And so on. At the completion of any instruction the control unit contains two quantities, the instruction last obeyed, and the name of the line in which it stands. This latter quantity, called the control number (C), is a 10 (2) binary digit number. Certain kinds of instructions can interrupt the sequential process of selecting instructions and determine instead which instruction is to be selected next. Such instructions are said to cause a transfer of control. Furthermore this transfer of control can be made conditional on the sign (and hence the size) of numbers occurring in the calculation. Thus one of several courses of action can be taken according to how the calculation is proceeding. So far we have mentioned arithmetical instructions and discriminatory instructions. Other kinds of instructions are available which control the input and output units (punched tape reader and teleprinter) and the transfer of large blocks of information from the magnetic to the electronic store and vice-versa.

5. Representation of instructions.

We have already said that the control can interpret the information on a single line as an instruction. It is now necessary to explain in detail how the 20 binary digits of an instruction are made up. It is divided into 4 parts

     (i) digits 0-9 give the address of a line in the store (2)
    (ii) digits 10,11 and 12 are the B-digits (see below)
   (iii) digit 13 is spare.
    (iv) digits 14-19 specify the operation (function digits)(3)

The meaning and use of the B-digits will be described later. At this point it will be sufficient to state that they specify one of eight different lines which has to be added to each instruction before it (i.e., the resulting instruction) is obeyed. This could become a nuisance but we avoid any such difficulty by adopting the convention that normally one of these lines (called B0 and specified by 000) is to be zero. For the present we assume that digits 10, 11, 12 and 13 are all zero.

The address digits (1st 2 teleprint characters) give the name of the line involved in the operation which is specified by digits 14-19. The named line may be intended as a destination for the number in the accumulator, or the number standing in the named line may be the operand. The types of instruction may be classified as follows

        1. Arithmetical instructions
        2. Control transfer instructions
        3. B-tube instructions
        4. Miscellaneous instructions
        5. Magnetic instructions
   

The magnetic instructions are concerned with transferring blocks of information from the magnetic to the electronic store and vice-versa, and operating the input and output devices -- the tape reader and teleprinter. The B-tube instructions will be explained later. The 4th class include instructions which cause the machine to hoot, and to interpret information set up by hand switches on the console.

6. The arithmetical unit.

This unit is similar in its logical design to that of a desk calculating machine. It consists of 2 registers: a 40 (binary) digit register D, and an 80 digit (accumulator) register, A. D is equivalent to the multiplicand register of the desk machine and A is equivalent to the product register. The range of instructions enables numbers to be added to or subtracted from the accumulator or to be multiplied by the number in D and the resulting product added to or subtracted from the accumulator. It is now necessary to explain how the arithmetical unit interprets rows of digits as numbers.

6.1 Representation of numbers.

If we regard a standard number as consisting of 40 binary digits then the product of 2 such numbers will occupy 80 digits, the length of the accumulator. Thus it is possible to regard the row of 40 digits as representing either an integer or a fraction according as to whether the answers are taken from the least or the most significant half of the product. But in whichever way they are regarded the range of instructions enables the arithmetical unit to interpret them as positive or signed numbers in accordance with the following two conventions. On the plus convention the rows of digits are treated as positive integers (or fractions). On the plus-minus convention the most significant digit is used to represent the sign. The following examples illustrate the two conventions (for convenience rows of 5 digits are used in place of the 40 digits of a line pair).

Plus convention.
01010+ = 10             01010+f =  10/32
01011+ = 2601011+f =  26/32
11111+ = 3111111+f =  31/32
00001+ = 1600001+f =  16/32
Plus-minus convention.
01010± = 1001010±f =  10/32
01011± = -601011±f =  -6/32
11111± = -111111±f =  -1/32
00001± = -1600001±f =  -16/32

These conventions are relevant when adding (or subtracting) line pairs to the least significant 40 digits of A (hereafter denoted by L) and also when multiplying numbers. E.g., (still using 5 digits in place of a line-pair) suppose that A contains the row of digits 01011 01100 and the storage location s contains the row 10011. (Hereafter we shall abbreviate such descriptions in the following style: [A] = 01011 01100, [s] = 10011). [s] can be added to the most significant half of A (denoted by M) thus

               L        M
             01011    01100
                      10011
             --------------
             01011    11111

The resulting row of digits is independent of the + or ± interpretation of s. However when s is added to L there are two possibilities thus

  (i)        01011    01100
             10011    00000
             --------------
             11001    11100


and
 
  (ii)       01011    01100
             10011    11111
             --------------
             11001    01100

In the second case the augend is extended by 5 copies (i.e, 40, in the actual machine) of its most significant digit before the addition takes place. These two operations will be described by the equations

[A]' = [A] + [s]+
[A]' = [A] + [s]±

where the dash notation is used to denote the result of an operation. The first example could be described by the equations

    [A]' = [A] + 240 [s],
    [M]' = [M] + [s],
or [A]' = [A] + [s],

the signs being dropped because they are irrelevant.

6.2 The Multiplier.

The operation of the multiplier is fairly closely analogous to multiplication on a desk machine. We have already mentioned that there is a multiplicand register (D) which closely corresponds to the lever system of e.g., a Brunsviga. D is capable of being set to 3.239 (4?) alternative states. The multiplication will normally be done in two steps, the setting of D and the multiplication proper following afterwards. If an instruction is described as a multiplication it is understood to be one of the latter kind, and corresponds to turning the handle of a Brunsviga. The result of the multiplication is to add to the accumulator (or possibly subtract from it) the product of the number referred to in the multiplication instruction and the number set in the multiplicand. As with a desk machine the operation of multiplication does not alter the multiplicand setting, so that if it is desired to do a further multiplication with the same multiplicand it is not necessary to set it again. Another point of similarity with desk machines is that the product register, i.e., the accumulator, is (as already mentioned) of twice the length of a long store line, i.e., of a multiplier or multiplicand. A point of difference is that there is nothing to correspond to the (not particularly helpful) feature by which multipliers may be accumulated in the counting register on a desk machine. It should also be noticed that with a desk machine multiplicands are always positive, and the sign of the product must be determined through the sign of the multiplicand used i.e., to form the product ab with a desk machine one in effect multiplies |a| and b (sgn a). With the computer it is possible to have either sign in the multiplicand and also in the multiplier. It is also possible to add or subtract the product according to the instructions used.

In explaining the detailed significance of the instructions it is convenient to depart from the principle that the content of a part of the machine is a row of digits rather than a number, and to say that the content of D is an integer satisfying

-239 <= D < 240

One may also put (as a definition) Df = 2-40D. This interpretation of D greatly simplifies the equations describing the instructions.

There are two distinct instructions concerned with setting the multiplicand. Their function digits and defining equations are

001110
(/C)     
D' = [s]+
011110
(/K)     
D' = [s]±

Thus for instance with the short register machine if [s] = 01100, then either s, /C or s, /K will make the content D of the multiplicand take the new value D' = 6, but if [s] is 01001, then s, /C will set D' = 18 but s, /K will set D' = -14.

There are four distinct instructions for the multiplication proper, to cover the use of either the 'plus' or the 'plus-minus' convention, and also to allow for the product to be either added to the accumulator or subtracted from it. Their function digits and equations are

000010
()     
[A]' = [A] - D[S]+
010010
(/D)     
[A]' = [A] - D[S]±
000110
(/N)     
[A]' = [A] + D[S]+
010110
(/F)     
[A]' = [A] + D[S]±

These equations will most often be abbreviated by omitting the brackets, thus

    A'=A-DS+
/D A'=A-DS±
/N A'=A+DS+
/F A'=A+DS±

These equations may also be written in the fractional convention as follows.

/C    D'f=S+f
/K D'f=S±f
A'f=Af-DfS+f
/D A'f=Af-DfS±f
/N A'f=Af+DfS+f
/F A'f=Af+DfS±f

6.3. The Arithmetical Instructions.

A list of the arithmetical instructions is given below. Each instruction is known by the pair of teleprint characters given by digits 10-19 where digits 10, 11, 12, and 13 are 0. Thus the instruction with function digits 011100 will be denoted by /U and that with 100100 by T:. The square bracket notation, used above to denote "the content of", is dropped. In every case s, the address referred to, denotes a 40 digit line or line pair.

The example below should clarify any points which are still doubtful in the reader's mind. The long lines are assumed to be of length 5 digits as in previous examples, and the following initial conditions are assumed

[NC] = 01010    [NC]+  = 10[NC]±  = 10 [NC]+f = 10/32[NC]±f = 10/32
[CC] = 11011 [CC]+  = 27 [CC]±  = -5 [CC]+f = 27/32  [CC]±f = -5/32
[TC] = 00001 [TC]+ = 16  [TC]±  = -16   [TC]+f = ½ [TC]±f = 

The result of a number of consecutive instructions are shown below (5!)

AA+A±A+fA±fDDf
NCT/   0101000000101010/102410/1024
CC/K-5-5/32
TC/N0101110111+954-70954/1024-70/1024
//T:00000000000000
CC/C   27   27/32
NC0100111101  +754  -270  754/1024  -270/1024
NC0010011010see following note

As a result of the last operation the accumulator is said to have exceeded capacity. In this case the defining equation is more correctly written thus

A' = {A - D S+}0»79,

where the notation means the 'eighty least significant digits of the number inside the curly brackets'. It is one of the tasks of the programmer to prevent, by e.g., the use of scale factors, the loss of information in this way.

A closely related problem is the following. When dealing with fractions it is most convenient to take products from M (by /A or /E); with integers, from L (with TA, /S, or /U). In the first case it is necessary to provide for the occurrence of products too small to have much significance in M, and in the second case for products too large to remain in L.

The Arithmetical Instructions
Code Name Function
010000/ES' = M (i.e., replace [S] by most significant 40 digits of A).
011000/AS' = M,    M' = 0
010100/SS' = L
001100/IL' = M,    M' = L
011100/US' = L,    L' = M,    M' = 0
000010A' = A - DS+
010010/DA' = A - DS±
011010/JM' = M + S
000110/NA' = A + DS+
010110/FA' = A + DS±
001110/CD' = S+
011110/KD' = S±
100000T/A' = S+
111000TAS' = L,    A' = 0
100100T:A' = 0      (clears accumulator)
101100TIA' = A + S+
100010A' = S±
100110TNA' = A - S±
110110TFA' = -S±
101110TCA' = A + S±
111110TKA' = 2S±
In addition to the above functions, which should be self explanatory, there are a few auxiliary instructions which are concerned with the arithmetical unit. They are
001000/@most significant digit
001010/Rsideways adder
011001/Wrandom number
110010TDA' = A V S±     (logical OR function)
101010TRA' = A & S±     (logical AND function)
111010TJA' = A |= S±     (logical NOT-EQUIVALENT function)
They will be described separately.

Most Significant Digit.

In certain kinds of numerical work, e.g., the calculation of logarithms, quotients, etc., it is desirable to be able to standardise numbers, i.e., to express them in the form 2n a where ½ <= a < 1. This is made possible at high speed by the function /@. This function determines the position of the most significant digit of [S]+ and adds the digital position number, µ(s), to M, e.g., if [S]+ = / X / R Y N / / then µ(S) = 28. If [S]+ = 0 then µ(S) = 63 (6?).

Sideways Adder.

This function determines t (s), the number of 1's in [s] (it has no relation to the interpretation of [s] as a number) and adds it to M. E.g., if [s]+ = / X / R Y N / /, then t (s) = 11.

Random Number Generator.

The function /W puts random digits into the twenty least significant digits of the accumulator. (The randomness is derived from a resistance noise generator). The following problem would be suitable for the use of this facility.

A man in New York starts walking from a street intersection, and at each street intersection decides in which direction to walk by twice tossing a coin (each of the four directions is chosen equally often). It is required to find the probability that before walking twenty blocks he will have succeeded in returning to his starting point. For this purpose New York is to be assumed to be an infinite rectangular lattice of streets and avenues.

The logical instructions s, TD; s, TJ; s, TR

These are operations on rows of digits and have no relation to the interpretation of these rows as numbers. The symbols V, &, and |= satisfy the equations.


            0 V 0 = 0    0 & 0 = 0    0 |= 0 = 0
            0 V 1 = 1    0 & 1 = 0    0 |= 1 = 1
            1 V 0 = 1    1 & 0 = 0    1 |= 0 = 1
            1 V 1 = 1    1 & 1 = 1    1 |= 1 = 0

However the instructions perform these operations on rows of digits
thus            (01110) V (10010) = (11110) .

The main application of these operations occurs where several different pieces of information are packed into one line. For this purpose the operation & is of the most use. It can be used for breaking up a line into its various significant parts. The V operation may be used for combining parts together. Another use is to round off a number by forcing a 1 into its least significant digit position. The following table gives some examples (7). [A] = RYRYRYRY and [s] are the rows concerned in the operation and the result is placed in A.

  Operation   [s]      [A']
  ---------   ---      ----
    s, TD    ABCD   JXCX RYRY
             ABCB   JXCX ££££
             E///   JYRY RYRY
             //££   RY££ ££££

    s, TJ    ABCD   DN:M RYRY
             ABCB   DN:N YRYR
             //££   RYYR YRYR
             ££//   YRRY RYRY

    s, TR    ABCD   @ZRE ////
             ££//   RY// ////
             ABCB   @ZRZ RYRY
             //££   //RY RYRY

7. The control transfer instructions.

The codes and defining equations are as follows. C denotes the 10 binary digit control number. If, as a result of one of the following operations, C' = 25 (say), then control will start selecting instructions from lines 26, 27, 28, etc., until another transfer of control is encountered. { }0»9 denotes the 10 least significant digits of the number inside the brackets. This should not be confused with the square bracket notation which refers to a storage location.

Code Name Function (8!)
001101/PC' = {s}0»9         
011101/QC' = {C + s}0»9
000101/HC' = {s}0»9if [A]± >= 0 (otherwise C' = C)
000111/MC' = {C + s}0»9if [A]± >= 0 (otherwise C' = C)

The essential feature of control transfers on the MK II (which also distinguishes it from other machines in this respect (8a)) is that 2 lines are involved. Thus, e.g., to transfer control unconditionally to CE the control transfer number (one less than the name of the line to which it is required to jump), FE, is first made available in some line s. The instruction s,/P then effects the required transfer. /H is similar to /P but the transfer is only operative if the most significant digit of the accumulator is 0, otherwise the next instruction is selected in the usual way. The instructions /Q and /M cause relative transfers of control. They are best remembered as follows. If {s}0»9 = j, then s, /Q will cause control to skip j instructions. If j = -1 then s, /Q is obeyed repeatedly and we have a dynamic stop. If j = -2 control returns to the previous instruction. And so on. /M is the relative transfer corresponding to the absolute transfer /H.

8. The B-tube and the associated instructions.

The machine is intended to take advantage of the repetitive nature of calculations. Thus if we wish to instruct the machine to add up 100 numbers we prefer to specify just one addition instruction and some how make it refer to each of the 100 numbers in turn, stopping this process at the end of the list. The B-tube is primarily a device to enable this to be done more readily.

The B-tube consists of 8 lines each of 20 digits (referred to as B0, B1, B2, ..., B7) and the control unit is arranged so that the content of one of these lines -- that specified by the B digits of the instruction -- is added to the (presumptive) instruction before it is obeyed. The resulting instruction is called the actual instruction. Certain instructions are exempt from this rule and in these cases the actual instruction is identical with the presumptive instruction. These -- B exceptional -- instructions have function codes (9)

          100011  TO
          110011  TB
          101011  TG
          111011  T"
          100111  TM
          110111  TX
          101111  TV
          111111  T£

Examples of the formation of actual from presumptive instructions.

presumptive   named   content of    actual
instruction   B-line  named B-line  instruction
-----------   ------  ------------  -----------
  / C E K      B 1      @ / / /      @ C E K
  / C @ K      B 2      @ / / /      @ C @ K
  : C A K      B 3      V £ / /      @ C : K
  : C £ C      B 7      V £ / /      @ C / K
  : C U K      B 7      V £ £ £      @ C U K
  / / / /      B 0      @ C / K      @ C / K

The actual instructions in all these examples are effectively identical because the digits 10, 11, 12, and 13 have no further significance once the actual instruction has been formed.

Setting and altering the numbers in the B-lines is the purpose of the instructions with the following function codes and defining equations.

Code Name Function
B-normal
100001TTB' = s
110001TZs' = B
101001TLB' = B - s
B-exceptional
100011TOB' = s
110011TBs' = B
101011TGB' = B - s

In these equations B and B' denote, as usual, the initial and final contents of the B-line named by the B digits of the actual instruction (in the case of the B-exceptional instruction this is identical with the presumptive instruction). Likewise s, s' refer to the contents of the short store lines whose addresses are to be found in the actual instruction and the equations applied are specified by the function digits of the actual instruction. Finally there are two conditional switching instructions s, /T (direct) and s, /O (relative) similar in every respect to /H and /M except that they discriminate on the sign of the last B-line altered. For this purpose the operation B-->S counts as an alteration. These instructions are intended for use in counting operations.

The B-tube and the associated instructions have three purposes. The primary purpose is the modification of presumptive instructions to give actual instructions. Secondly for the counting operations which are usually associated with the systematic modification of B additives, and lastly as a 'shunting station' for 20 digit lines.

The B-exceptional instructions.

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 a position specified by the content of a further B line, 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 devices revealed in the following examples.

Examples illustrating the effect of the B instructions (10!)

Presump- | relevant    | actual |
tive     | B-line and  | instr. |  Effect
instr.   | its content |        |
------------------------------------------------
  HUQO   |     B7      |  HUQO  | [B7]' = [HU]
  HUQB   |     B7      |  HUQB  | [HU]' = [B7]
  LUZZ   | B1 = @/I/   |  HUQZ  | [HU]' = [B7]
  LUZT   | B1 = @/I/   |  HUQT  | [B7]' = [HU]
  PUPT   | B6 = V£//   |  HUQT  | [B7]' = [HU]
  //E/   | B1 = HUPO   |  HUQO  | [B7]' = [HU]
  ////   | B0 = HUQT   |  HUQT  | [B7]' = [HU]
  ////   | B0 = HUQO   |  HUQO  | [B7]' = [HU]
  //QZ   | B7 = @E//   |  @EQZ  | [@E]' = [B7]
  //Q/   | B7 = @E/O   |  @EQO  | [B7]' = [@E]

Several applications of the B-tube are given in examples 2 (next chapter). The first example (11) illustrates a typical counting process and deserves some remarks. 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 sequence of instructions. It is not necessary to copy the partial sums out into the store, as the whole process of altering the B-tube and testing is done without interfering with the accumulator.

9. Miscellaneous Instructions

1) Dummy stops. It is possible by setting certain switches to arrange that the machine stops when certain instructions are reached. The instructions in question are /L and /G. Like the /I and T: instructions they are addressless, i.e., the first two characters are irrelevant. There are two on-off switches on the console labelled "/L" and "/G". If, e.g., the "/L" switch is in the "on" position, then the machine will stop when control encounters a /L instruction, otherwise /L acts as a dummy or time wasting instruction. Similarly for the /G instruction.

Dummy stops are very useful in testing routines. The programmer is recommended to insert then at points where major operations may be considered complete.

2) The hooter. When an instruction with function symbol /V is obeyed an impulse is applied to the diaphragm of a loudspeaker. By doing this repeatedly and rythmically a steady note, rich in harmonics, can be produced. This is used to enable the operator to be called to attend to the machine in some way. The simplest case is where the whole of a job is completed and it is required to clear the electronic stores and start something different. All that is then required is to repeat a cycle of instructions including a hoot, e.g. (12)

AddressInstruction
FS
NS/V
CS
FS/P

In this case every second instruction will put a pulse into the speaker. These pulses will occur at intervals of 8 beats i.e., 1.92 ms giving a frequency of 521 cycles (an octave above middle C). Or one could use the loop of three instructions (13)

AddressInstruction
O@
///V
B@
Q@/V
G@
B@/P

which gives a slightly louder hoot a fifth lower in frequency. Single pulses applied to the loudspeaker are distinctly audible as something between a tap, a click, and a thump. This fact can be turned to good account. By putting hoot instructions into programmes at suitable points one is enabled to 'listen in' to the progress of the routine. Some indication of what is going on is given by the rhythm of the clicks that are heard.

3) The hand switches. One can set up a row of twenty digits on twenty switches. This row 'H' can effect the behaviour of the machine through instructions with function symbol // or /Z. The former of these will be discussed under magnetic transfers. The latter causes the number set up to be copied into the named line ([s]' = H): in this way small pieces of information can be put into the machine by hand. Suppose for example that we have a routine for calculating some function of a four character line, and suppose that the calculation takes five minutes. It would then be reasonable to put the argument in through the switches. This would be particularly so if the argument used depends partly on the judgment of the experimenter and partly on the values recently obtained e.g., if one were trying to find a zero of the function but one was not wishing to repeat the process often enough to mechanise it fully. Again if one were playing chess against the machine this would be the natural way of registering one's own moves.

10. The Magnetic Instructions.

The Magnetic Wheel. The organisation of the magnetic storage into tracks and pages has already been described. To recapitulate there are 256 tracks each consisting of a left hand page and a right hand page. Each page contains the same amount of information as a tube of the electronic store. The two pages of e.g., track 35 will be denoted by 35L and 35R. They may also be referred to as left and right half tracks.

In order to be able to make use of the information stored in the wheel, arrangements are made to enable one to transfer either a half-track or a complete track from the magnetic to the electronic store. The process by which this is done is described as a reading transfer. Likewise in order to store information previously held in the electronic store arrangements are made for transfers in the opposite direction, from the electronic store to a track. These are called writing transfers. In addition there are check transfers by means of which the content of a part of the magnetic store is compared with a part of the electronic store.

These operations are initiated by the instruction s, /: with the aid of a magnetic instruction which stands in the short line s. Thus the instruction V E / : specifies that [V E]0»19 is to be interpreted as a magnetic instruction. A magnetic instruction specifies a half-track in the magnetic store and a tube or pair of tubes in the electronic store and the kind of transfer required. In the case of a checking operation, if the check succeeds, i.e., if there is no discrepancy in the blocks of information compared, then control is advanced to s + 3; otherwise to s + 1. If the transfer involves a whole track of information then the specified pair of tubes on the electronic store must be S0 and S1, S2 and S3, S4 and S5, or S6 and S7. S1 will be called the partner tube of SO, S3 that of S2, and so on. The detailed coding of a magnetic instruction will now be described.

Digits 0 - 9 (1st 2 characters) specify a track of the magnetic wheel.

Digits 16 - 19 (4th character; digit 15 is spare) specify a tube in the electronic store.

Digits 10 - 14 (3rd character) specify the manner of transfer. The following table defines the interpretation of the third character.

/ The content of the left half of the named track is transferred to the named tube.
E The content of the right half of the named track is transferred to the named tube.
@ The content of the complete track is transferred to the electronic store, that of the left half to the named tube and that of the right half to the partner tube (assuming that the named tube is one of the following S0, S2, S4, S6).
A As for @, but the left half track is related to the partner of the named tube and vice-versa,
:
S
I
U
Checking transfers used to compare the two, supposedly identical, blocks of information resulting from the operations specified by /, E, @, and A respectively.
½
D
R
J
Writing transfers corresponding to the reading transfers specified by /, E, @, and A.
N
F
C
K
Checking transfers used to compare the results of the operations specified by ½, D, R, and J.

The interpretation of all 20 digits can be summarised by the following figure.

    0 - 9    Track
       10    Right/criss-cross
       11    Two pages
       12    Check
       13    Write
       14    Special
       15    Spare
  16 - 19    Tube

Magnetic instructions whose 3rd character is one of the letters T, Z, ...,£ do not correspond to magnetic transfers, but are used in connection with the input and output devices which are explained in the next section. The following examples of magnetic instructions conclude this section.

/ / / /   Means left half of track 0 to bc read into S0

I / E /	  Means right half of track 6 to be read into S0

A E @ /	  Means left half of track 35 to be read into S0 and
	  the right half into S1

E E A /	  Means left half of track 33 to be read into S1 and
	  the right half into S0.

The corresponding checking instructions are / / : /,  I / S /,  A E I /, and E E U /. Thus A E I / means that the contents of 35L is compared with that of S0 and the content of 35R with that of S1.

/ @ ½ I     Means S3 to be written on left half of track 64
½ E D :     Means S2 to be written on 40R
U / R :     Means S2 to be written on 7L and S3 on 7R
U / J :     Means S2 to be written on 7R and S3 on 7L

The corresponding checking instructions are  / @ N I,  ½ E F :,  U / C :, and U / K :.

Notes.

(i) Digit 15 is irrelevant and, in the case of two-page transfers, digit 16 is irrelevant.

(ii) A 1 in digit position 10 has essentially different meanings according as the transfer involves one page or two. In the case of a one-page transfer it means that the right half of the track is involved: for a two-page transfer it indicates that the pairing of the pages is to be criss-cross, i.e., the left half of track to right page of pair and vice-versa.

(iii) Times of operation: writing transfers take about 90 ms and reading and checking each takes about 35 ms.

(iv) The (ordinary) instruction with function letters // causes the row H to be interpreted as a magnetic instruction. The use of this instruction for starting the machine is described in the section dealing with the input routine.

10.1. Input and output equipment.

Information can be fed into the machine from teleprint tape and out of it onto further teleprint tape and onto a teleprinter. The teleprint tape is the five-hole type and is read by a photo-electric tape reader. The teleprinter is a Creed page printer, modified slightly to enable it to print 32 distinct characters. The operation of this equipment is initiated by the special magnetic functions whose 3rd character is T, Z, ...,£.

The tape-reader

The tape reader is operated when the special magnetic function O is obeyed. The character in the reading head is then superimposed ('or') on the 5 most significant digits of the accumulator, and the tape moves forward so that the next character is in the reading head. The latter process takes a certain time (about 5 ms) and arrangements are made to prevent another reading process from occurring until the next character is in position. The operation is most usually done with the accumulator clear so that 275 T is placed in the accumulator, where T is the numerical (integral) equivalent of the character read.

The teleprinter and punch

The teleprinter and/or punch are operated when the special magnetic function T is obeyed. Its effect is to punch the character given in the five most significant digits of the accumulator, i.e., [A]75»79. This character will be set up on the printer, and the character previously set up will be printed unless the printer is in the figure-shift position. In this case the corresponding figure is obtained. These figures are given in the table below:

/ E @ A : S I U ½ D P M F
O 1 2 3 4 5 6 7 8 9 + - .

No guarantee can be given concerning what will happen when other characters are printed on figure shift. There may be only a smudge.

A normal teleprinter responds differently to the stunt characters /, @, :, ½, ", £ producing respectively no effect, line feed, space, carriage return, figure shift, and letter shift. The printer associated with the machine prints these characters, but arrangements are also made to do the stunt operations. These are provided by other special magnetic functions: see table below. No effect is produced on the punch in these cases. A three position switch on the console enables the printer and/or punch to be used for output.

Once one of the input or output magnetic functions has been initiated, the machine will continue to obey all other instructions, including the special function B (see below), until a further input or output instruction is encountered when the machine is held up until the first is complete.

The special magnetic function B, superimposes the character set up for punching on digits 35 to 39 of the accumulator.

The following table summarises the special magnetic functions:

    3rd
character    Effect                             Time.

     T    Print and/or punch {A}75»79         140 ms.
     Z    Space the teleprinter               140 ms.
     L    Carriage return                     300 ms.
     W    Line feed                           140 ms.
     H    Figure shift                        140 ms.
     Y    Letter shift                        140 ms.
     P    ------         
     Q    ------         
     O    Input character from tape             5 ms.
     B    Check                               5 beats
     G    ------         
     "    ------         
     M    ------         
     X    ------         
     V    ------         
     £    no effect                           4 beats

Notes.

1. It has been found that up to 140 ms. of calculation can be arranged between 2 consecutive output instructions without retarding the operation of the printer

2. In a similar way the figure of 5ms. applies to the input instruction.

3. In general an instruction calling for a carriage return should be followed by one calling for line feed. It is recommended however that a carriage return should be effected by 3 instructions calling for carriage return, line feed, and carriage return, in this order. This eliminates the possibility of carriage bounce and ensures a perfectly even margin throughout the length of the page.

11. The time occupied by various operations.

The machine is synchronised by an oscillator with a frequency of 100 kc/s. One cycle (occupying 10 microsecs) of this oscillator may be called a digit period. These digit periods determine the most fundamental rhythm of the machine, but there is another almost equally important rhythm, on which time is divided into beats of 24 digit periods (240 microsecs). The number of beats for each instruction are given below. The times for the magnetic instructions have already been mentioned.

Arithmetical & logical instructions
other than multiplication          5 beats (1.2 ms)

Multiplication instructions 
(i.e. , /D, /N, & /F)            9 beats (2.16ms)

All the rest of the instructions   4 beats (0.96ms)

\