next up previous
Next: Figures Up: Alan Turing's Manual for Previous: Brief reminders


Appendix -- The Pilot Machine
(Manchester Computer Mark I)

It is proposed to describe here the experimental machine built at Manchester University during the period 1947-1950, usually then known as the `existing machine' but here to be described as the `pilot machine'. The description to be given here will apply to the most recent form of the machine. The development of the machine was essentially in the order used in describing the Mark II machine. There was first a baby machine, something like the `reduced machine', to which were added first a larger variety of functions including logical operations and a multiplier with the necessary accompanying 80 digit accumulator. A two line B tube was added at the same time. In a further stage the magnetic wheel and the input and output were provided.

Arrangement of storage on pilot machine: The electronic storage consisted of four tubes, each containing 32 lines of 40 digits. The thirty-two lines appeared under one another, i.e. there was no arrangement in more than one column. The names given to these lines were //,@/,:/,...,VU i.e. the first 128 non-negative even integers. Those lines which had the same second character were said to form a paragraph, thus a paragraph was either the upper or the lower half of a tube. These lines could be divided into halves for the purposes of using them as instructions. The left half of a line if used as an instruction was given the same name as the whole line, but the right half was given a name one greater, e.g. the left half of line VU would form the instruction VU and the right half the instruction £U.

The B-tube had only the two lines B0 and B1. These were 40 digit lines.

