I recently discovered Logisim, and incredibly powerful discrete logic simulation program. It’s free and open-source. For such a simple program it’s incredible what it can do, from simple simulations of gated-logic all the way to components of ROM (into which you can save opcodes for a program) and RAM. It even has keyboard and TTY simulation support.
I’ve always been fascinated by how a modern computer is built from the most simple components. Transistors and clock signals can grow into something programmable. In college we had fun with FPGAs but I find there’s something magical about making non-programmable circuits into something programmable.
Over the coming months I intend to build a computer from discrete logic components, starting with transistors and moving up as far as I can with Logisim. Lots of people have done this, so it’s nothing new, but I find the discovery process will be helpful for my understanding of how computers come together. I may even breadboard the final design once it’s complete and have my own home-brew computer!