aboutsummaryrefslogtreecommitdiff
path: root/projects/02
diff options
context:
space:
mode:
authorYuchen Pei <me@ypei.me>2018-01-20 15:41:49 +0100
committerYuchen Pei <me@ypei.me>2018-01-20 15:41:49 +0100
commitd3a0cc3a8ba6dfeb64d3faeffdeb6845b60e5840 (patch)
treed58df9ec2480e2a9ec6240f9c797f83d1a0b1056 /projects/02
parent3571f998b28fbc8d9250ba04c983935f10a16c15 (diff)
rearranged the dir for github
- removed tools and pdfs - rearranged the projects dirs - added md files - other minor changes
Diffstat (limited to 'projects/02')
-rw-r--r--projects/02/ALU-nostat.cmp37
-rw-r--r--projects/02/ALU-nostat.tst353
-rw-r--r--projects/02/ALU.cmp37
-rw-r--r--projects/02/ALU.hdl62
-rw-r--r--projects/02/ALU.out37
-rw-r--r--projects/02/ALU.tst377
-rw-r--r--projects/02/Add16.cmp7
-rw-r--r--projects/02/Add16.hdl33
-rw-r--r--projects/02/Add16.out7
-rw-r--r--projects/02/Add16.tst39
-rw-r--r--projects/02/FullAdder.cmp9
-rw-r--r--projects/02/FullAdder.hdl20
-rw-r--r--projects/02/FullAdder.out9
-rw-r--r--projects/02/FullAdder.tst47
-rw-r--r--projects/02/HalfAdder.cmp5
-rw-r--r--projects/02/HalfAdder.hdl19
-rw-r--r--projects/02/HalfAdder.out5
-rw-r--r--projects/02/HalfAdder.tst29
-rw-r--r--projects/02/Inc16.cmp5
-rw-r--r--projects/02/Inc16.hdl18
-rw-r--r--projects/02/Inc16.out5
-rw-r--r--projects/02/Inc16.tst25
-rw-r--r--projects/02/Test.hdl8
23 files changed, 0 insertions, 1193 deletions
diff --git a/projects/02/ALU-nostat.cmp b/projects/02/ALU-nostat.cmp
deleted file mode 100644
index 976ab78..0000000
--- a/projects/02/ALU-nostat.cmp
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 |
-| 0101101110100000 | 0001111011010010 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 0 | 0 | 0101101110100000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 0 | 0 | 0001111011010010 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 0 | 1 | 1010010001011111 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 0 | 1 | 1110000100101101 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 1 | 1 | 1010010001100000 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 1 | 1 | 1110000100101110 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 1 | 1 | 1 | 1 | 0101101110100001 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 1 | 1 | 1 | 0001111011010011 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 1 | 1 | 1 | 0 | 0101101110011111 |
-| 0101101110100000 | 0001111011010010 | 1 | 1 | 0 | 0 | 1 | 0 | 0001111011010001 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 0 | 1 | 0 | 0111101001110010 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 0 | 0 | 1 | 1 | 0011110011001110 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 1 | 1 | 1 | 1100001100110010 |
-| 0101101110100000 | 0001111011010010 | 0 | 0 | 0 | 0 | 0 | 0 | 0001101010000000 |
-| 0101101110100000 | 0001111011010010 | 0 | 1 | 0 | 1 | 0 | 1 | 0101111111110010 |
diff --git a/projects/02/ALU-nostat.tst b/projects/02/ALU-nostat.tst
deleted file mode 100644
index fa3e448..0000000
--- a/projects/02/ALU-nostat.tst
+++ /dev/null
@@ -1,353 +0,0 @@
-// This file is part of the materials accompanying the book
-// "The Elements of Computing Systems" by Nisan and Schocken,
-// MIT Press. Book site: www.idc.ac.il/tecs
-// File name: projects/02/ALU-nostat.tst
-
-// ALU-nostat.tst provides a partial test of the ALU chip.
-// It IS NOT a replacement for ALU.tst.
-
-// ALU-nostat.tst tests only the computation part of the ALU.
-// The 'zr' and 'ng' status outputs are ignored.
-
-// This test lets you concentrate on getting the ALU computation right without the
-// additional task of handling the status outputs.
-
-// Once your ALU passes ALU-nostat.tst you need to test it with ALU.tst.
-// This way, any comparison failures during ALU.tst will be caused by errors in
-// the handling of the 'zr' and 'ng' status outputs.
-
-load ALU.hdl,
-output-file ALU-nostat.out,
-compare-to ALU-nostat.cmp,
-output-list x%B1.16.1 y%B1.16.1 zx%B1.1.1 nx%B1.1.1 zy%B1.1.1
- ny%B1.1.1 f%B1.1.1 no%B1.1.1 out%B1.16.1;
-
-set x %B0000000000000000,
-set y %B1111111111111111,
-
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set x %B101101110100000,
-set y %B001111011010010,
-
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
diff --git a/projects/02/ALU.cmp b/projects/02/ALU.cmp
deleted file mode 100644
index 2ec3a55..0000000
--- a/projects/02/ALU.cmp
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |zr |ng |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000010001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 0 | 0000000000000011 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111101110 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 1 | 1111111111111100 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 1 | 1111111111101111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 1 | 1111111111111101 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000010010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 0 | 0000000000010000 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 0 | 0000000000000010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 1 | 0 | 0000000000010100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000001110 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111110010 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 1 | 0 | 1 | 0000000000010011 | 0 | 0 |
diff --git a/projects/02/ALU.hdl b/projects/02/ALU.hdl
deleted file mode 100644
index 47697a0..0000000
--- a/projects/02/ALU.hdl
+++ /dev/null
@@ -1,62 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/ALU.hdl
-
-/**
- * The ALU (Arithmetic Logic Unit).
- * Computes one of the following functions:
- * x+y, x-y, y-x, 0, 1, -1, x, y, -x, -y, !x, !y,
- * x+1, y+1, x-1, y-1, x&y, x|y on two 16-bit inputs,
- * according to 6 input bits denoted zx,nx,zy,ny,f,no.
- * In addition, the ALU computes two 1-bit outputs:
- * if the ALU output == 0, zr is set to 1; otherwise zr is set to 0;
- * if the ALU output < 0, ng is set to 1; otherwise ng is set to 0.
- */
-
-// Implementation: the ALU logic manipulates the x and y inputs
-// and operates on the resulting values, as follows:
-// if (zx == 1) set x = 0 // 16-bit constant
-// if (nx == 1) set x = !x // bitwise not
-// if (zy == 1) set y = 0 // 16-bit constant
-// if (ny == 1) set y = !y // bitwise not
-// if (f == 1) set out = x + y // integer 2's complement addition
-// if (f == 0) set out = x & y // bitwise and
-// if (no == 1) set out = !out // bitwise not
-// if (out == 0) set zr = 1
-// if (out < 0) set ng = 1
-
-CHIP ALU {
- IN
- x[16], y[16], // 16-bit inputs
- zx, // zero the x input?
- nx, // negate the x input?
- zy, // zero the y input?
- ny, // negate the y input?
- f, // compute out = x + y (if 1) or x & y (if 0)
- no; // negate the out output?
-
- OUT
- out[16], // 16-bit output
- zr, // 1 if (out == 0), 0 otherwise
- ng; // 1 if (out < 0), 0 otherwise
-
- PARTS:
- // Put you code here:
- Mux16 (a=x, b[0..15]=false, sel=zx, out=x1);
- Not16 (in=x1, out=notx1);
- Mux16 (a=x1, b=notx1, sel=nx, out=x2);
- Mux16 (a=y, b[0..15]=false, sel=zy, out=y1);
- Not16 (in=y1, out=noty1);
- Mux16 (a=y1, b=noty1, sel=ny, out=y2);
- Add16 (a=x2, b=y2, out=x2py2);
- And16 (a=x2, b=y2, out=x2ay2);
- Mux16 (a=x2ay2, b=x2py2, sel=f, out=xy);
- Not16 (in=xy, out=notxy);
- Mux16 (a=xy, b=notxy, sel=no, out=out, out[0..7]=out1, out[8..15]=out2, out[15]=msbout);
- Or8Way (in=out1, out=z1);
- Or8Way (in=out1, out=z2); //some potential pitfall w.r.t. subbusing see https://www.coursera.org/learn/build-a-computer/discussions/weeks/2/threads/9VYr3LzkEeeK2BJ0oEsgKA
- Or (a=z1, b=z2, out=z);
- Not (in=z, out=zr);
- And (a=msbout, b=true, out=ng);
-}
diff --git a/projects/02/ALU.out b/projects/02/ALU.out
deleted file mode 100644
index 2424a73..0000000
--- a/projects/02/ALU.out
+++ /dev/null
@@ -1,37 +0,0 @@
-| x | y |zx |nx |zy |ny | f |no | out |zr |ng |
-| 0000000000000000 | 1111111111111111 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 0 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 1 | 1 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 1 | 1 | 0 | 0 | 1 | 0 | 1111111111111110 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000000000 | 1111111111111111 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000000000 | 1111111111111111 | 0 | 1 | 0 | 1 | 0 | 1 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 0 | 1 | 0 | 1 | 0 | 0000000000000000 | 1 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 1 | 1 | 1 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 1 | 0 | 1 | 0 | 1111111111111111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 0 | 0000000000010001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 0 | 0000000000000011 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 0 | 1 | 1111111111101110 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 0 | 1 | 1111111111111100 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 1 | 1111111111101111 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 1 | 1111111111111101 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 1 | 1 | 1 | 1 | 0000000000010010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 1 | 1 | 1 | 0000000000000100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 1 | 1 | 1 | 0 | 0000000000010000 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 1 | 1 | 0 | 0 | 1 | 0 | 0000000000000010 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 1 | 0 | 0000000000010100 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 0 | 1 | 1 | 0000000000001110 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 1 | 1 | 1 | 1111111111110010 | 0 | 1 |
-| 0000000000010001 | 0000000000000011 | 0 | 0 | 0 | 0 | 0 | 0 | 0000000000000001 | 0 | 0 |
-| 0000000000010001 | 0000000000000011 | 0 | 1 | 0 | 1 | 0 | 1 | 0000000000010011 | 0 | 0 |
diff --git a/projects/02/ALU.tst b/projects/02/ALU.tst
deleted file mode 100644
index 9e665b0..0000000
--- a/projects/02/ALU.tst
+++ /dev/null
@@ -1,377 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/ALU.tst
-
-load ALU.hdl,
-output-file ALU.out,
-compare-to ALU.cmp,
-output-list x%B1.16.1 y%B1.16.1 zx%B1.1.1 nx%B1.1.1 zy%B1.1.1
- ny%B1.1.1 f%B1.1.1 no%B1.1.1 out%B1.16.1 zr%B1.1.1
- ng%B1.1.1;
-
-set x %B0000000000000000, // x = 0
-set y %B1111111111111111; // y = -1
-
-// Compute 0
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute 1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute !x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute !y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute -x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x + 1
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y + 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x - 1
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute y - 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x + y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x - y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y - x
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x & y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute x | y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-set x %B000000000010001, // x = 17
-set y %B000000000000011; // y = 3
-
-// Compute 0
-set zx 1,
-set nx 0,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute 1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -1
-set zx 1,
-set nx 1,
-set zy 1,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute !x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute !y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 0,
-set no 1,
-eval,
-output;
-
-// Compute -x
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute -y
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x + 1
-set zx 0,
-set nx 1,
-set zy 1,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y + 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x - 1
-set zx 0,
-set nx 0,
-set zy 1,
-set ny 1,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute y - 1
-set zx 1,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x + y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 1,
-set no 0,
-eval,
-output;
-
-// Compute x - y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 0,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute y - x
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 1,
-set f 1,
-set no 1,
-eval,
-output;
-
-// Compute x & y
-set zx 0,
-set nx 0,
-set zy 0,
-set ny 0,
-set f 0,
-set no 0,
-eval,
-output;
-
-// Compute x | y
-set zx 0,
-set nx 1,
-set zy 0,
-set ny 1,
-set f 0,
-set no 1,
-eval,
-output;
diff --git a/projects/02/Add16.cmp b/projects/02/Add16.cmp
deleted file mode 100644
index 76d069c..0000000
--- a/projects/02/Add16.cmp
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111110 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0100110010110011 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 |
diff --git a/projects/02/Add16.hdl b/projects/02/Add16.hdl
deleted file mode 100644
index ea3cb80..0000000
--- a/projects/02/Add16.hdl
+++ /dev/null
@@ -1,33 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Adder16.hdl
-
-/**
- * Adds two 16-bit values.
- * The most significant carry bit is ignored.
- */
-
-CHIP Add16 {
- IN a[16], b[16];
- OUT out[16];
-
- PARTS:
- // Put you code here:
- HalfAdder (a=a[0], b=b[0], sum=out[0], carry=carry0);
- FullAdder (a=a[1], b=b[1], c=carry0, sum=out[1], carry=carry1);
- FullAdder (a=a[2], b=b[2], c=carry1, sum=out[2], carry=carry2);
- FullAdder (a=a[3], b=b[3], c=carry2, sum=out[3], carry=carry3);
- FullAdder (a=a[4], b=b[4], c=carry3, sum=out[4], carry=carry4);
- FullAdder (a=a[5], b=b[5], c=carry4, sum=out[5], carry=carry5);
- FullAdder (a=a[6], b=b[6], c=carry5, sum=out[6], carry=carry6);
- FullAdder (a=a[7], b=b[7], c=carry6, sum=out[7], carry=carry7);
- FullAdder (a=a[8], b=b[8], c=carry7, sum=out[8], carry=carry8);
- FullAdder (a=a[9], b=b[9], c=carry8, sum=out[9], carry=carry9);
- FullAdder (a=a[10], b=b[10], c=carry9, sum=out[10], carry=carry10);
- FullAdder (a=a[11], b=b[11], c=carry10, sum=out[11], carry=carry11);
- FullAdder (a=a[12], b=b[12], c=carry11, sum=out[12], carry=carry12);
- FullAdder (a=a[13], b=b[13], c=carry12, sum=out[13], carry=carry13);
- FullAdder (a=a[14], b=b[14], c=carry13, sum=out[14], carry=carry14);
- FullAdder (a=a[15], b=b[15], c=carry14, sum=out[15], carry=carry15);
-}
diff --git a/projects/02/Add16.out b/projects/02/Add16.out
deleted file mode 100644
index 20f9c65..0000000
--- a/projects/02/Add16.out
+++ /dev/null
@@ -1,7 +0,0 @@
-| a | b | out |
-| 0000000000000000 | 0000000000000000 | 0000000000000000 |
-| 0000000000000000 | 1111111111111111 | 1111111111111111 |
-| 1111111111111111 | 1111111111111111 | 1111111111111110 |
-| 1010101010101010 | 0101010101010101 | 1111111111111111 |
-| 0011110011000011 | 0000111111110000 | 0100110010110011 |
-| 0001001000110100 | 1001100001110110 | 1010101010101010 |
diff --git a/projects/02/Add16.tst b/projects/02/Add16.tst
deleted file mode 100644
index 85e1be1..0000000
--- a/projects/02/Add16.tst
+++ /dev/null
@@ -1,39 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Add16.tst
-
-load Add16.hdl,
-output-file Add16.out,
-compare-to Add16.cmp,
-output-list a%B1.16.1 b%B1.16.1 out%B1.16.1;
-
-set a %B0000000000000000,
-set b %B0000000000000000,
-eval,
-output;
-
-set a %B0000000000000000,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1111111111111111,
-set b %B1111111111111111,
-eval,
-output;
-
-set a %B1010101010101010,
-set b %B0101010101010101,
-eval,
-output;
-
-set a %B0011110011000011,
-set b %B0000111111110000,
-eval,
-output;
-
-set a %B0001001000110100,
-set b %B1001100001110110,
-eval,
-output;
diff --git a/projects/02/FullAdder.cmp b/projects/02/FullAdder.cmp
deleted file mode 100644
index 84551aa..0000000
--- a/projects/02/FullAdder.cmp
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | sum | carry |
-| 0 | 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 1 | 0 |
-| 0 | 1 | 0 | 1 | 0 |
-| 0 | 1 | 1 | 0 | 1 |
-| 1 | 0 | 0 | 1 | 0 |
-| 1 | 0 | 1 | 0 | 1 |
-| 1 | 1 | 0 | 0 | 1 |
-| 1 | 1 | 1 | 1 | 1 |
diff --git a/projects/02/FullAdder.hdl b/projects/02/FullAdder.hdl
deleted file mode 100644
index 451499f..0000000
--- a/projects/02/FullAdder.hdl
+++ /dev/null
@@ -1,20 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/FullAdder.hdl
-
-/**
- * Computes the sum of three bits.
- */
-
-CHIP FullAdder {
- IN a, b, c; // 1-bit inputs
- OUT sum, // Right bit of a + b + c
- carry; // Left bit of a + b + c
-
- PARTS:
- // Put you code here:
- HalfAdder (a=a, b=b, sum=sum1, carry=carry1);
- HalfAdder (a=sum1, b=c, sum=sum, carry=carry2);
- Or (a=carry1, b=carry2, out=carry);
-}
diff --git a/projects/02/FullAdder.out b/projects/02/FullAdder.out
deleted file mode 100644
index 610181f..0000000
--- a/projects/02/FullAdder.out
+++ /dev/null
@@ -1,9 +0,0 @@
-| a | b | c | sum | carry |
-| 0 | 0 | 0 | 0 | 0 |
-| 0 | 0 | 1 | 1 | 0 |
-| 0 | 1 | 0 | 1 | 0 |
-| 0 | 1 | 1 | 0 | 1 |
-| 1 | 0 | 0 | 1 | 0 |
-| 1 | 0 | 1 | 0 | 1 |
-| 1 | 1 | 0 | 0 | 1 |
-| 1 | 1 | 1 | 1 | 1 |
diff --git a/projects/02/FullAdder.tst b/projects/02/FullAdder.tst
deleted file mode 100644
index 5125cee..0000000
--- a/projects/02/FullAdder.tst
+++ /dev/null
@@ -1,47 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/FullAdder.tst
-
-load FullAdder.hdl,
-output-file FullAdder.out,
-compare-to FullAdder.cmp,
-output-list a%B3.1.3 b%B3.1.3 c%B3.1.3 sum%B3.1.3 carry%B3.1.3;
-
-set a 0,
-set b 0,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set b 1,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
-
-set b 1,
-set c 0,
-eval,
-output;
-
-set c 1,
-eval,
-output;
diff --git a/projects/02/HalfAdder.cmp b/projects/02/HalfAdder.cmp
deleted file mode 100644
index 911c770..0000000
--- a/projects/02/HalfAdder.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | sum | carry |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 1 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/02/HalfAdder.hdl b/projects/02/HalfAdder.hdl
deleted file mode 100644
index 0b40509..0000000
--- a/projects/02/HalfAdder.hdl
+++ /dev/null
@@ -1,19 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/HalfAdder.hdl
-
-/**
- * Computes the sum of two bits.
- */
-
-CHIP HalfAdder {
- IN a, b; // 1-bit inputs
- OUT sum, // Right bit of a + b
- carry; // Left bit of a + b
-
- PARTS:
- // Put you code here:
- Xor (a=a, b=b, out=sum);
- And (a=a, b=b, out=carry);
-}
diff --git a/projects/02/HalfAdder.out b/projects/02/HalfAdder.out
deleted file mode 100644
index 612c8e3..0000000
--- a/projects/02/HalfAdder.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| a | b | sum | carry |
-| 0 | 0 | 0 | 0 |
-| 0 | 1 | 1 | 0 |
-| 1 | 0 | 1 | 0 |
-| 1 | 1 | 0 | 1 |
diff --git a/projects/02/HalfAdder.tst b/projects/02/HalfAdder.tst
deleted file mode 100644
index 069b8ea..0000000
--- a/projects/02/HalfAdder.tst
+++ /dev/null
@@ -1,29 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/HalfAdder.tst
-
-load HalfAdder.hdl,
-output-file HalfAdder.out,
-compare-to HalfAdder.cmp,
-output-list a%B3.1.3 b%B3.1.3 sum%B3.1.3 carry%B3.1.3;
-
-set a 0,
-set b 0,
-eval,
-output;
-
-set a 0,
-set b 1,
-eval,
-output;
-
-set a 1,
-set b 0,
-eval,
-output;
-
-set a 1,
-set b 1,
-eval,
-output;
diff --git a/projects/02/Inc16.cmp b/projects/02/Inc16.cmp
deleted file mode 100644
index 451f563..0000000
--- a/projects/02/Inc16.cmp
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | out |
-| 0000000000000000 | 0000000000000001 |
-| 1111111111111111 | 0000000000000000 |
-| 0000000000000101 | 0000000000000110 |
-| 1111111111111011 | 1111111111111100 |
diff --git a/projects/02/Inc16.hdl b/projects/02/Inc16.hdl
deleted file mode 100644
index 8142695..0000000
--- a/projects/02/Inc16.hdl
+++ /dev/null
@@ -1,18 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Inc16.hdl
-
-/**
- * 16-bit incrementer:
- * out = in + 1 (arithmetic addition)
- */
-
-CHIP Inc16 {
- IN in[16];
- OUT out[16];
-
- PARTS:
- // Put you code here:
- Add16 (a=in, b[0]=true, b[1..15]=false, out=out);
-}
diff --git a/projects/02/Inc16.out b/projects/02/Inc16.out
deleted file mode 100644
index 78de1fe..0000000
--- a/projects/02/Inc16.out
+++ /dev/null
@@ -1,5 +0,0 @@
-| in | out |
-| 0000000000000000 | 0000000000000001 |
-| 1111111111111111 | 0000000000000000 |
-| 0000000000000101 | 0000000000000110 |
-| 1111111111111011 | 1111111111111100 |
diff --git a/projects/02/Inc16.tst b/projects/02/Inc16.tst
deleted file mode 100644
index 8537d86..0000000
--- a/projects/02/Inc16.tst
+++ /dev/null
@@ -1,25 +0,0 @@
-// This file is part of www.nand2tetris.org
-// and the book "The Elements of Computing Systems"
-// by Nisan and Schocken, MIT Press.
-// File name: projects/02/Inc16.tst
-
-load Inc16.hdl,
-output-file Inc16.out,
-compare-to Inc16.cmp,
-output-list in%B1.16.1 out%B1.16.1;
-
-set in %B0000000000000000, // in = 0
-eval,
-output;
-
-set in %B1111111111111111, // in = -1
-eval,
-output;
-
-set in %B0000000000000101, // in = 5
-eval,
-output;
-
-set in %B1111111111111011, // in = -5
-eval,
-output;
diff --git a/projects/02/Test.hdl b/projects/02/Test.hdl
deleted file mode 100644
index 4b12157..0000000
--- a/projects/02/Test.hdl
+++ /dev/null
@@ -1,8 +0,0 @@
-CHIP Test{
- IN
- x[16], y;
- OUT
- out[16];
- PARTS:
- Mux (a=x, b=true, out=out);
-}