This is an amazing JavaScript virtual machine for 6502 assembly language. In one JavaScript file (under 50K) they managed to include a compiler, debugger, software CPU, and graphics sub-system. I use virtualization software every day, but not since reading The Diamond Age have I seen such a compelling demonstration of the fact that any computer can act like any other computer through software alone. This is exactly the kind of turtles-all-the-way-down metaphor that gets us things like The Matrix and the domino computer. It’s tempting to think of the logic gates in the CPU as the bottom rung of the computing process, but in essence those silicon pathways are there to reverse-virtualize (realize) the logical rules of computing. The CPU is in fact an interface to those rules, and by extension to the brains of the engineers and mathematicians who designed the rules. And what are rules but software? The only place this breaks down is inside the human brain–we don’t know the rules that govern in there–so while you can emulate a computer with your brain, we can’t yet emulate our brains on a computer. But outwardly our participation is governed by rules so effectively we’re part of the machine.