|Computers are quite opaque, looking at them it's impossible to see how they work. What its creator, James, would like to do is get inside and see what's going on. Trouble is we can't shrink down small enough to walk inside a silicon chip. But we can go the other way; we can build the thing big enough that we can walk inside it. Not only that we can also put LEDs on everything so we can actually SEE the data moving and the logic happening. It's going to be great.|
Watch James talk about his creation....
This is both the largest computer I've seen, and the smallest. With 256 bytes of memory (yes, bytes!) and 15,300 transistors (compared to over 7.2 billion for the Intel Broadwell-EP Xeon) it is capable of processing less data than your average wrist watch. However, it is big enough to fill a room! That's because the creator, James Newman, has created every single part of the computer by hand. In this way, you can see exactly how a CPU works, how each instruction is decoded, and how memory is handled.
I discovered the machine on a trip to Cambridge and the Centre for Computing History. It fills two walls of the entrance hall and is a technical marvel. Not because of the innovation, but because of the patience and effort you can see in the machine.
When I got home from the museum I downloaded the assembler (to convert program code into a format the machine can read) and simulator (to run that machine code on a standard Windows PC) and started to experiment.
The language is a custom form of assembler and is reasonably well designed, with touches of an ARM RISC processor. Despite the assembler not detailing any errors you have with the code, I eventually managed to generate the image of the Mona Lisa you see here.
It's just a shame there's a bug in it!
Unfortunately, when the staff ran the same code on the real machine, it didn't work as planned. Each column on the display of 8 pixels/bits is one byte in memory, and the system had miscalculated this position by 2, causing the word 'Lisa' to start 16 pixels/bits to the right, and wrap around to the next line.
It just goes to show - no matter how much work you put into something, there'll always be a bug lurking. Somewhere!
p.s. if you'd like an easier way to program the Megaprocessor, my library code is available on the github link below.