A cool fact about the 4004 is that the Busicom calculator project it was used in actually used the 4004 to interpret a more capable virtual machine, in whose machine code the calculator app was actually written. Intel did not quite build a general-purpose processor in whose instruction set the application was written directly.
I hate to be this critical, but this is not emulating the actual 4004.
It's a logic circuit simulator that takes in a compressed representation of something and runs it, with an I/O mechanism that emulates the Busicom calculator hardware (keyboard and printer).
Still impressive for the size of the code, but the "CPU" is nothing like a 4004, or any real microprocessor.
A cool fact about the 4004 is that the Busicom calculator project it was used in actually used the 4004 to interpret a more capable virtual machine, in whose machine code the calculator app was actually written. Intel did not quite build a general-purpose processor in whose instruction set the application was written directly.
As soon as you changed any gate layouts, it stopped being a gate level emulation of a 4004.
It's just a 4004 emulator (with extra steps). The gate level simulation is of a different device that emulates a 4004.
To be fair, the whole program is amazing as a logic simulator implementation, I'm just nitpicking.
I hate to be this critical, but this is not emulating the actual 4004.
It's a logic circuit simulator that takes in a compressed representation of something and runs it, with an I/O mechanism that emulates the Busicom calculator hardware (keyboard and printer).
Still impressive for the size of the code, but the "CPU" is nothing like a 4004, or any real microprocessor.
This is beautiful.
This is beyond spaghetti code.
Why don't you take a moment to understand what you just commented on, maybe you will learn something today.
wooosh