While developing the ALU board (video coming soon, assuming the boards I ordered work), I created an emulator in C++ that will execute code like the W-4096/0 will. It takes a binary file full of 12-bit little-endian values that are loaded into memory and then executed.
You can choose to have the accumulator or all of the registers printed to the console either after a halt or after every instruction execution. There's also an option to display a 24-bit number at 4004q whenever 4010q is set to 1.
Currently, the emulator doesn't emulate any of the actual hardware or busses, it just immediately modifies memory based on the instruction that is fed to it. I might change this later, as it makes I/O difficult to emulate. This may also help me fix any bugs that currently exist
The source code can be found here, though I'm not sure if it will work on Windows:
Without knowledge of the instruction set or an assembler, the emulator would be difficult to use. That's why my friend pythondude on my Discord server created an assembler written in Racket, a variant of Lisp. Documentation for the instruction set and assembly language can be found in the git repo below.
Sorry for the long break! Since the last log, I've designed most of the CPU on a logic gate level, and I'm now working on converting that into actual resistor-transistor logic on circuit boards. In fact, I've already completed the board design for one of the most important components of the computer: the register. Using 12 D latches, 12 open collector IMPLIES gates, and an AND gate, I've made a register with inputs for output enable, write enable, clock, and reset. To demonstrate the functions of this card, I've made this video: