This repository contains working code for the projects for Nand2Tetris, a computer architecture MOOC on Coursera.
projects/01
contains HDL implementations of several Boolean logic gates.
projects/02
contains an HDL implementation of a logic gates that add or increment integers.
projects/03/a/
contains an HDL implementation of a program counter and 64 bits of RAM.
projects/03/b/
contains HDL implementations of various sizes of RAM.
projects/04/fill
contains Hack assembly code which toggles the color of the screen of the Hack computer when a key is pressed.
projects/04/mult
contains Hack assembly code which multiplies two integers.
projects/05/
contains HDL implementations of a Hack computer and its CPU.
projects/06/
contains a Python implementation of a Hack assembler, HackAssembler.py
that translates Hack assembly code into binary machine instructions.
projects/07/
contains a partial Python implementation of a Jack VM translator, VMTranslator.py
, which translates Jack VM code into Hack assembly.
projects/08/
contains a complete Python implementation of a Jack VM translator, VMTranslator.py
, which translates Jack VM code into Hack assembly.
projects/09/Tetris/
contains a Jack implementation of the game Tetris.
projects/10/
contains a Python implementation of a Jack analyzer, JackAnalyzer.py
, which parses Jack code and outputs the abstract syntax tree as XML.
projects/11/
contains a Python implementation of a Jack compiler, JackCompiler.py
, which compiles Jack code into VM instructions.
projects/12/
contains Jack implementations of the classes provided by the Jack OS API.