Welcome, zpe, that's a very nice project!
Thanks a lot! Right now it works like a "calculator" - executing one command at a time, and that command happens to be an ASCII character so it can be directly driven from any keyboard type device. However, the 8 registers could be repurposed as general registers one of which can be PC and it could execute code from a program store. In that case at least 2 registers should be "opened" to outside bus in parallel fashion (classic mem address and data registers). Maybe I will return and explore that a bit further. Performance could be increased by keeping 2 switch matrices - one which is used to drive the serial registers and ALU, while during that time the other is initialized with switch state for next operation, and then flipping them effectively every 16/32/n cycles. That way the time now spent turning on/off the switches in the matrix (during which time the CPU is idle) could be eliminated.