An implementation of the projects described at https://www.nand2tetris.org.
The different folders correspond to different tasks outlined below:
- Tasks 01 to 05: Implementing a complete CPU ISA with the primitive
NAND
gate and the primitive flip-flop. This was done in HDL. - Task 06: Building an assembler for that ISA.
- Task 07: Designing a virtual machine, and it's bytecode interpreter
- Task 11: Designing an OOP language, and writing a compiler that turns it into the VM's bytecode.
- Task 12: Designing an operating system in this language.
- Task 09: Writing a graphical Sudoku game for that operating system, in the designed language.
The computer facilitated screen and keyboard usage using memory-mapped I/O. The assembler, interpreter and compiler were written in Typescript.