Preparing for Chip Hack EDSAC Challenge
Getting an old 8-hole paper tape reader working for use with a modern FPGA platform.
Chip Hack EDSAC Challenge event ran as part of Wuthering Bytes 2017. The workshop provided an introduction to Verilog and FPGA development, and as part of this, the historic EDSAC computer was recreated via a modern, low-cost FPGA board.
This post looks at our work to get an old paper tape reader working in preparation for the event. In future posts, we’ll take a look at the tape punch, and the MyStorm FPGA board used and workshop.
What is EDSAC?
The Electronic Delay Storage Automatic Calculator (EDSAC) was an early British computer constructed at the University of Cambridge. The design was started in 1946 and it ran its first code in 1949, calculating a table of squares. It was used to solve problems in the university up until 1958 when it was replaced by EDSAC 2.
For those of us now in 2017, we all carry multi-core computers in our pockets, and in some cases on our wrists, that put supercomputers of the 90’s to shame. It’s hard to fathom living in 2017 not having a calculating device. This was the case in the 50s, solving problems that we just can type in our magic pocket smartphone would be impossible in such a short period of time, requiring many years of toil for 10 seconds of typing in the modern day.
In addition, back in the 1950s computers were not like they are today and they did not have apps or even an operating system. The nearest modern analogue to EDSAC is as a microcontroller when using assembler, but even they out perform EDSAC by a fair margin.
Unlike the modern devices, there was extremely limited storage: a whole 512 words, each consisting of 17 bits. Yes, that’s not a typo, 17 bits; the initial design had 18 bits but there were timing issues that pushed operations to use 17 bits for reliability. This left code space a little tight and programming EDSAC was more of a challenge than its modern grandchildren. Especially given most of the modern programming techniques hadn’t been invented yet.
Magnetic media was a thing of dreams
We live in the future where wireless communications, flash drives and Cloud storage are commonplace. We forget that just a few years ago we relied upon magnetic media for storage of data. In 1950 magnetic storage was a thing of dreams, as was RAM. Storing data was tricky with memory being made up of delay lines.
EDSAC used mercury delay lines for data storage. Sound was injected into mercury and measured when it arrived at the other end, with the delay being (length)/(speed of sound). This was the “RAM” and just like the modern equivalent was volatile and needed power to retain data. It was also massively heavy and being mercury, quite toxic and therefore dangerous, but that was life in the early days of computing.
For non-volatile storage paper was used, yes paper tape!
Connected to ESDAC was a teleprinter which encoded 5-bit data onto a punched tape, this could then be read just like the magnetic cassette tape on your ZX Spectrum or Commodore 64. The children of the 80’s/90’s fondly remember the “press play on tape” and then waiting an hour for it to load, but even this was faster than paper tape.
FGPA implementation on iCE40
Embecosm led on the organisation for the workshop and putting together the basic Chip Hack tutorials. Bill Purvis and Richard Miller designed the RTL for the EDSAC Challenge part of the event. By using a cost effective Lattice Semiconductor iCE40 it makes this event not only possible but practical for most individuals to participate in. The power of these devices is impressive, especially given it’s one of the smaller and cheaper FPGAs available.
Tape and punch
To give a little authenticity it would be a great addition to have a vintage tape and punch available for the event. Finding a working 1950’s teleprinter was a little bit much of an ask. We did, however, get have a tape punch and reader from CNC machine use, circa the 1980/1990s era. You may find it hard to believe, but paper tape is still being used on some CNC machines.
GNT28 tape reader
The reader came supplied with some vintage drill file on a section of tape. Turning on the device all seemed to work well. Clicking the “tape forward” button spooled the tape and we ran this a few times until there was an ominous crack/bang and the magic smoke came out…… oh no!
Switching off the unit and pulling it apart the power supply was a basic design, with a transformer and diode bridge. Attached to the transformer was a very broken X class capacitor — X go across the “line” (for those of us in the UK “the mains”). This component was short, removing it left everything looking OK, so we carefully turned the device back on and hey presto, it worked again.
We could leave the capacitor off as it doesn’t do anything for the operation of the reader, however, it is there for EMC purposes so we replaced it with a modern equivalent to keep emissions down.
Pin out problems
Doing a search for our GNT28 there was almost nothing on the Internet. Additionally, our device was parallel, which seems quite uncommon for CNC readers. We actually found the manufacturer and they were still in business, so we contacted them and they promised to send us a user manual.
While our device was apart we thought it a good time for some reverse-engineering in case the manufacturer didn’t come through. Looking a the ICs on the board it was clear there were 2 memory devices, F3341DC — these would most likely be for the data lines. Using this assumption it was relatively trivial to trace these back to pins 1-8 of the connector. All outputs seem to go through the inverters, DM7404N, so it was also clear that pins 9 and 10 were also outputs of some type. Pin 11 seems to be the only input.
Using the power of deduction, pin 11 is the control and pins 1-8 will be the data and finally, 9 and 10 will be some form of output, possibly a clock. With this, we put everything back together and moved on to testing.
Testing out a theory
In a recent post we looked at the Digilent Digital Discovery and with this device on our desk, we decided to put it through its paces. Looking at the circuit we can see the DM7404Ns are 5V, which is just within the Digital Discovery capabilities.
Connecting up pins 1-10 to inputs and then pin 11 to an output (3v3 only but should meet the logic levels of the DM7404N), we prepared the tape and turned it on. The reader sucked the whole tape in a few seconds — yikes paper hazard! Despite this, on our digital discovery, we have data. Pin 9 looks like a data ready pin since it seems to act like a clock. Pin 10 went high when we clicked ready on the GNT28 and stayed high until the tape was finished.
Shortly afterwards we received a present in the post from the manufacturer: a manual for the tape reader. As can be seen in the schematic in the back of the manual, our deductions were spot on. This gave us the confidence to make a cable and adapter. We also found we can pulse the input to provide a slower data rate out.
All that was left was to provide a quick interface circuit to a Pmod connector used on the myStorm boards that will be used at the chip hack, and all is ready for the RTL coding.
Debugging old devices is a task some find daunting, The generations that came before us had to “do it properly” and wire logic using felt tip pens and sticky tape, of all things. The reality is the problems faced are the same now as they were then, therefore the solutions will be similar. Allowing use of a tape reader at the Chip Hack EDSAC Challenge event will give a little authentic flavour to our computing history. It may even help drive the future by providing an interest in the RTL to drive this “upgrade” and the challenges within.
CommentsAdd a comment
Paper tape and punch card storage, 300 baud acoustical modems, programming by flipping switches...ah, duh memories.
@Gerapolean I remember when 300 baud was considered "high speed" We loaded our PDP-15 with punched tape. Core memory, stop the program, shut the machine down, start up at next instruction when you power it back up. Only time we "booted" was when someone crashed the machine. About two feet of punch tape to boot it, as I recall.
He. That brings back memories. I had to build a CNC replacement for a giant embroidery machine that was paper tape driven over 20 years ago. The problem was that, if the machine ran out of thread on one of the 10 sewing heads, it would only stop a few paper instructions later, and you scrapped the job. I had to reverse the kind-of G code that moved the machine, so that the operator could step back and reposition the machine before restarting. That used an 8052 and a hideously expensive PCMCIA solid state memory