Workshop In Computer Construction - From Nand to Tetris
Home
Syllabus
Book
Projects
Tools
Guidelines
Administratives
Tools

This section contains all the tools necessary to complete all the projects, collectively known as the TECS software suite.    

  • Compatability: All the tools contained in the TECS software suite can run as is on both Windows and Linux. 

  • Terms of use: The TECS software suite can be used freely and is protected by the GNU GPL License

  • Download the TECS software suite Version 1.4b3 (500K). After downloading, put this zip file in an empty directory on your computer and extract its contents as is, without changing the directories structure.  If your computer is not equipped with a Java run-time environment, see the instructions at the bottom of this page.

To view any of the resources listed below, click it; To download a resource, right-click and save-target-as. 

Simulators

Tool

Function

Download

Hardware   Simulator

Simulates and tests gates and chips implemented in HDL (Hardware Description Language).  Used to construct hardware projects.

Tutorial

CPU Emulator

Emulates the computer platform built in the course.  Used to test and run programs written in either machine language or assembler. 

Tutorial

VM Emulator

Emulates a typical stack-based virtual machine.  Used to run and test programs written in the VM language.

Tutorial

Translators

Translator

Function

Download

Assembler

Translates programs from assembly language to machine language.  The resulting code can be executed directly on the Computer chip (in the hardware simulator), or emulated on the CPU emulator (which is much quicker).

Tutorial

VM Translator

A virtual machine implementation (modeled after Java's JVM).  Translates programs written in the VM language into programs written in assembly language.  

Compiler

Translates from Jack (a simple Java-like language described in Chapter 9) into VM code.  The resulting code can run on the VM emulator, or translated further by the VM translator + assembler into binary code that can run on the hardware simulator or on the CPU emulator.  

Operating System

The OS was written in the Jack language and compiled into a set of VM class files.  

OS module

 Function

Math.vm 

Provides basic mathematical operations (abs, mult, div, min, max, ...).

String.vm 

Implements the String type and string-related operations.

Array.vm 

Implements the Array type and array-related operations.

Output.vm 

Handles text output to the screen (printChar, printString ...).

Screen.vm 

Handles graphic output to the screen (drawPixel, drawLine, drawCircle...).

Keyboard.vm  

Handles user input from the keyboard (keyPressed, readChar, readLine, ...).

Memory.vm 

Handles memory operations (alloc, deAlloc, peek, poke ...).

Sys.vm  

Provides execution-related services (init, halt, ...).

Miscellaneous

Text Comparer

Checks if two input text files are identical.  Used in various projects.

Jack IDE

Tool

Function

Download

Jack IDE

Allows editing and debugging programs in the Jack language.  Based on a commercial tool called Edit Plus.  You can use it freely for 30 days, and then you have to pay $30 to continute.

Tutorial

Jack IDE installer

Java Run-Time Environment (JRE)

In order to use our software tools, your computer must be equipped with a Java Run-time Environment, version 1.3.1 or later. The JRE, also called J2RE, can be downloaded freely from many sites including http://www.javasoft.com.  For best performance, download the latest available version.

Trouble Shooting

If our software tools don't work on your computer, and if your computer contains a JDK (Java Development Kit), make sure that the "bin" directory of the JDK (usually something like JDK...\bin) is included in the PATH system variable on your computer. Also, make sure that the CLASSPATH system variable contains the tools.jar file, which is located in the "lib" directory of the JDK.

Changing system variables up to Win98 is done in the "set <variable-name>=..." line in the c:\autoexec.bat file. In NT, WIN2000 and upward it is done by updating the variable line in Control Panel->System->Advanced->Environment Variables.

If the GUI of some of our software the tools doesn't work properly, make sure that you are using version 1.3.1 or later of the JRE or JDK. Our software may work on earlier versions as well, but with many GUI problems.  To test which Java version is presently installed on your computer, type "java -version" at the DOS/shell level.