Tools


   Tools

 

code.gif (929 bytes) 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 readme file:   readme.simulators.txt
  • Translators readme file:  readme.translators.txt 
  • For Linux users you only need to run the script name (i.e. HardwareSimulator.csh). 

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).

anim.gif (912 bytes)  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. 

anim.gif (912 bytes)  tutorial

 

VM Emulator

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

anim.gif (912 bytes)  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.

anim.gif (912 bytes)  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.

code.gif (929 bytes) 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