I recently finished a book called Nand2Tetris (nand2tetris.org) where I built my own computer system from scratch with its own machine language, assembly code, and a high level language called Jack that's translated to Hack binary. However, I feel like the "computer" I built throughout the course of this book (called the Hack computer) is a bit too simple for various reasons:
1) There are only two registers (D and A), whereas most computers have much more
2) Peripheral devices like mouse and keyboard have to be directly implemented
3) Peripheral devices use a pre-planned shared memory map to communicate with the CPU instead of using interrupts (which aren't covered at all)
4) Jack (the high level language) code doesn't compile to Assembly code directly, instead it compiles to an intermediate language, which in turn gets translated to Assembly.
5) There is no ROM or permanent storage device, everything is stored in RAM
6) No support for colored monitor, networking or sound
I would like to build a more complicated computer system now based on what I've learned from Nand2Tetris. Does anyone know of any good resources or books to get started on this?
(BTW by computer system I mean software that can emulate the hardware of a virtual computer with its own unique instruction set)