Build a computer from scratch from nand2tetris.org