Tools
Hack
Student Suite (download): This zip file contains
a ll the programs listed below. Extract it into any directory in
your workstation/PC, without changing the default directories structure.
Please read the "readme" file (readme.txt) for
instructions about using the specific tool set:
Simulators
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 |
Function |
Files
|
Hardware
Simulator
|
Used to simulate and
test chips. Operates on chip descriptions written in HDL (Hardware
Description Language).
|
tutorial
|
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
|
VM
Emulator
|
Emulates a typical
stack-based virtual machine. Used to test and run low-level programs
written in the VM language.
|
tutorial
|
Translators
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 downloading and playing with
the executables below.
Assembler
|
Implements the Hack
assembly language. Translates assembly code into machine language.
The latter can be tested on the CPU emulator.
|
tutorial
|
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 by the JcVM into assembler.
|
user
guide
|
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 version of the OS below.
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
download:
a
basic implementation of the OS (collection of VM files) and error codes
documentation.
|
Miscellaneous
Text
Comparer
|
A program that
determines if two input text files are identical, ignoring white space.
|
Part
of the Hack Student Suit
|
|