The selection of instructions was on a principle very analogous to that in the Ferranti machine although differing in many details. The control tube contained two forty digit lines, the `instruction number' C being on one line, and the present instruction (actual) forming half of the other line or P.I. line. If the content of control is observed at a prepulse the actual instruction next to be obeyed is obtained as follows:

In the actual instruction the first digit is irrelevant. If it is replaced by 0 the first eight digits represent a store line, which, apart from magnetic transfers, is the only one which will be altered in the obeying of the instruction and is the only one whose content is relevant to that instruction. Its content is represented by S, ${\tt\bf S}'$ in the equations for the instructions as in the Mark II machine. The ninth to the fifteenth digits of the instruction were irrelevant, and the last five formed a function symbol. The equations for the thirty-two functions are given on p. [*]. The equations presumed to hold are as with the Mark II machine except that ${\tt\bf C}'={\tt\bf C}+2$ replaced ${\tt\bf C}'={\tt\bf C}+1$. The accumulator and multiplier are as with the Mark II machine, except for the times and the actual arrangements of the digits.

Computer Function Characters

0 / Magnetic transfer  
1 E   (time waster)
2 @ ${\tt\bf B}0'={\tt\bf S}$  
3 A ${\tt\bf B}1'={\tt\bf S}$  
4 : ${\tt\bf D}' = {\tt\bf S}_\pm$  
5 S ${\tt\bf A}'={\tt\bf A}+ {\tt\bf D}{\tt\bf S}_\pm$  
6 I ${\tt\bf D}' = {\tt\bf S}_+$  
7 U ${\tt\bf A}'={\tt\bf A}+{\tt\bf D}{\tt\bf S}_+$  
8 ¼   (time waster)
9 D ${\tt\bf S}' = {\tt\bf L}$  
10 R ${\tt\bf C}'={\tt\bf C}+3-sgn({\tt\bf A}_\pm + {1 \over 2})$ (test)
11 J ${\tt\bf S}' = {\tt\bf M}$  
12 N   Dummy stop
13 F ${\tt\bf P}'=1$   "     " 
14 C ${\tt\bf P}'=0$   "     " 
15 K Hooter operates  
16 T ${\tt\bf A}'={\tt\bf A}\lor {\tt\bf S}_\pm$  
17 Z ${\tt\bf L}' = {\tt\bf M}$, ${\tt\bf M}'={\tt\bf L}$  
18 L ${\tt\bf C}' = {\tt\bf S}$  
19 W ${\tt\bf C}'={\tt\bf C}+{\tt\bf S}$  
20 H ${\tt\bf A}'={\tt\bf S}_\pm$  
21 Y ${\tt\bf A}'=-{\tt\bf S}_\pm$  
22 P ${\tt\bf A}'=2{\tt\bf S}_\pm$  
23 Q ${\tt\bf A}' = 0$  
24 O ${\tt\bf A}'={\tt\bf A}+{\tt\bf S}_+$  
25 B ${\tt\bf A}'={\tt\bf M}$, ${\tt\bf S}' = {\tt\bf L}$  
26 G ${\tt\bf A}'={\tt\bf A}+2^{40}{\tt\bf S}_+$  
27 " ${\tt\bf A}'={\tt\bf L}$, ${\tt\bf S}' = {\tt\bf M}$  
28 M ${\tt\bf A}'={\tt\bf A}+{\tt\bf S}_\pm$  
29 X ${\tt\bf A}'={\tt\bf A}-{\tt\bf S}_\pm$  
30 V ${\tt\bf A}'={\tt\bf A}\not\equiv {\tt\bf S}_\pm$  
31 £ ${\tt\bf A}'={\tt\bf A}\land {\tt\bf S}_\pm$  
When nothing is stated to the contrary the equations ${\tt\bf A}'={\tt\bf A}$, ${\tt\bf C}'={\tt\bf C}+2$, ${\tt\bf S}'={\tt\bf S}$, ${\tt\bf P}'={\tt\bf P}$ hold. ${\tt\bf A}={\tt\bf L}+2^{40}{\tt\bf M}$, $0 \le {\tt\bf L}< 2^{40}$, $0 \le {\tt\bf M}< 2^{40}$ always.

These equations will mostly be self-explanatory, after the explanations that have been given in connection with the Ferranti machine. Only N,C,F,K need explanation. These were dummy stops and the combinations N,C,F,K; C,K; F,K; none; of active dummy stops could be chosen with the aid of three switches. Functions C and F also did duty in connection with the output. This is explained by the equations for P which is a single digit store. States 0 and 1 of this store are to be interpreted as mark and space respectively and signals are sent out along a teleprint line to a punch accordingly.

It will be seen that there are no means of using the content of B-lines except to modify instructions, also that when altering B-lines the line concerned is chosen by the function symbol, not by the B digit. It will also be observed that the test instruction (R) is not combined with a transfer. It is usually necessary therefore to follow it with a control transfer.

Magnetic instructions on the pilot machine

The magnetic instructions were forty digit lines. The first three characters were irrelevant, the fourth and fifth gave the track, the sixth the pair of tubes, the seventh the function symbol and the digits of the eighth were used separately for special functions.

As regards the track number, provision was made in coding for 64 tracks, although there were never more than 30 operative, and not more than 15 except at the very end of the machine's life. The coding of the track number was the obvious one i.e. with magnetic instruction I the track number was $\{{\tt\bf I}_+\}_{15+}^{20}$. Since there were only two partnered pairs of tubes viz. tubes 0,1 and 2,3 there were only two possibilities for the tube-pair character viz. / for 0,1 and E for 2,3. The functions were on a system very reminiscent of the Mark II machine viz.

Digit 30 Read 0, write 1
Digit 31 One page 0, two 1
Digit 32 Scan 0, Action 1
Digit 33 Normal 0, Reverse 1
Digit 34 Normal 0, Check 1
Digit 30 requires no further explanation, nor does 31. In connection with digit 32 it must be explained that the content of the track is divided into two halves, called the scan and action halves, functionally very similar to the left and right halves of the Mark II machine. This selects which half track is to be concerned when a magnetic transfer using only one half track occurs. Normal (digit 33) means scan with left, action with right. If digit 34 is 1 we get checking whichever value digit 30 has. When the check succeeds the equation ${\tt\bf C}'={\tt\bf C}+6$ applies but when it fails ${\tt\bf C}'={\tt\bf C}+2$. There was also a four digit binary counter, indicated with neons which counted the number of failed checks modulo 16.

The special functions will be described under the input mechanism.

Times on the pilot machine

The digit periods on the Mark I machine were of the same length (10 $\mu$s) as on the Mark II, but each beat consisted of 45 digit periods. The majority of instructions occupied 4 beats i.e. 1.8 ms. The exceptions were magnetic transfers, taking about 60 ms, active dummy stops (indefinite), and multiplications. The time occupied by a multiplication was dependent on the number of digits 1 in the multiplier, and if this number was $m$ the time was $2m+7+(-1)^m$ beats. The average time for all multipliers was thus about 47 beats or 12 ordinary instructions. For multipliers which were powers of 2 the time was equal to that taken by two ordinary instructions. The time in input was 150 ms per character, and the same in output.

Input and Output on pilot machine

We have already explained how output is controlled through the digit P. It may be as well however to explain the operation of a teleprinter, or rather the nature of the signals which are transmitted down teleprinter lines. Ideally these signals change instantaneously from one voltage called mark to another called space. The mark signal also does duty as a `stop' signal and the space as a `start'. When the line is quiescent, i.e. when no meaningful signal is being transmitted it is permanently at mark, and this mark is interpreted as `stop'. If this mark gives way to space the succeeding 150 ms of signal are expected to conform to one of 32 patterns corresponding to which of the 32 teleprint characters are being transmitted in that period. The first 20 ms should be space, representing start, and the last 30 ms should be mark, representing stop. The intervening period is divided into five periods of 20 ms each. These periods are associated in order with the five digits of the character to be transmitted. A digit 1 is represented by mark and 0 by space. A certain tolerance is of course permitted on this ideal waveform. In particular a tolerance of 5% plus or minus is allowed on speeds of transmission.

The output routine enabled one to punch the content of any line. It operated simply by giving instruction to F and C at appropriate moments, in accordance with the above account.

An input routine might have been used accepting the same type of signals, but such a system would not have been very flexible. It was arranged instead that the input should be along six lines. When a tape was being read each character was transmitted only for a period of 20 ms, and these periods were at intervals of 150 ms. This effect was obtained by a simple modification of a tape reader (transmitter-distributor), the periods of transmission coinciding with the periods when the unmodified machine would have transmitted the first digit of a character. The sixth line always transmitted 1 during these periods, and was used to indicate these periods. All lines transmitted 0 at other times. The effect of these signals was to modify the content of the accumulator. The five digits of the character transmitted were connected to P35-P39 and also to P75-P79. The sixth line was connected to P0 and P40. All these were `or' connections (see p. [*]). Thus if the accumulator held ////////ABCDEFGH just before a transmission period, and no instructions tending to alter the accumulator were applied and U were transmitted, it would contain E//////UABCDEFGQ from very soon after the beginning of the transmission period. [P in this description appears to be a persistent typo for A.]

