Some of you will know that I am a proponent of minimal computing devices.
I have more than a passing interest in retro-computing, because after all, back in the day, hardware cost so much, – for example in 1963, in the PDP-5, every transistor cost about $20 in today’s equivalent, and had to be justified.
Now that same $20 will buy 4 Pi-Zero dev-boards, with 1GHz ARM processors- needing about 20 million lines of code just to be useful.
So I have embarked on a journey of discovery and learning, to see if we can make computers a lot simpler.
The first real computers appeared in the late 1940’s, and filled a room with racks of power hungry vacuum tubes. My father attended Cambridge University as an undergraduate at this time – and probably unbeknown to him, computer history was being created daily by a group of dedicated mathematicians, engineers and technicians.
EDSAC was one of these early computers, and with 3000 tubes, and about 650 instructions per second was cutting edge back in May 1949. With just 16 useful instructions, and memory based on ultrasonic delay lines EDSAC was created to do useful computational work – to assist Cambridge academics with their research.
Nearly 70 years later, the National Museum of Computing at Bletchley Park, is building a faithful reproduction of EDSAC – hopefully with it coming online later this year.
The Open Source Hardware Users Group – are having their own tribute to EDSAC, with the “EDSAC Challenge” – to be held as part of the Wuthering Bytes, Digital Festival, in Hebden Bridge, in early September.
EDSAC will be faithfully emulated using the latest open source FPGA technology – and teams of enthusiasts will work together to contribute meaningful demonstrations of what can be done with modern technology – as a tribute to the venerable EDSAC.
My own contribution will hopefully be a port of a tiny interactive language called SIMPL – which creates an interactive programming environment in just a few hundred instructions of assembly language.
Capable of arithmetic and logical operations, looping, printing strings, and interpreting sequences of alphanumerical data – SIMPL will present a challenge for the computational resources of EDSAC.
EDSAC really only has about 16 useful instructions and 1K words of memory. This is going to cramp most programmer’s style.
However, if you examine the instruction set – the basics are there, but it will just take an extra bit of ingenuity to get the most out of them.
ADD SUBTRACT MULTIPLY AND JUMP IF >=0 JUMP IF <0 SHIFT LEFT SHIFT RIGHT TRANSFER ACC TO MEMORY AND CLEAR TRANSFER ACC TO MEMORY DON'T CLEAR TRANSFER MEMORY TO MULTIPLICAND REGISTER MULTIPLY AND ADD MULTIPLY AND SUBTRACT INPUT A CHARACTER OUTPUT A CHARACTER NOP ROUND ACCUMULATOR STOP
Having just completed coding up my SIMPL interpreted language in just about 300 instructions in MSP430 assembly language – the challenge is now to code it up in EDSAC machine language – in under 1k words.
The next few posts will report on my progress – as I battle with the EDSAC simulator.