Nice,
I built a version in python with curses visualization of all states.
It emulates all chips ob the hardware level (chips.py) and does not need any dependencies except py3.7: https://github.com/dangrie158/SAP-1/tree/master/Emulator
That looks really nice, how is the speed? I did the same in C#, and implemented it up to bus and transistor level. I could execute a Fibionacci program in asm but it was horribly slow (less than 1M instructions/sec)
Worth noting that the Apple ][ and C64 had a 1.023MHz clock rate with a minimum of 2 cycles per instruction, so your “horribly slow” system might be about real-time for the era.
(Atari 800 had a 1.77 or 1.79MHz clock, but wasn’t regarded as wildly different.)