Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jherskow/nand2tetris

Problem sets completed from HUJI's offering of From NAND to TETRIS - The Elements of Computing Systems, 2017. A complete description for each project is available at https://www.nand2tetris.org/course.
https://github.com/jherskow/nand2tetris

assembler assembly

Last synced: about 2 months ago
JSON representation

Problem sets completed from HUJI's offering of From NAND to TETRIS - The Elements of Computing Systems, 2017. A complete description for each project is available at https://www.nand2tetris.org/course.

Awesome Lists containing this project

README

        

# nand2tetris

## Problem sets

Problem sets completed from HUJI's offering of **From NAND to TETRIS - The Elements of Computing Systems**, 2017.

A complete description for each project is available at https://www.nand2tetris.org/course.

## Projects

- **00** - Construction of Basic Logic Gates in HDL.
- **01** - Construction of more complex 16 bit chips, such as DMUX16, in HDL.
- **02** - HDL construction of bit shift, incrementer, half and full adder, and finally the arithmetic logic unit (ALU).
- **03** - Construction of timed chips, from a single bit register to a 16K RAM, in HDL.
- **04** - Assembly programming. Includes implementations of 16-bit multiplication and division, as well as some basic screen output.
- **05** - Final "chips". The construction of the CPU, the RAM address space, and the entire computer.
- **06** - Assembler program that translates programs written in the symbolic Hack assembly language into binary code that can execute on the Hack hardware platform built in the previous projects.
- **07** - A basic VM-to-assembly translator, focusing on the implementation of the VM language's stack arithmetic and memory access commands.
- **08** - A full-scale VM-to-assembly translator able to handle the VM language's branching and function calling commands.
- **09** - Implementation of a Flappy-Bird-like game in the JACK language, complete with increasingly difficult level generation.
- **10** - A syntax analyzer that parses Jack programs according to the Jack grammar, producing an XML file that renders the program's structure using marked-up text.
- **11** - A full scale Jack-to-VM compiler.
- **12** - Complete implementation of the [Jack OS API.](https://docs.wixstatic.com/ugd/44046b_695a82ff2d974bd5b3b2642aa42ac4e8.pdf) Includes classes such as: Memory, Array, Math, String, Screen, Keyboard, etc.