What was it like to program an early digital computer? [Woven Memories] wanted to know and wants you to know, too. [Maurice Wilkes] and his team wrote a book about their EDSAC and the 18 instructions that it used. These days, you can even run an EDSAC program on a number of emulators.
It is hard to realize how things we take entirely for granted had to be invented by [Wilkes] and his colleagues. The book, “The Preparation of Programs for an Electronic Digital Computers” has, among other things, the first recorded use of a software library and the first API. Even the subroutine needed inventing by [Wilkes’] student [David Wheeler], which was known for a while as the “Wheeler Jump.”
Like many things in old computers, the Wheeler Jump required code to modify itself. Even indexing modes were often implemented by changing an address inside the program.
While we frown on techniques like this today, you have to start somewhere. We are big fans of EDSAC and [Dr. Wilkes] had a long and distinguished career long after EDSAC, too. The original plans for EINIAC led to EDSAC, EDVAC, and a slew of other early machines. You can see a video of the machine with an introduction by [Wilkes] below.
If you want to try your hand with the EDSAC, try your browser. There’s also a very nice Windows emulator that runs fine under WINE.
There’s a lot of argument over which was the first modern computer to be built. There’s room for debate, but EDSAC — the work of Dr. Maurice Wilkes — certainly was among the first. While we’ve seen simulators before, [hrvach’s] FPGA-based simulator for the MiSTer platform has a lot going for it. Check out the video, below.
So much of what we take for granted today was first developed on the EDSAC. For example, the “Wheeler jump” (named after graduate student David Wheeler) was the origin of the idea of a subroutine.
There’s a lot of debate over which of several contenders was the first modern computer. One of those first operating computers was the University of Cambridge’s EDSAC — the brainchild of Dr. Maurice Wilkes. The EDSAC scored a lot of firsts and used a serial data path along with mercury delay line memories. Over on Hackaday.io, [David Boucher] wanted to simulate the EDSAC in a much smaller form factor than the original room full of racks.
As you can see in the video below, he succeeded in that task, using a Teensy and a small LCD display. We’re reminded EDSAC was among the first machines so some of the terms we would employ were not in use yet. An order is an instruction, for example. Initial orders are akin to a bootloader. Continue reading “Is That A Vintage Computer In Your Pocket?”→
When you write a program for your computer, whether it is a desktop machine, a microcontroller, or a supercomputer, the chances are that you use software tools to help you get the job done. High level languages, compilers, linkers, assemblers, debuggers, and code libraries have become so integrated that in many cases you will barely be aware of their existence. To all intents and purposes this huge toolchain will be the computer. But the first computer programmers had none of these luxuries. They had to hand assemble their own binaries, check them by hand, and debug them by guessing what had happened when they failed.
EDSAC (Electronic delay storage automatic calculator) was the first computer operated by the University of Cambridge in the UK and one of the first few computers in the entire world when it was built in the late 1940s. It is the subject of the 1951 film you’ll find embedded below. Originally produced for a conference, the video sports a 1976 introduction and narration from the machine’s creator Professor Maurice Wilkes. It doesn’t take us through the design of the machine itself, instead it concentrates on the workflow required to program it.
The Paper-Heavy Process of Programming EDSAC
To illustrate the programming process, a committee of people who would now call themselves computer scientists, but probably then called themselves mathematicians, breaking a formula into subroutines before the code is laboriously hand assembled. The linking process is performed manually too by the secretary who types the code into a teletype for transfer to a punched tape. When a library function is required she reaches into a filing cabinet for the roll of tape containing it before running it through a tape duplicator to add it to the program. Finally the completed tape is checked and added to a job queue that consists of a row of hooks on the wall. Never complain that your toolchain is unwieldy again!
The original EDSAC was decommissioned in the late 1950s after serving the university and spawning a commercial version, the LEO, which became the first ever computer manufactured for use in commerce. That was not the end of the EDSAC story though, because in this century a team at the National Museum of Computing at Bletchley Park set about recreating EDSAC as an exhibit. And as luck would have it a member of that team was at the recent Electromagnetic Field hacker camp to give a talk about their work which you will also find below.
Building a Faithful Reproduction of EDSAC
Tony Abbey gives us both a history of the machine and a description of its architecture, followed by a run through their efforts in rebuilding it. You may be surprised by some of the unexpected facts from the talk. For instance, while all the tubes used in the EDSAC are still available, their bases are not. Equivalents were sourced from China, but team members had to modify them with dental drills.
They also needed to manufact the 1940s-style tube chassis, and the solution to that problem happened to be just down the road. Bletchley is part of modern-day Milton Keynes, a post-war new town that is also home to another famous name: Marshall amplifiers. Tube amps are built in a surprisingly similar way, so they took on the manufactured challenge. Not all the parts of the new EDSAC are original though. The memory used mercury delay lines in 1949, but for 2018 recreation the computer has a delay line using nickel wire and modern components. Tony admits that even that has caused problems, and there is a simulator using a microcontroller.
We often think that not enough people are building things with FPGAs. We also love the retrotechtacular posts on old computer hardware. So it was hard to pass up [karlwoodward’s] post about the Chip Hack EDSAC Challenge — part of the 2017 Wuthering Bytes festival.
You might recognize EDSAC as what was arguably the first operational computer if you define a computer as what we think of today as a computer. [Maurice Wilkes] and his team invented a lot of things we take for granted today including subroutines (Wheeler jumps named after a graduate student).
The point to the EDSAC challenge was to expose people to creating designs with FPGAs, particularly using the Verilog hardware description language (HDL). If you want to follow along or run your own Chip Hack, the materials are available on the Web. You can see an FPGA driving a tape punch to create souvenir tapes in the video, below.
Some of the exercises are pretty simple and that’s perfect if you are starting out. The challenge uses a board with a Lattice ice40 FPGA and the open source toolchain for Lattice we’ve covered before. In fact, we’ve even done our own tutorials on the same basic device (but not the same board). Our final project generated PWM, not paper tape.
For the record, EDSAC was awesome. The execution unit was serial and processed bits that marched in one at a time over a mercury delay line. There is quite a bit of documentation and even some simulators, so if you ever wanted to get your hands into an old computer, this one isn’t a bad one to try.