electronic delay storage automatic calculator edsac the electronic delay storage automatic calculator edsac was an early british computer later the project was supported by j lyons co ltd a british firm who were rewarded with the first commercially applied computer leo i based on the edsac design work on edsac started during 1947 technical overview this section needs additional citations for verification please help improve this article by adding citations to reliable sources unsourced material may be challenged and removed may 2013 learn how and when to remove this template message physical components as soon as edsac was operational it began serving the universitys research needs it used mercury delay lines for memory and derated vacuum tubes for logic power consumption was 11 kw of electricity cycle time was 15 ms for all ordinary instructions 6 ms for multiplication input was via fivehole punched tape and output was via a teleprinter initially registers were limited to an accumulator and a multiplier register in 1953 david wheeler returning from a stay at the university of illinois designed an index register as an extension to the original edsac hardware a magnetic tape drive was added in 1952 but never worked sufficiently well to be of real use until 1952 the available main memory instructions and data was only 512 18bit words and there was no backing store the full 1024word delay line store was not available until 1955 or early 1956 limiting programs to about 800 words until then john lindley diploma student 19581959 mentioned the incredible difficulty we had ever to produce a single correct piece of paper tape with the crude and unreliable homemade punching printing and verifying gear available in the late 50s memory and instructions maurice wilkes and bill renwick in front of the complete edsac the edsacs main memory consisted of 1024 locations though only 512 locations were initially installed each contained 18 bits but the topmost bit was always unavailable due to timing problems so only 17 bits were used an instruction consisted of a fivebit instruction code one spare bit a ten bit operand usually a memory address and a length bit to control whether the instruction used a 17bit or a 35bit operand two consecutive words littleendian all instruction codes were by design represented by one mnemonic letter so that the add instruction for example used the edsac character code for the letter a internally the edsac used twos complement binary numbers numbers were either 17 bits one word or 35 bits two words long unusually the multiplier was designed to treat numbers as fixedpoint fractions in the range 1 x 1 ie the binary point was immediately to the right of the sign the accumulator could hold 71 bits including the sign allowing two long 35bit numbers to be multiplied without losing any precision the instructions available were add subtract multiplyandadd andandadd called collate shift left arithmetic shift right load multiplier register store and optionally clear accumulator conditional goto read input tape print character round accumulator noop stop there was no division instruction but various division subroutines were supplied and no way to directly load a number into the accumulator a store and zero accumulator instruction followed by an add instruction were necessary for this there was no unconditional jump instruction nor was there a procedure call instruction it had not yet been invented maurice wilkes discussed relative addressing modes for the edsac in a paper published in 1953 he was making the proposals to facilitate the use of subroutines system software the initial orders were hardwired on a set of uniselector switches and loaded into the low words of memory at startup by may 1949 the initial orders provided a primitive relocating assembler taking advantage of the mnemonic design described above all in 31 words this was the worlds first assembler and arguably the start of the global software industry there is a simulation of edsac available and a full description of the initial orders and first programs the machine was used by other members of the university to solve real problems and many early techniques were developed that are now included in operating systems users prepared their programs by punching them in assembler onto a paper tape they soon became good at being able to hold the paper tape up to the light and read back the codes when a program was ready it was hung on a length of line strung up near the paper tape reader the machine operators who were present during the day selected the next tape from the line and loaded it into edsac this is of course well known today as job queues if it printed something then the tape and the printout were returned to the user otherwise they were informed at which memory location it had stopped debuggers were some time away but a crt screen could be set to display the contents of a particular piece of memory this was used to see if a number was converging for example a loudspeaker was connected to the accumulators sign bit experienced users knew healthy and unhealthy sounds of programs particularly programs hung in a loop after office hours certain authorised users were allowed to run the machine for themselves which went on late into the night until a valve blew which usually happened according to one such user programming technique edsac monitoring desk the early programmers had to make use of techniques frowned upon todayespecially altering the code as there was no index register until much later the only way of accessing an array was to alter which memory location a particular instruction was referencing david wheeler who earned the worlds first computer science phd working on the project is credited with inventing the concept of a subroutine users wrote programs that called a routine by jumping to the start of the subroutine with the return address ie the locationplusone of the jump itself in the accumulator a wheeler jump by convention the subroutine expected this and the first thing it did was to modify its concluding jump instruction to that return address multiple and nested subroutines could be called so long as the user knew the length of each one in order to calculate the location to jump to recursive calls were forbidden the user then copied the code for the subroutine from a master tape onto their own tape following the end of their own program application software the subroutine concept led to the availability of a substantial subroutine library by 1951 87 subroutines in the following categories were available for general use floating point arithmetic arithmetic operations on complex numbers checking division exponentiation routines relating to functions differential equations special functions power series logarithms miscellaneous print and layout quadrature read input nth root trigonometric functions counting operations simulating repeat until loops while loops and for loops vectors and matrices applications of edsac in 1950 m v wilkes and wheeler used edsac to solve a differential equation relating to gene frequencies in a paper by ronald fisher this represents the first use of a computer for a problem in the field of biology in 1951 miller and wheeler used the machine to discover a 79digit prime the largest known at the time in 1952 sandy douglas developed oxo a version of noughts and crosses tictactoe for the edsac with graphical output to a vcr97 6 cathode ray tube this may well have been the worlds first video game in the early 1960s peter swinnertondyer used the edsac computer to calculate the number of points modulo p denoted by np for a large number of primes p on elliptic curves whose rank was known based on these numerical results birch swinnertondyer 1965 conjectured that np for a curve e with rank r obeys an asymptotic law the birch and swinnertondyer conjecture considered one of the top unsolved problems in mathematics as of 2016 the brain further developments edsacs successor edsac 2 was commissioned in 1958 in 1961 an edsac 2 version of autocode an algollike highlevel programming language for scientists and engineers was developed by david hartley in the mid1960s a successor to the edsac 2 was planned but the move was instead made to the titan a prototype atlas 2 developed from the atlas computer of the university of manchester ferranti and plessey edsac replica project on 13 january 2011 the computer conservation society announced that it planned to build a working replica of edsac at the national museum of computing tnmoc in bletchley park supervised by andrew herbert who studied under maurice wilkes history of computing hardware list of vacuum tube computers margaret marrs the preparation of programs for an electronic digital computer by professor sir maurice wilkes david wheeler and stanley gill addisonwesley edition 1 1951 50th anniversary of edsac dedicated website at the university of cambridge computer laboratory birch bryan swinnertondyer peter 1965 notes on elliptic curves ii j reine angew math 165 218 79108 doi101515crll196521879 wilkes m v renwick w 1950 the edsac electronic delay storage automatic calculator mathematics of computation 4 30 6165 doi101090s00255718195000375897 issn00255718 wikimedia commons has media related to edsac an edsac simulator developed by martin campbellkelly department of computer science university of warwick england oral history interview with david wheeler 14 may 1987 charles babbage institute university of minnesota wheeler was a research student at the university mathematical laboratory at cambridge from 194851 and a pioneer programmer on the edsac project wheeler discusses projects that were run on edsac useroriented programming methods and the influence of edsac on the illiac the ordvac and the ibm 701 wheeler also notes visits by douglas hartree nelson blackman of onr peter naur aad van wijngarden arthur van der poel friedrich bauer and louis couffignal nicholas enticknap and maurice wilkes cambridges golden jubilee in resurrection the bulletin of the computer conservation society issn09587403 number 22 summer 1999 