in the form of a transfer, in decimal, such as 13-16, meaning to copy the word in register 13 to register 16. The location of the instruction was not specified. STAC allocated an instruction to a word in a delay line, and computed the six components of the binary instruction. It allocated the next instruction to a location that was optimum, to be executed as soon as the previous instruction was complete, if possible. The following program reads in a value, n, and then reads in n binary integers. It punches out the integer and its square. Comments in lower case explain the instruction. 1.0 12-24 start the card reader. The location of the program is specified as 1.0. 0-13X read one number (n) from the card reader. The letter X causes the computer to wait until the first row of the card has arrived at the reading station. R2 12-24 start or re-start the card reader. 0-16X read one number to be squared, store it in the multiplier register. 9-24 stop the card reader. 16-21.3 copy the number to the multiplicand register. 30-21.2 clear the low-order bits of the multiplicand register. MULT 10-24 start the card punch. 21.2-29X send the square to the card punch. 9-24 stop the card punch. 27-26 decrement n. 13-28 R1 test for zero. Branch on zero to R1; branch on not zero to R2. R1 1-1X halt; the program is complete. STAC would produce the following instructions (in addition to the binary program). The memory location of each instruction is shown at the left. 1.0 12-24 1.2 0-13X 1.4 12-24 1.6 0-16X 1.8 9-24 1.10 16-21.3 1.13 30-21.2 1.16 0-24 wait 1 1.18 1-1 wait 1 1.20 10-24 1.22 21.2-29X 1.24 9-24 1.26 27-26 1.28 13-28 1.3 1.3 1-1X Wait and timing numbers are not shown, except for the multiplication. Programming Programming the DEUCE was different from other computers. The serial nature of the delay lines required that instructions be ordered such that when one instruction completed execution, the next one was ready to emerge from a Delay Line. For operations on the single registers, the earliest time that the next instruction could be obeyed was 64 microseconds after the present one. Thus, instructions were not executed from sequential locations. In general, instructions could transfer one or more words. Consequently, each instruction specified the location of the next instruction. Optimum programming meant that as