EDSAC
The Electronic Delay Storage Automatic Calculator (usually referred to by the acronym, EDSAC) was a very early computer; a serial computer internally, built out of vacuum tubes, with mercury delay line main memory. It was conceived in 1946, and the machine did its first calculation in the summer of 1949.
Operation
The action of the machine proceeds in two stages; in stage I an order passes from the store into the control unit; in stage II the order is executed. The machine then proceeds automatically to repeat stage I, in general taking the order from the storage location following that containing the order just executed. (add exception note here) Each order calls for one simple operation to be performed; for example, it may cause some number to be extracted from the store and added to whatever happens to be in the accumulator, the sum being left in the accumulator, or it may cause the contents of the accumulator to be transfered to the store. Some orders, for example left or right shift orders, do not involve the use of the store at all.
There are in the EDSAC code eighteen orders from which the programmer can build up his program. They are written in the form of a letter indicating the function of the order, and a number (the address) specifying the location (if any) in the store concerned. The address is followed by the code letter F if it refers to a short storage location, and by the code letter D if it refers to a long storage location, The full order code for the EDSAC is as follows:
Order Code
Where the code letter terminating an order is not shown it may be either F or D.
Order | Description |
A n | Add the number in storage location n into the accumulator |
S n | Subtract the number in storage location n from the accumulator |
H n | Copy the number in storagae location n into the multiplier register |
V n | Multiply the number in storage location n by the number in the multiplier register and add the product into the accumulator |
N n | Multiply the number in storage location n by the number in the multiplier register and subtract the product into the accumulator |
T | Transfer the contents of the accumulator to storage location n and clear the accumulator |
U | Transfer the contents of the accumulator to storage location n and do not clear the accumulator |
C | Collate the number in storage location n with the number in the multiplier register and add the result into the accumulator; that is, add a "1" into the accumulator in digital positions where both numbers have a "1" , and add a "0" in other digital positions |
* R D | Shift the number in the accumulator one place to the right; that is, multiply by 2^{-1} |
** R 2^{p-2} F | Shift the number in the accumulator p places to the right; that is, multiply it by 2^{-p} (2≤p≤12) |
R F | Shift the number in the accumulator 15 places to the right; that is, multiply it by 2^{-15} |
* L F | Shift the number in the accumulator 1 place to the left; that is, multiply it by 2 |
** L 2^{p-1} F | Shift the number in the accumulator p places to the left; that is, multiply it by 2^{p} (2≤p≤12) |
L F | Shift the number in the accumulator 13 places to the left; that is, multiply it by 2^{13} |
E n F | If the number in the accumulator is greater than or equal to zero, execute the next order which stands in storage location n; else proceed serially |
G n F | If the number in the accumulator is greater than zero, execute the next order which stands in storage location n; else proceed serially |
I n | Read the next row of holes on the input tape and place the resulting integer, multipled by 2^{-16}, in storage location n |
O n | Print the character now set up on the teleprinter and set up on the teleprinter the character represented by the five most significant digits in storage location n |
F n | Place the five digits which represent the character now set up on the teleprinter in the five most significant digits in storage location n, clearing the remainder of this location |
* X | Ineffective; machine proceeds to the next order |
* Y | Round-off the numberin the accumulator to 34 binary digits; that is, add 2^{-35} into the accumulator |
* Z | Stop the machine |
* The addresses in these order codes need not be zero. ** The addresses in these orders may be k.2^{p-1} where k is odd, provided that the addresses do not exceed 2047.
See also
Further reading
- Maurice Wilkes, David Wheeler, Stanley Gill, The Preparation of Programs for an Electronic Digital Computer, Addison-Wesley, Cambridge, 1951 - the very first book ever published about programming
- Maurice Wilkes, Memoirs of a Computer Pioneer, MIT Press, Cambridge, 1985 - chapters 13 and 14 cover the EDSAC
- Brian Randell (editor), The Origins of Digital Computers: Selected Papers, Springer-Verlag, Berlin, Heidelberg, New York, 1973, 1982 (3rd edition) - EDSAC is covered in the last sections of Chapter VIII
- Nicholas Metropolis, Jack Howlett, Gian-Carlo Rota (editors), A History of Computing in the Twentieth Century, Academic Press, New York, 1980 - EDSAC is covered in the last section of Part IV
- Raúl Rojas, Ulf Hashagen (editors), The First Computers: History and Architectures, MIT Press, Cambridge, 2002 - the last chapter in part IV covers an EDSAC simulator
External links
- EDSAC
- The thinking behind EDSAC - personal memories from Maurice Wilkes
- The EDSAC and Computing in Cambridge