It was found convenient to be able to start and stop the transmitter distributor at the discretion of the machine. A magnetic instruction with 1 for digit 36 would start it, and if this was absent a digit 1 in position 35 would stop it. Any magnetic transfer described by the remainder of the magnetic instruction would also have to be obeyed. A switch on the transmitter distributor itself enabled it to be switched off entirely. There was also on it a key producing the same effect as digit 36 of a magnetic instruction. A key corresponding to digit 35 would also have been a convenience.

The input and output apparatus produced considerable interference, and for this and reasons of space was housed in a room at some distance (on another floor) from the remainder of the equipment. An intercommunication system (not entirely distortionless, and much interfered with, both in the electrical and acoustic parts of the path) connected the two rooms, but it was found desirable to make it possible to control the machine from either room. The controls on input already mentioned, together with a key controlling KEC, were sufficient for controlling from the input-output room, provided the switches on the console were in standard position. The intercommunication system would then be mainly used to request that the switches be so set, or that some alteration be made concerning dummy stops. When controlling the machine from the main room, the facilities for stopping and starting the transmitter distributor automatically were most useful. This mode of operation was used most when verifying the correctness of routines with check sheets. A tape would be punched which with the aid of the input routine set the machine into the state from which its motion was to be investigated, and at which a dummy stop occurred, and the T.D. would be automatically stopped. From this tape another was produced bearing repetitions of the first, by the technique mentioned on p. [*]. This tape would then be placed in the T.D. which would be switched on but stopped and the investigator would proceed to the machine room. By operating KEC it would then be possible for him to set the machine into the condition in which he was interested. This would involve the first copy of the original tape passing through the T.D, which would then stop. After pursuing his researches for some time the investigator could start again by once more operating KEC and consuming a further section of the tape. This Utopian state of affairs was only too often interrupted by the machine going out of control and consuming the whole tape.

