We have here an emulator for the Cambridge EDSAC. It is a lot more
user-friendly on this screen than it would have been initially when, remember,
you are dealing with five hole paper tape. That's what your program went in on
Your answers came back out on five-hole paper tape, which it was your job to put
through a teleprinter machine, which chattered away, read your tape, and
printed out the answers. Fortunately we have the printed out answers shown in
front of us. Here is the standard display of this emulator, so handily written by
our friend Martin Campbell-Kelly from the University of Warwick. You can
download this for yourself, it's free to use, and just play with it to your
heart's content. And it's very nice to have the
opportunity to play with a really genuine early first-generation computer.
>> Sean: We've been talking about John von Neumann or Johnny von Neumann >> DFB: Call me Johnny!
>> Sean: Call me Johnny. Yeah! So EDSAC's being built in Cambridge? But how does it end up getting
connected to von Neumann? Is that what we're going? >> DFB: Yes, that's right. It's
the other way around of course - that the person who built EDSAC, Maurice
Wilkes, exact contemporary of Alan Turing. Both got first-class degrees in
mathematics. He was the one, Maurice Wilkes, who went to
John Von Neumann's Summer School, in 1946, at the University of Pennsylvania, [in] the
Moore School of Engineering. Poor old Maurice had such difficulties with
raising the money, with getting his passport straight and all sorts of other
issues, that he actually arrived four weeks late, for a six-week course! One has
to remember, of course, in those days, it was not straightforward. You were talking
about ships, you know, going via Iceland, and heaven knows where, and train
journeys to finish off, down to Pennsylvania. But anyway, I think he must
have had - what was the technology? - Roneo'd or Cyclostyled notes - when he got
there. He got copies of the notes and was able to follow exactly what was going on,
learned about the proposed von Neumann architecture, knew
that there was going to be this thing called EDVAC - being built in Pennsylvania
and he and all the other participants were more or less I think, invited to go off, do your
own thing, support the cause of general purpose,
binary-based, digital computers; all electronic, not electromechanical - for the
inner electronics. And, in fact, it's worth saying something about this whole
business about "What did it cost you to be all electronic in those days"? I would
remind you that Tommy Flowers' decision, with Max Newman, to build Colossus out of
thermionic valves - that's vacuum tubes for those of you still in North America ! -
it did cost you. Yes, you could switch them on and switch them off. You could use them as
logic elements. But boy did they consume electricity! And then, of course, you
have to have air conditioning to get rid of the heat that they'd produced!
All the time what held things up was you wanted to use them as switching
elements, but you really paid the price in terms of power consumption. So Tommy
Flowers and his special purpose Colossus machine - six kilowatts. EDSAC, now being
rebuilt in Cambridge (correction: at Bletchley Park) The EDSAC rebuild should go live this coming summer, 2018.
Watch out for that. A good time to visit the National Museum of Computing which
is co-located on the Bletchley Park site. Power consumption of EDSAC? 11 kilowatts.
For comparison: power consumption of ENIAC the gunnery-trajectory
special-purpose computer 1946, University of Pennsylvania, USA. I bet you can't
remember the number, Sean! It's horrifying! >> Sean: 20? >> DFB: 150 kilowatts! All of that using
thermionic valves for the logic elements inside your computer yes that could
certainly be done. The big problem was memory.
There was really no obvious technology for memory. You get round it on the
Colossus machine by saying well your data, which you want to remember, just
cycles around on a continuous loop [of paper tape] The program - well that's easy, that's not
on tape because that is such a special purpose machine you key in the
program on switches - uniselectors - so your memory there (for your data) was
paper tape. But if you didn't want paper tape whizzing round at 30 miles an hour
what other options were available to you? And the answer is - not many. And as we'll
find out, on EDSAC, with Maurice Wilkes coming out of a radar background, he knew
that in the early days of radar, when pulses came along - and these are
interesting pulses could it be an approaching German bomber - you wanted to
not only get hold of the pulse but to hang on to it, and remember it, so you
could analyze its shape and so on And the way they did that is the most
amazing technology. It's called mercury delay lines. The bleep pulse that you get
was put, basically, through a little loudspeaker so it went "bleep". But instead
of transmitting through air, so you could hear it, it was transmitted down a column
of mercury. Why? Because sound travels a lot slower in mercury than it does in
air and at the other end there was a microphone, at the other end of your tube,
which heard the bleep and displayed it on an oscilloscope screen for you. But
then recycled it - took it back to the start of the mercury tube and sent it
down again so you had a continuously circulating system that showed you what
your pulses were and the idea was to use that same technology to represent the
0s and 1s in computer memory, which they did. It was not very satisfactory, in
so many ways, but you just had to do your best.
>> Sean: Presumably it deteriorate didn't it, this sound ... ? >> DFB: No, because when you
detected it, at the other end, you amplified it before you fed it back
again. So you could keep the purity of the pulse going for as long as you
wanted to. That was the idea. So, the story continues. Maurice Wilkes came back to
England and in a testament, really, to Cambridge's being fairly well-heeled
and to their faith in Maurice and to their need to be at the forefront of all
this stuff, they - by "they" I mean the University and the Mathematics
Department at Cambridge - agreed to bankroll Maurice to build one of these
new-fangled machines provided that when it was completed it could offer a
service to the University. This is very different to what happened in most of
the universities, where electronics engineers were just allowed to build
systems where you [the engineers] just played with them, and didn't really offer a computing
service to the community at all. They were just pure research machines. Maurice found
himself a very good hardware engineer called Bill Renwick
who was just excellent. You had to have this. You had to have a real devoted
electronics engineer, who knew what they were doing, to get all of this working.
When you look at it you've got this box - it's hardware, you've got to get it
working. You've got to get instructions in it; you've got to make it work but you
need a software person. And you need the world's first ever system-software
person - and they'd better be good! Somehow these people seem to come along, as and
when they're needed, I can never understand quite why. And the answer at
Cambridge was a really talented person - who I did know but rather slightly -
called David - David Wheeler. We can now say that as part of the celebrations
this summer, when the EDSAC rebuild is switched on and works perfectly(!) ... To go
along with that a very good friend of ours on Computerphile, Professor Martin
Campbell-Kelly, developed an emulation of EDSAC and how it works. So, rather than
talking in abstract about EDSAC let's get stuck in and run some programs on
EDSAC and see what you're up against with a very genuine first-generation
machine where you will program in the crudest
and most brain damaging form of assembler you can imagine. And you've got
to get it right. It is not easy to debug EDSAC programs. It can be done but you
know it's hardcore stuff. You want to be a pioneer? This is what you get! I think
what I'll do is first of all, just for fun,
let's run some programs and get the feeling for how nice it is to mess about, even on
a very early machine like that. For those of you interested afterwards what is of
great computer science technical interest is: how on earth do you boot
this thing up so it can read in your program? In other words it's not got a
BIOS - it's far too early for that. But what was the equivalent of the BIOS? What
was it that got you started? That you had to have there even to be able to
read in a paper tape - well that's called Initial Orders - we'll do those later.
For the moment we'll just accept that Initial Orders version 2 is the one that
is relevant here. And I've used Initial Orders to load in a program that was
written by an early pioneer called Sandy Douglas. Here's his name A. S. Douglas
If I load in that program now by "Start". Here and this really is EDSAC but this
was an oscilloscope screen. This is the so called `display' of the Long Tank, with
a long tank of mercury which held roughly a kiloword - 1024 18-bit memory
words were held in mercury. So it's like 1K words, a few Kbytes, that was
your limit. OK, so once you got used to reading these oscilloscope screens - and
remember this oscilloscope screen is not the memory itself it's `peeping' at the
memory by having a little monitor, as it were, checking the pulses in the mercury
tank and displaying them on the oscilloscope. And remember and give
thanks for the fact that this LOADING PLEASE WAIT
"EDSAC / User first Dial 0/1", now comes back at you, courtesy of Martin [Campbell-Kelly] in a clearly
visible screen. In the good old days it would probably have come back to you on
paper tape, or something, and you would have to go and print it off to get your
results. But this is pretty well interactive. On this dial here, on the
console, do we want EDSAC to go first or User to go first? Well, the game
we're playing here is one known in the US and elsewhere as tic-tac-toe,
known in the UK as noughts and crosses. But simple. I think everybody knows the
rules and I think everybody pretty well knows that if you play optimally it's
always a draw. >> Sean: I have a feeling there's a Numberphile [video] on it somewhere ...
>> DFB: There must be a Numberphile on it somewhere Yes, you can always force a draw so should we
do ... first of all we'll take the lead and force a draw? So EDSAC or User first?
Well, we'll say User first so I dial 1. Now, let's what see what happens.
Oh! look at that! The cathode-ray tube display has been altered by the
program to actually show the grid that we're going to play tic-tac-toe on. And
because it's me, the User first, it's now saying, to me, `dial my move'. Now, here's
the key at the top [of the display]. Look, 9 8 7 6 5 4 3 2 1. Those are
the areas on the tic-tac-toe board and, as we all know I think, optimal strategy
is to grab the centre one first of all, yeah, and then EDSAC's responded by putting
a 0 in at the top left. I'm going to respond by - knowing it's a number - to
dial in 7. Now I should ... you think that's a slow response? Was EDSAC really
that slow? Hmm! that is six times faster than EDSAC was. I've calibrated it. This
emulator on this machine seems terribly slow but it's running six times faster
than EDSAC did. Right at the very end I may allow myself, if you want to be
shocked and horrified, to click the thing, up here, that says "Real Time". That will
slow it down so that it really is as slow as EDSAC was ... >> Sean: Why don't we do that now?
>> DFB: Let's do that now ... >> Sean: After you make your move let's see how slowly there
Would there have been one of those dials .... that looks like an old telephone dial?
>> DFB: It is an old telephone dial. And I think that was there for diagnostic purposes on the actual EDSAC, yes.
We're trying to win this aren't we ?
9 8 7 6 isn't it? I put an X in there Otherwise the wretched machine's gonna win.
Was that slower? >> Sean: Oh yes! >> DFB: I think it was, But look it's blocked me there. It's doing
the right thing. So I put in an X at 8. There we go.
>> Sean: It's definitely slower. >> DFB: Definitely slower, And good old Sandy's program has already
told me, it's a drawn game. So let's load up from the library .. ah!
Conway! OK, well I think we all know about Conway's game of "Life"? There are
these sets of dots and there are various rules about a dot in the middle either
been overcrowded - with too many dots around it - or getting all lonely and out
on a limb, and dying off. But in the middle, if it's just got the right number
of friends then they breed and they spawn off more things. It was a very popular
invention by John Conway in ... was it the 70s or the 80s ? ... somewhere around there.
And everybody was playing Life using pencil and paper methods, or using
computers latterly of course. Now this [program] was not written actually at the time of EDSAC's
unveiling in 49 - because `Life' hadn't been invented (!) But somebody, later on, with this
simulator in in mind, and in view, has actually written Conway's `Life' to
display here for us. So let us load this thing in. It's by Ian Gillman, written in 1998,
and the rule is on this emulator, for those of you that download it, the program
you are displaying is the one that will get loaded, and run, when you press `Start'.
So just keep your program windows in the correct order, one on top of another, and
the one at the top is the one that will load. So, we'll load it up with Start
Takes quite a while to load things. It's quite a complicated program. Ah! now, it's
started calculating now. This is the initial configuration; it warns you here
[that] each generation takes about five EDSAC minutes. Now I have not put it onto real
EDSAC slow time. I've put it on to six times faster simulator time. Again, all
according to Conway's rules it will ... Look! It's gone! It's changed; new generation.
So, I think my rule is about right. It is roughly 5 to 6 times faster here,
because it's taking around about a minute.
I just daren't put it onto real time EDSAC >> Sean: We'd run out of tape >> DFB: We'd run out of tape!
But anyway so >> Sean: I can see a clock on the right that looks like it's going
a bit fast is that .... >> DFB: I think that's trying to show you genuine EDSAC time. So, if on
this simulator it's 5 or 6 times faster than real EDSAC would be it's
therefore making the clock go six times faster, I think, to show you how
many elapsed minutes it would have taken on EDSAC >> Sean: Down at the bottom there I can see
a lot of flickering and flashing that's all the calculation? >> DFB: That's all the
calculation. This is showing you - see, look - you've got a multiplier register in your
CPU, you've got the thing you're multiplying by; you've got the answer
which comes out in the accumulator. Even modern chips have an accumulator for
your current arithmetical answer. Right? The SVT here is showing you the address
of the current instruction and the actual bit pattern for the current
instruction, that has been decoded and executed, is shown in the so-called order
tank. So, that's the instruction register; that's the pointer telling you where
from memory you've taken that instruction and it's a pretty minimal
CPU. The thing we notice here is there are virtually no general-purpose
registers, which is what you're given in a modern CPU. So I think that's a pretty
good one actually to illustrate with. We can stop it off now. So I hope this has
convinced a fair number of you - particularly those of you very keen on
history of computing and low-level programming in general - that it's a
testament really to the very spartan architecture of EDSAC - you know, cut
everything down to the bare minimum; get it working; it's got to give a service.
And that means that it has stood the test of time. It's worth rebuilding. People could
finally ease relatively easy to do a good emulator for it and that in a sense
has made it worthwhile to rebuild at Bletchley Park. So you can be part of
this. Get hold of Martin's emulator. Enjoy yourself.
Write ultra-low level programs for EDSAC. Oh! and remember when you're
doing it that the actual pseudo-tape you type up in the end
although on these program listings you're allowed to put comments on -
because you're a weak human who needs to remind yourself of why you're doing that -
when you actually key in the tape itself that backs this up there must be no
comments, no extraneous characters, only white-space is permitted. So there you are,
anyway enjoy yourselves. And the next video is basically saying how on earth
do we get this thing to boot ?!