The Small Scale Experimental Machine, the Baby, was built in 1947 and 1948 to subject the Williams-Kilburn Tube to a searching test of its speed and reliability. It also demonstrated the feasibility and potential of a stored-program computer. It was quickly decided to press ahead to develop a realistic useable computer based on the same principles. As early as October 1948 a request was made from the government to Ferranti Ltd. to manufacture a commercial machine to Prof. Williams' specification.The engineering team that built the Baby, Prof. F.C. Williams, Tom Kilburn and Geoff Tootill, was expanded in October 1948 by two research students who had graduated at Manchester in the summer, D.B.G. (Dai) Edwards (general machine design) and G.E. ("Tommy") Thomas (magnetic drum store). In addition there was A.A. (Alec) Robinson, who had started a Ph.D. in the summer of 1947 working on a hardware multiplier. He had helped out sometimes with building the Baby, but as soon as the decision was made to build the bigger machine he became fully integrated into the project. In September 1948, Alan Turing was appointed to the Mathematics department, with the expectation that part of his post would be to lead the software development, but it is unclear whether significant attention was paid to the needs of users in general until he was joined full time by Cicely M. Popplewell in the summer of 1949.
By the Autumn of 1949 the engineering team had produced a working computer with a larger store and more powerful instruction set, and with the addition of a hardware multiplier, address modification registers ("B-lines"), a two-level store comprising a set of Williams-Kilburn Tubes and a Magnetic Drum Store, and input/output from/to 5-hole paper-tape teleprinter. To improve reliability for the CRT store they were now using CRTs specially manufactured for them by GEC (with the particular assistance of Laurie Allard). With a programmable fast drum connected as well, this was the first working two-level store.
Progress was made in stages. There was a dual interest, firstly in creating an effective prototype for Ferranti to base their machine on, and secondly in making a computer available for Ferranti and for research in the University, thereby gaining experience in how it could be used in practice. An important intermediary stage was reached in April 1949, when it was still missing instructions to program drum transfers (they were achieved by manual intervention) and provide input/output from/to paper tape. This Intermediary Version was available for general use by other university departments and Ferranti. For example, it was used to perform useful work on Mersenne Primes during the summer of 1949. On the night of June 16/17th 1949 it was recorded as achieving a nine-hour error-free run.
By late summer of 1949 the detailed design of the Manchester Mark 1 was already being transferred to Ferranti. Geoff Tootill transferred to Ferranti to assist the process. Alec Robinson also transferred to design a new and much faster multiplier.
The Manchester Mark 1 was used for a variety of purposes within the University in 1949 and 1950, including investigation of the Riemann hypothesis and calculations in optics. Development of the machine finished at the end of 1949, and it ceased operation in the summer of 1950. It was replaced in February 1951 by the Ferranti Mark 1, which was derived directly from it, but with a number of improvements/enhancements. This was the world's first delivery of a commercially available computer.
The Manchester Mark 1 Intermediary Version was based on two double-density Williams-Kilburn Tubes as main store, each with the capacity of two "page"s. A page was an array of 32 * 40 bits, the capacity of a basic Williams-Kilburn Tube, and the unit of magnetic drum storage.
The specification of the Intermediary Version is as follows :
Two extra auxiliary tubes were now in use. In addition to the accumulator tube A and the control tube C, there was now a B tube to hold the B-lines and a D tube to hold the multiplier and multiplicand for multiplication.
The order code acknowledged four conventions for interpreting a 40-bit number: signed/unsigned integer/fraction-of-1. It included a number of instructions to manipulate either half of the double length accumulator, to assist in multiplication and multi-length working.
Input was still by simple keyboard to set store information directly, and output by inspection of CRT display tubes. Transfer of information between CRT store and magnetic drum was not yet programmable and had to be done from the console with the program halted.
The magnetic drum (or "wheel" as it was first called) had a set of parallel magnetic tracks, with a head for each track. Each track was arranged in a circle around the drum, holding 2560 bits, corresponding to 2 pages, with half a circle for each page. The rotation of the drum was carefully controlled to synchronise with the refresh cycle of the CRTs so that both pages on a track could be copied to a double-density CRT (or later two single page CRTs) in one revolution. A page to CRT copy was achieved in only around 20 to 30 instruction times. Writing out to drum took about twice as long.
At first the drum had only a few tracks in commission, but this was gradually increased as time passed. It was particularly useful for holding pre-prepared input, output, useful routines, and intermediary calculations for long program runs, given that machine reliability was not 100%.
Essentially all the mechanical and electronic engineering for the prototype magnetic drum was devised and constructed within the University. The early work on the mechanical parts and the synchronisation was carried out by Prof. F.C.Williams and J.C. ("Cliff") West. One of the first practical contributions of the involvement of Ferranti was to provide properly engineered versions of the mechanical parts of the drum.
Work continued over the Summer to attach a teleprinter with 5-hole paper-tape reader and punch, and to integrate the magnetic drum store by bringing it directly under program control. A single instruction code was added to cover the set of sub-operations required to drive the paper-tape input/output and magnetic drum transfers. The code referred to a store address which contained a peripheral instruction in a special code, which was decoded by a separate circuit (this was to allow flexibility in enhancing the peripheral facilities).
In the specification that follows the information in square brackets gives a reminder of the situation in the Intermediary Version for comparison.
The Mark 1 had now acquired a pair of new drums, with the mechanical parts provided by Ferranti. Each drum could hold up to 32 tracks, i.e. 64 pages, although 64 tracks would have been feasible. On initial installation the number of tracks in commission was relatively small, and the capacity increased over a period of time; in fact the second drum may not have been attached until around December. In practice the maximum number of tracks in operation at any time was 47, giving 94 pages, holding about 3,000 numbers. The transfer time of 20 to 30 instruction times (much less if multiplication was being used) meant that the time to process all 32 numbers on a page was significantly longer than the transfer time. So regular processing of large volumes of numbers could proceed with comparatively little degradation in speed.
In the Autumn of 1949 there was no Mark 1 systems software except for basic utilities such as input routines. Coding was normally carried out using symbols of 5-track teleprinter code. The Display Tube was laid out in groups of 5 bits, see display, so that there was a direct relationship between a teleprinter symbol, the line of punched holes on tape that corresponded to it, and any 5-bit group in a word in store that represented the symbol. Similarly there was a simple correspondance between a sequence of symbols punched on tape and its storage in successive groups. And of course the current contents of the store could be viewed at all times on a display tube.
The situation facing programmers will have gradually improved (!) towards the state described for the early days of programming on the Ferranti Mark 1.