As subsidiary tape handling equipment there was a hand punch (with considerable tendency to replace digits 1 by 0), and a printer mechanism. The latter was used to print out the contents of tapes. It could be set to any margin width and gave automatic carriage return and line feed at the right margin. This printer had figure shift and letter shift positions. In the letter shift position the alphabetic characters were represented by the capital letters, but the stunts were represented / for %, 2 for @, 4 for :, 8 for ¼, 5 for ", and $\emptyset$ for £. In the figure shift position Q was represented by 1, W by 2, E by 3, R by 4, T by 5, Y by 6, U by 7, I by 8, O by 9, and P by 0. The other twenty two characters were represented by somewhat colourless characters, by no means standard, and only eleven of them different. An additional tape-handling facility was provided by the possibility of disconnecting the input and output from the machine and connecting them together so as to provide a means for copying tapes. For this purpose the T.D. produced normal teleprint signals rather than the special six-line signals used in input. Opportunities for releasing the equipment for copying purposes were frequently available.

Programming on the pilot machine

We shall describe here only those programmes which were actually used a considerable number of times and were not eventually superseded. These probably represent less than a quarter of those which were actually made. The others were either superseded by better routines, or assumed a form of machine which went out of date before being made, or required greater reliability in the machine than was forthcoming, or formed parts of schemes which never came into force for lack of time, or were just rather useless, or even not right.

Normal duties of tubes. PERM. Routine changing sequence.

As with the Mark II machine there were conventions about the normal uses of the four pages available. Pages 0 and 1 were for instructions, page 2 for systematic working space, and page 3 was divided between permanent information, unsystematic working space and the routine changing sequence. Paragraph I, i.e. lines /I to VI were unsystematic working space, with GI, MI, VI as special working space, and /U and OU was used for PERM, which contained a number of powers of 2, and also RYRYRYRY, E///E///, ££££££££, and ////////. Line VU was used for the cue, consisting of a control transfer number and a magnetic instruction packed into one line. The routine changing sequence was contained in the last halves of the lives OU,GU,MU whose contents were

OU     :::::::N
GU     QU::VU//
MU     V£::VU/L
The method of changing routines was to put the cue into VU, the link into the least significant half of the accumulator, and obey GU:L. This control transfer is followed by the dummy stop N, the magnetic instruction VU// and the control transfer VU/L. This is similar to the Mark II machine, but the checking of the transfer is omitted. Moreover false cues were never used.

[Standard routines for the pilot machine]


The principle of meaningful sequences and warning characters was used as with the input routine of the Mark II machine. There were three warning characters K,Q, and J with respective lengths of meaningful sequence 11,11,10. With K and Q the second and third characters determined the line to which the remaining characters were to be sent. With K these two characters gave the address direct but with Q the middle digit of the third character was first replaced by 1. This made it impossible to interfere with the input programme itself when using warning character Q. With J the second character was sufficient to describe the address as this was restricted to be on [electronic] p.2, the page of systematic working space. For this purpose the 32 lines /:,@:,...,VS were to be called /,E,...,£. The content destined for the address so determined came from the remaining eight characters. There was also a scheme for obeying instructions from tapes. After doing any transfer as described above the accumulator would be filled from HA (l.s. [half]) and PA (m.s.) and then the two halves of line G@ obeyed as instructions, the left half first. The accumulator was then emptied back into HA and PA, and G@ set to contain two time wasting instructions. The consequence of this arrangement was that one could obey two instructions by writing them on a tape preceded by KG@. For this purpose HA and PA form a pseudo accumulator. This facility was mainly used for leaving the input routine, i.e. for the equivalent of warning character Z of the Mark II input routine.


The fundamental output programme was OUT which enabled one to punch the whole or part of an eight character line. OUTPG enabled one to punch out the content of a whole page in the form of an input tape which could be used for putting the material back on another occasion. OUTB could be used for punching out the contents of any number of consecutive lines taken from almost anywhere in the store except pages 0,1.


The routines for mathematical functions were mainly chosen for simplicity of programme and generality of application [rather] than for speed.

A slow routine for logarithms, applicable for range 1 to $2^{40}-1$, giving accuracy $2^{-36}$ taking time about 1.2 secs. This routine depended on a process of repeated doubling and squaring, doubling being applicable for values less than $2^{39}$, and squaring (and dividing by $2^{40}$) for larger values. A faster routine (about 0.2 secs) was made but never used. It used a table, to be obtained by the use of the slow routine.

