Programmers’ Handbook for Manchester Electronic Computer Mark II [i.e., the Ferranti Mark I], [late 1950 or early 1951]. With errata sheets dated March 13, March 28, and July 9, 1951. [With:] Mimeographed letter from Turing stating that copies of library subroutines may be sent to holders of the Handbook. [And with:] Four examples of such subroutines.

1951.

First edition, extremely rare, of “the world’s first computer programming manual” (Jack Copeland & Jason Long, ‘Alan Turing: How his Universal Machine became a Musical Instrument,’ IEEE Spectrum, 2017), written by Turing for the Ferranti Mark I, the first commercially available electronic digital computer. “In May 1948 Turing resigned from the [National Physical Laboratory]. Work on the ACE [Automatic Computing Engine] had drawn almost to a standstill. [M. H. A.] Newman lured a ‘very fed up’ Turing to Manchester, where in May 1948 he was appointed Deputy Director of the Computing Machine Laboratory (there being no Director). Turing designed the input mechanism and programming system of, and wrote a programming manual for, the full-scale Manchester computer” (Copeland (ed.), p. 121). The Handbookinstructs users on the programming of the Ferranti Mark I, which was completed in February 1951 and which Turing referred to as the Manchester Electronic Computer Mark II. (The first US commercial machine, the Eckert-Mauchly UNIVAC, appeared a few months later.) The Handbook was written “presumably mostly in the half year gap between the dismantling of the Manchester Mark 1 and the delivery of the Ferranti Mark 1 in February 1951” (University of Manchester, Mark I Documents, online, 2005). Written “mainly for the benefit of those who will actually do programming for the Mark II machine”, Turing notes in this introduction that “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”. From 6-15 July 1951 Manchester University hosted an international conference, attended by some 170 delegates, celebrating the installation of the Ferranti Mark 1, at which time the Handbook was probably distributed. The present document is the first of at least three editions of the Handbook, and was apparently written before the machine was fully installed and operating (the library input routines, for instance, are described in the future tense). Turing made little contribution to the later editions because by 1951 his interests had turned back to morphogenesis (in connection with which he used the Mark I for the solution of partial differential equations). This complimentary copy of the first edition is stamped “with the compliments / of A. M. Turing” (the former printed, the latter handwritten in ink, not in Turing's hand). It is accompanied by 9 mimeographed items relating to the Handbook, including a letter from Turing stating the Computing Machine Laboratory at the University of Manchester is willing to “send copies of our library sub-routines to holders of handbooks”, and four such subroutines: ‘Input. Purpose. To Read from Tape’ (1 July 1951); ‘English. Purpose. To Print Any Fixed Material with Page Printing’ (1 July 1951); ‘Roughwrite. Purpose. To Write from Rough Tapes’ (1 July 1951); ‘Reciproot. Purpose. To Calculate Square Roots and Reciprocal Square Roots’ (9 July 1951). The extraordinary rarity of the Handbook might be explained by the fact that only two units of the Ferranti Mark I were actually built. It has been suggested that only “several tens of these manuals were printed” (in all editions) (Lavington). Not on OCLC or Library Hub. RBH lists only one other copy (without the Turing letter and added subroutines).

Provenance: Donald Bayley (1921-2020), electronic engineer and collaborator of Alan Turing on ‘Delilah,’ a functioning portable speech-encryption system, at the MI6 base at Hanslope Park, Buckinghamshire, in 1944. Andrew Hodges writes that Turing spoke to Bayley in 1944 of “building a brain” (turing.org.uk/publications/dnb.html); thence by descent to the previous owner.

“It was in the Manchester lab, in June 1948, that the first electronic all-purpose, stored-program computer ran its first program. Nicknamed ‘Baby,’ this prototype was rough and ready. Programs were entered into memory, bit by bit, via a panel of hand-operated switches. Bright dots and dashes on a tiny glass screen formed the output. Baby was created by two brilliant engineers – Freddie Williams and Tom Kilburn – as a test bed for their new ground-breaking, high-speed electronic memory, the Williams-Kilburn tube (a type of cathode-ray tube). Although Baby ran its first program a few weeks before Turing arrived at the Manchester lab, Turing’s ideas had heavily influenced Kilburn as he designed the computer. (Kilburn didn’t like giving Turing credit, but the historical evidence on this point is clear.)

“After his arrival, Turing improved on the bare-bones nature of Baby, designing an input-output system that was based on the wartime technology used at Bletchley Park. Williams and Kilburn themselves knew nothing of Bletchley Park and its nine gigantic Colossus computers. These secret machines were the world’s first large-scale electronic computers, although they were not all-purpose and did not incorporate the concept of the stored program. Instead, each Colossus was controlled by switches and a patch panel. The war ended before a plan to use a program punched into a teleprinter tape to control the computer could be tested.

“Turing used the same punched tape as the basis of his input-output punch and reader. As with Colossus, a row of light-sensitive cells converted the tape’s patterns of holes into electrical pulses and fed these pulses to the computer. What made Baby unique was that rather than running the program directly from a tape, it stored the program in memory for execution. (Once programs are stored in internal memory, a computer can edit them before – or even while – they run.)

“Soon, a larger computer took shape in the laboratory. Turing called it the Mark I. Kilburn and Williams worked primarily on the hardware and Turing on the software. Williams developed a new form of supplementary memory – a rotating magnetic drum – while Kilburn took the lead in developing the guts of the computer, such as the central processor. Turing designed the Mark I’s programming system and went on to write the world’s first computer programming manual. The Mark I was operational in April 1949, with refinements continuing as the year progressed. Ferranti, a Manchester engineering firm, was contracted to build a marketable version of the computer, and the basic designs for the new machine were handed over to Ferranti in July 1949. The first Ferranti computer was installed in Turing’s Manchester lab in February 1951 (a few weeks before the earliest American-built commercial computer, the UNIVAC I, became available). Turing referred to the new machine as the Manchester Electronic Computer Mark II, while others called it the Ferranti Mark 1” (Copeland & Long).

“It was Alan’s job to make the Manchester machine convenient to use, but his ideas of convenience were not always shared by others. He had, of course, attacked the principle on which [Maurice] Wilkes was working according to which the hardware of the machine would be designed to make the instructions easy for a human user to follow – so that in the EDSAC design, the letter ‘A’ was used as the symbol for the instruction to add. In contrast, Alan held that human convenience should be catered for by programming techniques, not by electronics … Now at Manchester, he had the opportunity, in principle, to put this into practice – for the machine hardware had not been designed to pander to the programmer. However, by 1949 he had lost interest in doing this kind of work. The ‘fussy little detail’ of binary to decimal conversion, for instance, he now found not worth bothering about. He himself found it simple to work directly in the base-32 arithmetic in which the machine could be regarded as working, and expected other people to do the same.

“To use base-32 arithmetic it was necessary to find 32 symbols for the 32 different ‘digits’. Here he took over the system already used by the engineers, in which they labelled the five-bit combinations according to the Baudot teleprinter code. Thus the ‘twenty-two’ digit, corresponding to the sequence 10110 of binary digits, would be written as ‘P’, the letter that the sequence 10110 encoded for an ordinary teleprinter. To work in this system meant memorising the Baudot code and the multiplication table as expressed in it – something he, but few others, found easy.

“The ostensible reason for sticking to this hideously primitive form of coding, which entailed so much work for the user, was that the cathode ray tube storage made it possible – indeed necessary – to check the contents of the store by ‘peeping’, as Alan called it, at a monitor tube. He insisted that what one saw as spots on the tube had to correspond digit by digit to the program that had been written out. To maintain this principle of correspondence it was actually necessary to write out the base-32 numbers backwards, with the least significant digit first. This was for technical electronic engineering reasons, the same as those which obliged cathode ray tubes always to scan from left to right. Another awkwardness arose on account of the five-bit combinations which did not correspond to a letter of the alphabet on the Baudot code. Geoff Tootill had already introduced extra symbols for these, the zero of the base-32 notation being represented by a stroke ‘/’. The result was that pages of programs were covered with strokes – an effect which at Cambridge was said to reflect the Manchester rain lashing at the windows.

“By October 1949 the machine was ready, bar some details, for Ferranti to manufacture. The prototype remained in place while this was done, and the idea was to use the time to write an operations manual and basic programs ready to use on the computer (the Mark I, it would be called), when it arrived.

“This was Alan’s next job, and he must have spent a great deal of time in checking the operation of every single function on the prototype, arguing over their efficiency with the engineers. By October he had written out an input routine: that is, a means to persuade the machine when first switched on and empty of instructions, to read in new instructions from a tape, to store them in the right place, and to begin executing them …

“Programming revolved around the process of ‘bringing down’ data and instructions from the drum to the tubes, and sending them back again, and the hardware more or less obliged each sub-routine to be stored on a new track of the drum, to be transferred in toto as required. The Turing scheme coped with this, but he did not bother with a system for sub-routines nested to any depth. He referred to this possibility in a rather flippant passage of the Handbook:

‘The sub-routines of any routine may themselves have sub-routines. This is like the case of the bigger and lesser fleas. I am not sure of the exact meaning the poet attached to the phrase ‘and so ad infinitum’, but am inclined to think that he meant there was no limit that one could assign to the length of a parasitic chain of fleas, rather than that he believed in infinitely long chains. This certainly is the case with sub-routines. One always eventually comes down to a routine without sub-routines but he left this for the user to organise. His own ‘Scheme A’ only allowed for one level of sub-routine calling.’

“The Handbook brought out many of the problems of communication that he faced at Manchester. To Williams and the other engineers, a mathematician was someone who knew how to do calculations; in particular, they saw binary notation as something new introduced to them by ‘mathematics’. To Alan Turing, however, all their schemes with base-32 arithmetic and the rest were merely simple illustrations of the deeper fact that mathematicians were free to employ symbolism in any way they chose. To him it was obvious that a symbol had no intrinsic connection with the entity that it symbolised, and so a long paragraph at the beginning of the Handbook explained how it was that there existed a convention according to which sequences of pulses could be interpreted as numbers. While this was a far more accurate and also more creative idea than the usual statement that the machine ‘stored the numbers’, it was not immediately helpful to the person who had never before known that numbers could be expressed other than in the scale of ten. It was not that Alan despised doing routine, detailed work within a symbolism such as the Manchester machine demanded: but as in Computable Numbers and the ACE report he tended to veer from the abstract to the detailed in a way that made sense to him, but not to others” (Hodges, pp. 501-504).

“A particular curiosity is the description of the routine ACTION and its companions in connection with the ‘formal mode of operation’ on pp. 48-50. This may well be the first written description of anything resembling an operating system, though its purpose is described mainly as providing an audit trail for what was done in the run of a problem on a machine. In this connection, it is also interesting to note the ‘false cue’ facility, which allowed a half-track of the magnetic drum to serve as a directory for routines elsewhere on the drum. In fact, Turing does refer to tracks devoted to this purpose as ‘directories’, though the entries in those directories are keyed by number, and not by the English names of the routines (as they might be in the directory of a modern library or file system); in that sense they are less akin to the directories of a modern file system than, say, the tables of offsets in some modern shared library formats.

“Another point of interest is the several references to formal proofs of a program’s validity. Turing did publish a complete example of a program proof in the proceedings of a 1949 conference on automatic computing machines at Cambridge. Unfortunately, the proof seems to have had little influence on further development, in part, perhaps, because of the confusing nature of the presentation” (Thau).

Chapter 9 of the Handbookcontains the earliest written tutorial on how to program an electronic computer to play musical notes. The Manchester computer had a loudspeaker – called a ‘hooter’ – which served as an alarm when the machine needed attention. With some additional programming, the hooter could be made to emit a range of musical notes” (Copeland & Long). This function would be exploited by Turing’s friend Christopher Strachey (who, like Turing, had been a student at King’s College, Cambridge) to produce the earliest known recording of computer-generated music. Strachey “had felt drawn to digital computers as soon as he heard about them (in about January 1951) and, taking the bull by the horns, had written to Turing in April 1951. Turing replied with a copy of his Programmers’ Handbook and Strachey studied it assiduously. This was ‘famed in those days for its incomprehensibility’, Strachey said” (ibid.). Tn late 1951 Strachey was able to produce a rendition of the British National Anthem ‘God Save the King’ on the Ferranti Mark I. Later that year, short extracts of three pieces were recorded there by a BBC outside broadcasting unit: ‘God Save the King’, ‘Baa, Baa, Black Sheep’, and ‘In the Mood’ (see https://www.bbc.co.uk/news/magazine-37507707). Strachey recalled that Turing's taciturn response upon hearing his machine play music was: “Good show.” Strachey also used the Mark I to develop what was probably the world’s first video game. This was a version of draughts (or checkers) he developed first for the Pilot ACE at the NPL, but that machine’s memory proved inadequate. “When Strachey heard about the Mark I, which had a much bigger memory, he asked his former fellow-student Alan Turing for the manual and transcribed his program into the operation codes of that machine by around October 1951. By the summer of 1952, the program could play a complete game of Draughts at a reasonable speed” (Wikipedia).

One of the additional subroutines included with this copy of the Handbook is ‘Reciproot. Purpose. To Calculate Square Roots and Reciprocal Square Roots.’ “In writing the standard routines for square roots and so forth, he had two assistants after October 1949. One was Audrey Bates, a postgraduate student. The other was Cicely Popplewell, whom he had interviewed for the advertised post in summer 1949. She was a Cambridge mathematics graduate with experience of punched cards used in housing statistics. They both shared his office in that Victorian fortress, the university Main Building, pending the construction of the new Computing Laboratory to house the Ferranti machine. It was not a happy arrangement, for he never really acknowledged their right to exist. On Cicely’s first day he said ‘Lunch!’ and marched out of the room without telling Cicely where the Refectory was. He would talk away himself to anyone who visited, but would be very annoyed if either of them did. Sometimes the shell would crack; they persuaded him to play tennis once, and they were amazed the first time they saw him arrive apparently wearing a raincoat and nothing else, which caused some laughs. Once there was some business of him borrowing a ten-shilling note to pin on his shorts when he went home. But usually they were glad when, as often happened, he did not come in. He made no allowance for the amount they had to learn, and did nothing to mitigate what Cicely felt as ‘an acute inferiority complex’ in terms of speed of brain. Cicely also had the job of smoothing things over with the engineers, when interdepartmental tension was running high” (Hodges, p. 505).

The Handbook is divided into 20 Chapters and an Appendix:

Preface

1 General Remarks on Electronic Computers

2 Scales of notation

3 The Forms of Storage Used

4 Description of the Reduced Machine

5 Examples of programmes on the reduced machine – MULREP listing – Check sheets – [SUMPGA listing] – [SUMPGA check sheet] – Exercise

6 The multiplier and the double length accumulator

7 The logical operations – Example of use of ‘&’ – Example for reader

8 The B-tube – SUMPGB – Exercise

9 Miscellaneous special functions – Dummy stops – The hooter – The hand switches – The position of the most significant digit – The random numbers generator – The clock – The sixty-fifth lines – [Relative branches] – The time occupied by various operations

10 The magnetic wheel

11 The input and output mechanisms – [Examples] Examples of magnetic instructions, Exercises – [Library input routines] Warning character J, Warning character K, Warning character Z, Warning character Q, Warning character ", Warning character X, [Input routine timing] – Tape handling equipment

12 The console

13 Starting the machine

14 Conventions – The permanent information PERM. The routine changing sequence – Restricted use of electronic stores. Normal duties of pages – B-tube conventions – Conventions regarding the use of magnetic storage – The formal mode of operation –Replacability conventions

15 Programming Principles – (i) Make a plan – (ii) Break the problem down – (iii) Do the programming of the new subroutines – (iv) Programme the main routine

16 Programming hints – Manoevring space – Do programming directly in teleprint code – Counting procedure – Discrimination by control transfer – The B-tube as shunting station – Omission of counting – Alternative entry – Changing sign in the accumulator – Twenty-digit numbers – Clearing the accumulator – Electronic space economy measures (Duplication of use of lines, Sandwiching, Positioning of dummy stops, Relative control transfers, Inaccurate numbers, Changeling instructions) – Wholesale reciprocals – Tchebysheff polynomials

17 The official account of a routine

18 Tapes – Writing tapes – Job-steering tapes – Directories

19 Checking procedures – Measures concerning machine breakdown – Measures against intermittent error – Measures against wrong programmes – Measures against routines wrong in magnetic tracks – Measures against finger trouble

20 Brief reminders

Appendix The Pilot Machine (Manchester Computer Mark I) – Magnetic instructions on the pilot machine – Times on the pilot machine – Input and Output on pilot machine – Programming on the pilot machine – Normal duties of tubes. PERM. Routine changing sequence – [Standard routines for the pilot machine] (INPUT –OUT, OUTPG, OUTB – Mathematical functions LOGSLOW, SINAPP, EXAPP, RECIP, RECROOT – DBTEMP and BDTEMP – Testing routines) – Problems tackled – Reliability of the pilot machine Figures – (A) Powers of 10 – (B) Binary-Decimal Conversion Table – (C) Multiplication table – (D) Addition table – (H) Multiplication by powers of 2 – (E) Table of function symbols – (F) PERM and the Routine Changing Sequence – (G) Summary

Copeland (ed.), Alan Turing’s Automatic Computing Engine, 2005. Hodges, Alan Turing: The Enigma, 2014. Lavington, A History of Manchester Computers, 1998. Thau (tr.), Alan Turing’s Manual for the Ferranti Mark I (curation.cs.manchester.ac.uk/computer50/www.computer50.org/kgill/mark1/

RobertTau/turing.pdf).

With the following mimeographed items, each stapled at upper-left corner.

‘Programmers' Handbook for Manchester Electronic Computer. Errata.’ 2pp., with ink corrections, 13 March 1951; Errata, 3pp., 28 March 1951; Errata, 2pp., 9 July 1951.

‘Manchester Electronic Computer Mark II’. Rough Tapes, 3pp., [6 July 1951].

‘Manchester University Computing Machine Laboratory. Programme Sheet I ... Name of Routine, Input. Purpose. To Read from Tape’, 3 pages, a few small ink corrections, 1 July 1951; ‘Manchester University Computing ... Name of Routine. English. Purpose. To Print Any Fixed Material with Page Printing’, 2 pages, 1 July 1951; ‘Manchester University Computing ... Name of Routine. Roughwrite. Purpose. To Write from Rough Tapes,’ 1 page, 1 July 1951; ‘Manchester University Computing ... Name of Routine. Reciproot. Purpose. To Calculate Square Roots and Reciprocal Square Roots, 3 pages, 9 July 1951.

Mimeographed letter from Alan Turing, on ‘Computing Machine Laboratory, University of Manchester’ headed paper, addressed “Dear Sir” stating they are willing to “send copies of our library sub-routines to holders of handbooks”, with attached slip to return to the secretary if they want to receive them, and also enclosing [three, attached] samples of “our blank programme sheets and check sheets” stating where and at what price (“£5-6-6 per 1000 for programme sheets, and £4-15-0 per 1000 for check sheets”), 5 pages [1951].



Small folio (330 x 205 mm), ff. [ii, title], 97, [23], printed recto only throughout, gelatin silver photograph of the ‘Monitor Tube’ mounted as issued beside text (“Information represented by monitor display”), blue ink corrections (corresponding to the errata notices included with this copy of the Handbook) on 30 pages, 2 pencil inscriptions in a different hand. Publisher’s cloth-backed printed wrappers, compliment stamp/inscription on upper cover (several old scratch marks to upper cover, one touching letters).

Item #6191

Price: $50,000.00

See all items in Computers, Numerical Methods
See all items by