summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Yin <fkfd@fkfd.me>2022-08-16 16:04:50 +0800
committerFrederick Yin <fkfd@fkfd.me>2022-08-16 16:04:50 +0800
commitfbfa52da575e283def59c6487b51dd66eebc03b8 (patch)
treeb472d693275aa90a4e9127982f135a6b79b26577
parent3a939d131f0eef21897be0b05660e9d7c9d12c2e (diff)
Add README
-rw-r--r--README49
1 files changed, 49 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..6ca26b3
--- /dev/null
+++ b/README
@@ -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.