A slow routine for the sine, taking about half a second and accuracy about $2^{-36}$. The angle was given in revolutions. The method depended on reducing to the cosine of a first quadrant angle, and using the duplication formula eight times, and the power series up tot he fourth power for an angle not greater than $\pi \over

A routine for the exponentials of negative numbers without restriction but with poor accuracy. The time was about $1 \over
4$ sec. This routine was very short occupying only a third of a page. The page was shared with SINAPP.

This was a relatively fast routine for the reciprocal, taking about $1 \over
4$ sec. The method was to standardize the argument to a value between $2^{39}$ and $2^{40}$. In the next step the five most significant digits were looked up in a sixteen entry table which gave an approximate reciprocal. By multiplying by this approximate reciprocal and using the formula $a^{-1}=b(ab)^{-1}$ the problem is reduced to that of finding the reciprocal of $1-x$ where $\vert x\vert < {1 \over 32}$. For this purpose the formula $(1+x)(1+x^2)(1+x^4)$ was used as an approximate reciprocal of $1-x$.

This was a relatively slow method for the reciprocal square root. It depends on the case $p=2$ of the recurrence relation

\begin{displaymath}u_{n+1}=u_n(1 - {1 \over p}au_n^p)\

for $a^{-1 \over p}$. It was necessary for the argument to be within a relatively restricted range, and for $u_0$ to satisfy ${1\over 2}<au_0^2<2$. It was often found more convenient to use the logarithm and exponential, although much slower.


These were routines for conversion from binary to decimal and back, decimal numbers being according to the code

1 2 3 4 5 6 7 8 9 0

Testing routines

A number of routines were also produced for the purpose of testing various features of the machine. These included special routines for testing the multiplier, the magnetic reading transfers and the holding properties of the stores. There were others for testing all the functions. Routines constructed for other purposes were often also used for testing.

Problems tackled

Very little time was available for full scale problems, and only three were attempted. These were

(i) Testing of Mersenne numbers $2^p-1$ for primality by Lucas test (see e.g. Hardy and Wright p.223). By this means the primality of these Mersenne numbers, already known to be prime from other calculations, were checked. The values of $p$ greater than 257 and less than 354 were also tested and the corresponding Mersenne numbers were found to be composite.

(ii) The Riemann hypothesis was investigated for the range $63<({\tau \over 2\pi})^{1\over 2}<64$. This chiefly involved calculating the expression

\begin{displaymath}Z(\tau) = 2\sum_{n=1}^m n^{-1 \over 2}\cos 2\pi (\tau \log n ...
+{(-)^{m+1}\over (m + {1 \over 2})^{1 \over 2}}h(\zeta)


m & = & [\tau^{1 \over 2}] \\
\zeta & = & \tau^{1 \over 2} - ...
...\cos 2\pi (\zeta^2 - \zeta - {1 \over 16}) \over \cos 2\pi\zeta}

for about a thousand values of $\tau$. [Note that this is my best rendition of Turing's handwritten math, assuming that his typewritten $t$ and handwritten $\tau$ in the ms. are meant to be equivalent, but I expect that there are errors here.] For this purpose the values of $\log n$ and $n^{-{1\over 2}}$ were taken from a table, and $\log
\tau$ was obtained with the aid of LOGSLOW. The cosines were obtained by linear interpolation in a table with interval $\pi \over 128$. The time for each term of the series was about 160 ms.

(iii) A problem concerned with ray tracing through a lens system. The lens surfaces were spheres with collinear centres. The rays traced were mostly skew, i.e. did not meet the axis or line of the centers.

Reliability of the pilot machine

Judged from the point of view of the programmer, the least reliable part of the machine appeared to be the magnetic writing facilities. It is not known whether the writing was more often done wrong than the reading or less. The effect of incorrect writing were however so much more disastrous than any other mistake which could be made by the machine, that automatic writing was practically never done. The majority of computation was done with the writing power switched off. It is hoped that this difficulty will be met in the Mark II machine, partly by using the arrangements for switching off the write power from blocks of tracks or from single tracks, partly by greater reliability, and partly by making greater use of the input. The very much greater speed of input should facilitate this.

Other serious sources of error were the failure of storage tubes and the multiplier. Technical improvement has however been made in respect of both of these.

next up previous
Next: Figures Up: Alan Turing's Manual for Previous: Brief reminders
Robert S. Thau 2000-02-13