# How was EDSAC program code represented on uniselectors?

(I hope we haven't covered this somewhere...)

The 1949 EDSAC could boot, as we say nowadays, from a bank of uniselectors. It's unclear to me how program code was actually represented on the uniselectors.

The EDSAC had 18-bit words (17 usable!) so a naïve approach would be to have 18 uniselectors, with one word on each switch position. And given that Initial Orders 1 has been reported as being 31 words long, that naïve approach would require 31 switch positions.

The photos I can now find have 5 uniselectors. That, perhaps not coincidentally, corresponds to the 5-channel paper tapes that EDSAC used. So maybe the uniselectors were delivering the same thing. That equates to 7 uniselector positions for every 2 machine words, which works out at requiring over 100 positions total (for the 31-word Initial Orders 1). That seems infeasible, though I've not actually counted positions from the photos.

So how were the uniselectors coded?

Perhaps one position of the rotating switch could hold multiple values, selected by external logic, so a complete boot load required multiple revolutions?

Added: this YouTube video from the replica project says that 4 of the uniselectors contained the data, and the 5th controlled the operation of the other 4. That doesn't get me closer to the encoding, but it does shoot down the '5 channel paper tape similarity' hypothesis.

• For what it's worth - I count 8 banks on each uniselector, and they probably have 25 'outlets' (positions) like this:- worthpoint.com/worthopedia/… Feb 21, 2021 at 4:43
• If an uniselelector works by connecting the 8 "poles" in a line together in a step, you get 7 bits for each uniselector step, or 7*4=28 bits for 4 uniselectors; that's a complete word. Then the 5th can indeed do control operations, whatever they are. I can't see how many steps the uniselectors have, but it may well be 31. Feb 21, 2021 at 7:37
• Oh, yeah: I was overlooking the (visually obvious) fact that a single uniselector has multiple banks.
– dave
Feb 21, 2021 at 11:55
• @BruceAbbott - I confirm your count of 8 x 25..
– dave
Feb 21, 2021 at 14:34
• More pieces: if you look at the bit pattern of the initial instructions, only 11 bits of the 17 bits actually have changing values; the rest is always zero. So we need 11*30 = 330 bits; we have 25*5*7 = 875 bits when every pin in the selectors is used. So there's enough bits, and actually 2 uniselectors would allow to set 14 bits of the 17 total bits needed. So the first 2 uniselectors could be the first 25 words (14 bits only), and the next 2 uniselectors another 25 words. Feb 21, 2021 at 16:19