Workshop In Computer Construction - From Nand to Tetris
Home
Syllabus
Book
Projects
Tools
Guidelines
Administratives
Tools
The Hack Student's Suite will be the main tool in this course. The suite is made out of a zip file whom you can easily open using unzip on Unix or WinZip on windows. After opening, don't change the directory structure. If you are running the suite at home, make sure you have the Java runtime installed (you can download it from the Java website).

The suite contains the following parts:

Hardware
In the first part of the course you will work on several hardware projects, leading to a complete computer system. The following tool set is necessary (and sufficient) to complete this construction:
Tool Description Files
Hardware Simulator Used to simulate and test chips. Operates on chip descriptions written in HDL (Hardware Description Language). Tutorial: PowerPoint, HTML
Assembler Implements the Hack assembly language. Translates assembly code into machine language. The latter can be tested on the CPU emulator. Tutorial: PowerPoint, HTML
CPU Emulator Emulates the Hack computer architecture, using a interactive GUI interface. Used to test and run low-level programs written in machine language and assembler. Tutorial: PowerPoint, HTML
Software
In the second part of the course you will work on software projects in which you will develop the systems listed below. Before you set out to develop a particular system, it is convenient to experiment with a working version of what you have to build. This can be done by playing with the executables below.
Tool Description Files
Compiler Implements the Jack programming language on the Hack platform. Jack is simple Java-like object-base language. The compiler translates Jack programs to VM code. The VM code can be executed on the VM emulator. Also, the VM code can be translated into the Hack assembler. User Guide
VM Emulator Emulates a typical stack-based virtual machine. Used to test and run low-level programs written in the VM language. tutorial
Operating System
In the last part of the course you will write a simple operating system for the Hack platform. Before you will write the OS, other projects (e.g. the compiler) will need some of its services. You will also need the OS in order to run Jack programs. Therefore, we provide an executable ("binary") version of the OS below.
Tool Description Files
Operating System A simple OS, similar to early versions of DOS. Extends programming languages with math and string functionality and provides basic memory and I/O devices management services. Written in Jack and implemented as a collection of VM functions. OS.zip
Error codes
Miscellaneous
Tool Description Files
Text Comparer A program that determines if two input text files are identical, ignoring white space (in each line). Part of the
Hack Student Suite