diff options
author | Frederick Yin <fkfd@fkfd.me> | 2022-08-16 16:04:50 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@fkfd.me> | 2022-08-16 16:04:50 +0800 |
commit | fbfa52da575e283def59c6487b51dd66eebc03b8 (patch) | |
tree | b472d693275aa90a4e9127982f135a6b79b26577 /README | |
parent | 3a939d131f0eef21897be0b05660e9d7c9d12c2e (diff) |
Add README
Diffstat (limited to 'README')
-rw-r--r-- | README | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -0,0 +1,49 @@ +=============================== nand2tetris ============================== + +Nand to Tetris (https://www.nand2tetris.org/) is a course available online +that teaches you to build a modern architecture computer all the way up +from NAND gates. The course features 12 projects. I have completed the +first half, i.e. hardware and assembly. + +List of projects completed thus far: + +01 - Elementary logic gates, e.g. AND, XOR, and (De)Mux +02 - Combinatorial chips that do math, including ALU +03 - Sequential chips, e.g. Register, RAM, and program counter +04 - Assembly +05 - Computer +06 - Assembler + +Directory structure: +projects/ + 00/ + coursera-related meta files + 01/ + 02/ + 03/ + the three dirs above contain HDL files, with suffix ".hdl". The + syntax is specific to this course, so your text editor may fail + to highlight them. Each HDL file is accompanied by a ".cmp" and + a ".out" file for debugging purposes. + 04/ + contains assembly, also specific syntax. Suffix is ".asm". + 05/ + HDL again. + 06/ + I wrote two implementations of the assembler: the first in C and + the other in Python (I regret doing it in this order). You may + compile the C program with: + $ gcc hack-as.c -o hack-as + Then invoke it with: + $ ./hack-as <input.asm> + which will output binary code in ASCII 0's and 1's to a file with + suffix ".hack". + 07/ + 08/ + 09/ + 10/ + 11/ + 12/ +tools/ + This directory contains the software suite. Consult nand2tetris + website for details. |