Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
The EDSAC Order Code: Explanatory Notes
Computer Laboratory > The EDSAC Order Code: Explanatory Notes

by David Wheeler

Order Code

The orders in the order code were devised by Maurice Wilkes probably with Bill Renick's assistance. It had been decided to have a full order decoder, so the choice of letters for the functions was reasonably unrestricted. I suggested the present letters with the aid of other's suggestions. I cannot remember why we could not use M for multiply, but we did try to make it as mnemonic as possible. J was not used for jump because the operation was then thought of as "transfer of control".

The strange shift orders were a small nuisance, but they used almost the same hardware as multiplication. The shifting continued until the least significant of the order was strobed.

The orders had the binary format as follows: There were 17 bits to define an order which was also the length of a short storage location. The five most significant bits determined the type of order such as add. The next was spare and had no effect (except sometimes in a shift order) The next ten bits defined a store address (in most orders). The next was a length discriminant bit which if 1 caused the operand to be a long number.

The written form of the orders was
function letter, decimal address, F/D for the length disrcriminant. e.g.
A D
S 4D
T D
The spaces and newlines were omitted from the paper tape punched for the EDSAC.

The program orders were mixed with directives which affected where the orders were placed and how they were modified, and where the program was started.

The decimal address was not fixed format and so if omitted it had the value zero. This reduced the input time appreciably.

The order code evolved with time and this is the version the computer had in 1949.