HTML> Huw O. Pritchard
Huw O. Pritchard

Ferranti Mark I computer programmes

Three programmes written between 1955 and 1957 are displayed here, together with running notes, tape printouts and specimen results. The first two programmes, in my handwriting, are complete, whereas the third one, written by Frank Sumner, is missing part of the listing (but can be reconstructed from the printout of the programme tape).

  1. The calculation of hybrid-orbital shapes. Comprising a fully annotated listing (1.01 Mb) with running instructions for calculating the shapes of 3spd hybrid orbitals. Also a set of notes (232 Kb) including conversions of decimal numbers to 32-bit code:
    /E@A:SIU½DRJNFCKTZLWHYPQOBG"MXV£
    and a pair of output plots (168 Kb) for hydrogen-like and Slater orbitals.
  2. Calculation of Hückel bond orders and polarisabilites. This is a complete programme that reads in a set of 22 Hückel eigenvalues and eigevectors for the molecule 1.2:8.9 dibenzacridine, prints out the corresponding bond orders and, optionally, the bond polarisabilities. No hard-copy output has survived, but a selection of the computed bond orders are given in R. Mason, Nature, 179, 465-467 (1957), (292 Kb).

         Given here is a fully annotated listing (1.18 Mb), the complete programme tape tape (101 Kb), and a modern Fortran F77 programme (83 Kb) which recreates the input data and goes on to regenerate the bond orders, showing them to be the same as given in Mason's 1957 paper.

  3. Calculation of the secular matrix (H - SE) for the L.C.A.O description of the H2+ molecule-ion. Originally, a set of 10 hydrogen-like functions was used to represent the L.C.A.O wave function, and the required double integrals were calculated symbolically as numerical integration over two variables was too slow and too inaccurate. This is described in B. F. Gray, H. O. Pritchard and F. H. Sumner, J. Chem. Soc., 2631-2635 (1956) (475 Kb); subsequently, Epstein functions were used instead, H. O. Pritchard and F. H. Sumner, J. Phys. Chem., 65, 641-645 (1961) (685 Kb).

         The listing is incomplete, being essentially the slight changes required on going from hydrogen-like to Epstein functions, but the full listing can be reconstructed from the programme tapes (1.23 Mb). Also given are handwritten notes (by all three authors) (5.23 Mb) giving the functions, fromulae and derivations, decimal to 32-bit conversions, and a specimen output page (224 Kb); the matrix elements H and S of the symmetric matrix (H - SE) are in the last two columns, and as the machine made an error in calculating the (6,6)-element, it is recalculated at the end of the page.

         This is the matrix used by Frank Sumner to develop the "one-level store" (virtual memory) concept, to optimise the number of drum transfers in completing the solution, T. Kilburn, D. B. G. Edwards, M. J. Lanigan, and F. H. Sumner, "One-Level Storage System", I.E.E. Trans. on Electronic Computers, EC-11, 223-235 (1962). Since the electronic memory of the Mark I was too small to hold all the data, working pages needed to be shipped to drum storage and replaced by the page containing the next needed item of data. By using simple arbitrary schemes for swaps, e.g. random, or first-in first-out, this calculation took (if I remember correctly) about 680 drum transfers to complete; with Sumner's "supervisor" programme, it took 480, and the absolute minimum (calculated by Tony Brooker) was 440. A decade later, when IBM was marketing its new IBM 390 machine to us at York, it was claimed that its virtual memory implementation was 92% efficient; 440/480 ≡ 91.67%, and half the IBM visiting team were ex-Ferranti from West Gorton , Manchester!

Further information on working with the Ferranti Mark I can be found elsewhere on this site.

Also, in addition to the main Manchester Mark I Computer historical site, there is a working replica in Cologne, Germany, together with an authentic reproduction of a Kilburn-Williams electronic storage tube containing powers of two and other system information.


York University. The Department of Chemistry. Last updated :