If you haven’t seen Ben Eater’s YouTube videos, they are top-notch. Even if you “know” the subject material (I thought I did...) they are very well done and worth watching.
I was thinking about doing this myself (but in Javascript, coz that's what I'm using day to day at the moment), and literally implementing each module of the board as a seperate piece of code.
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: <a href="https://github.com/dangrie158/SAP-1/tree/master/Emulator" rel="nofollow">https://github.com/dangrie158/SAP-1/tree/master/Emulator</a>