Building a 16-bit CPU in a spreadsheet is Excel-lent engineering
But can it run Doom?
Microsoft Excel was used for many purposes over the years from accounting to 3D rendering, yet implementing a 16-bit CPU in the spreadsheet is something else.
Shown off by InkboxSoftware and viewable in a handy video, the implementation is not a clone of the popular 16-bit CPUs with which readers might be familiar, like Intel's 8086 or Texas Instruments' TMS9900. It instead has its own custom instruction set architecture consisting of 23 instruction mnemonics and 26 opcodes.
It's all you need to run some simple programs. Sure, something like the TMS9900 is a bit more capable – yes, this writer used to tinker with assembly on a TI99/4a more than 40 years ago – but there is a certain delight in seeing the CPU's design laid out in Excel form, particularly since the author was able to avoid using VBScript.
As well as the 16-bit CPU and 16 general-purpose registers, there is 128 KB of RAM and a 128x128 display.
- Cybercrooks amp up attacks via macro-enabled XLL files
- It is 2023 and Excel's reign of date terror might finally be at an end
- Royal College considers no confidence move after Excel recruitment debacle
- Excel Hell II: If the sickness can't be fixed, it must be contained
We fired up the spreadsheet, and everything appeared to work after a fashion (we're not joking about slow performance). The CPU runs at around 2-3 Hz, a far cry from modern hardware but ideal for seeing what is actually happening under the hood. The Reg advises not mashing the F9 key to get things to run faster – one has to wait until Excel has finished updating its cells before starting the next cycle – but we can see where a bit of VBScript might be helpful to keep things moving.
Still, the implementation is hugely impressive. As the author says: "Is it possible? It's the best kind of possible – theoretically possible."
The Excel 16-bit CPU is the latest in a long line of unconventional processors, including CHUNGUS 2 in Minecraft and the Megaprocessor at the Centre for Computing History in Cambridge. The latter, created by James Newman, consists of seven panels and measures two meters high and nearly ten meters end to end. It can also run at a dizzying 20 KHz, although it can be slowed down to 0.01 Hz to permit the flow of data to be viewed. Individual LEDs represent every bit of the device's 256 bytes of RAM.
With AI tools and low-code abstracting developers further and further away from what is actually happening inside a computer, it is difficult not to applaud efforts to show exactly what is going on behind the scenes to render "Hello, World!" ®