diff options
Diffstat (limited to 'projects/05')
29 files changed, 0 insertions, 1567 deletions
| diff --git a/projects/05/Add.hack b/projects/05/Add.hack deleted file mode 100644 index fe5969d..0000000 --- a/projects/05/Add.hack +++ /dev/null @@ -1,6 +0,0 @@ -0000000000000010
 -1110110000010000
 -0000000000000011
 -1110000010010000
 -0000000000000000
 -1110001100001000
 diff --git a/projects/05/CPU-external.cmp b/projects/05/CPU-external.cmp deleted file mode 100644 index 58f43bd..0000000 --- a/projects/05/CPU-external.cmp +++ /dev/null @@ -1,93 +0,0 @@ -|time| inM  |  instruction   |reset| outM  |writeM |addre| pc  |
 -|0+  |     0|0011000000111001|  0  |*******|   0   |    0|    0|
 -|1   |     0|0011000000111001|  0  |*******|   0   |12345|    1|
 -|1+  |     0|1110110000010000|  0  |*******|   0   |12345|    1|
 -|2   |     0|1110110000010000|  0  |*******|   0   |12345|    2|
 -|2+  |     0|0101101110100000|  0  |*******|   0   |12345|    2|
 -|3   |     0|0101101110100000|  0  |*******|   0   |23456|    3|
 -|3+  |     0|1110000111010000|  0  |*******|   0   |23456|    3|
 -|4   |     0|1110000111010000|  0  |*******|   0   |23456|    4|
 -|4+  |     0|0000001111101000|  0  |*******|   0   |23456|    4|
 -|5   |     0|0000001111101000|  0  |*******|   0   | 1000|    5|
 -|5+  |     0|1110001100001000|  0  |  11111|   1   | 1000|    5|
 -|6   |     0|1110001100001000|  0  |  11111|   1   | 1000|    6|
 -|6+  |     0|0000001111101001|  0  |*******|   0   | 1000|    6|
 -|7   |     0|0000001111101001|  0  |*******|   0   | 1001|    7|
 -|7+  |     0|1110001110011000|  0  |  11110|   1   | 1001|    7|
 -|8   |     0|1110001110011000|  0  |  11109|   1   | 1001|    8|
 -|8+  |     0|0000001111101000|  0  |*******|   0   | 1001|    8|
 -|9   |     0|0000001111101000|  0  |*******|   0   | 1000|    9|
 -|9+  | 11111|1111010011010000|  0  |*******|   0   | 1000|    9|
 -|10  | 11111|1111010011010000|  0  |*******|   0   | 1000|   10|
 -|10+ | 11111|0000000000001110|  0  |*******|   0   | 1000|   10|
 -|11  | 11111|0000000000001110|  0  |*******|   0   |   14|   11|
 -|11+ | 11111|1110001100000100|  0  |*******|   0   |   14|   11|
 -|12  | 11111|1110001100000100|  0  |*******|   0   |   14|   14|
 -|12+ | 11111|0000001111100111|  0  |*******|   0   |   14|   14|
 -|13  | 11111|0000001111100111|  0  |*******|   0   |  999|   15|
 -|13+ | 11111|1110110111100000|  0  |*******|   0   |  999|   15|
 -|14  | 11111|1110110111100000|  0  |*******|   0   | 1000|   16|
 -|14+ | 11111|1110001100001000|  0  |     -1|   1   | 1000|   16|
 -|15  | 11111|1110001100001000|  0  |     -1|   1   | 1000|   17|
 -|15+ | 11111|0000000000010101|  0  |*******|   0   | 1000|   17|
 -|16  | 11111|0000000000010101|  0  |*******|   0   |   21|   18|
 -|16+ | 11111|1110011111000010|  0  |*******|   0   |   21|   18|
 -|17  | 11111|1110011111000010|  0  |*******|   0   |   21|   21|
 -|17+ | 11111|0000000000000010|  0  |*******|   0   |   21|   21|
 -|18  | 11111|0000000000000010|  0  |*******|   0   |    2|   22|
 -|18+ | 11111|1110000010010000|  0  |*******|   0   |    2|   22|
 -|19  | 11111|1110000010010000|  0  |*******|   0   |    2|   23|
 -|19+ | 11111|0000001111101000|  0  |*******|   0   |    2|   23|
 -|20  | 11111|0000001111101000|  0  |*******|   0   | 1000|   24|
 -|20+ | 11111|1110111010010000|  0  |*******|   0   | 1000|   24|
 -|21  | 11111|1110111010010000|  0  |*******|   0   | 1000|   25|
 -|21+ | 11111|1110001100000001|  0  |*******|   0   | 1000|   25|
 -|22  | 11111|1110001100000001|  0  |*******|   0   | 1000|   26|
 -|22+ | 11111|1110001100000010|  0  |*******|   0   | 1000|   26|
 -|23  | 11111|1110001100000010|  0  |*******|   0   | 1000|   27|
 -|23+ | 11111|1110001100000011|  0  |*******|   0   | 1000|   27|
 -|24  | 11111|1110001100000011|  0  |*******|   0   | 1000|   28|
 -|24+ | 11111|1110001100000100|  0  |*******|   0   | 1000|   28|
 -|25  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|
 -|25+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|
 -|26  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|
 -|26+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|
 -|27  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|
 -|27+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|
 -|28  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|
 -|28+ | 11111|1110101010010000|  0  |*******|   0   | 1000| 1000|
 -|29  | 11111|1110101010010000|  0  |*******|   0   | 1000| 1001|
 -|29+ | 11111|1110001100000001|  0  |*******|   0   | 1000| 1001|
 -|30  | 11111|1110001100000001|  0  |*******|   0   | 1000| 1002|
 -|30+ | 11111|1110001100000010|  0  |*******|   0   | 1000| 1002|
 -|31  | 11111|1110001100000010|  0  |*******|   0   | 1000| 1000|
 -|31+ | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|
 -|32  | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|
 -|32+ | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|
 -|33  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1001|
 -|33+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1001|
 -|34  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1002|
 -|34+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1002|
 -|35  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|
 -|35+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|
 -|36  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|
 -|36+ | 11111|1110111111010000|  0  |*******|   0   | 1000| 1000|
 -|37  | 11111|1110111111010000|  0  |*******|   0   | 1000| 1001|
 -|37+ | 11111|1110001100000001|  0  |*******|   0   | 1000| 1001|
 -|38  | 11111|1110001100000001|  0  |*******|   0   | 1000| 1000|
 -|38+ | 11111|1110001100000010|  0  |*******|   0   | 1000| 1000|
 -|39  | 11111|1110001100000010|  0  |*******|   0   | 1000| 1001|
 -|39+ | 11111|1110001100000011|  0  |*******|   0   | 1000| 1001|
 -|40  | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|
 -|40+ | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|
 -|41  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1001|
 -|41+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1001|
 -|42  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|
 -|42+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|
 -|43  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1001|
 -|43+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1001|
 -|44  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|
 -|44+ | 11111|1110001100000111|  1  |*******|   0   | 1000| 1000|
 -|45  | 11111|1110001100000111|  1  |*******|   0   | 1000|    0|
 -|45+ | 11111|0111111111111111|  0  |*******|   0   | 1000|    0|
 -|46  | 11111|0111111111111111|  0  |*******|   0   |32767|    1|
 diff --git a/projects/05/CPU-external.tst b/projects/05/CPU-external.tst deleted file mode 100644 index 5aa0295..0000000 --- a/projects/05/CPU-external.tst +++ /dev/null @@ -1,150 +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/05/CPU-external.tst
 -
 -load CPU.hdl,
 -output-file CPU-external.out,
 -compare-to CPU-external.cmp,
 -output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0;
 -
 -
 -set instruction %B0011000000111001, // @12345
 -tick, output, tock, output;
 -
 -set instruction %B1110110000010000, // D=A
 -tick, output, tock, output;
 -
 -set instruction %B0101101110100000, // @23456
 -tick, output, tock, output;
 -
 -set instruction %B1110000111010000, // D=A-D
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1110001100001000, // M=D
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101001, // @1001
 -tick, output, tock, output;
 -
 -set instruction %B1110001110011000, // MD=D-1
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1111010011010000, // D=D-M
 -set inM 11111,
 -tick, output, tock, output;
 -
 -set instruction %B0000000000001110, // @14
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;jlt
 -tick, output, tock, output;
 -
 -set instruction %B0000001111100111, // @999
 -tick, output, tock, output;
 -
 -set instruction %B1110110111100000, // A=A+1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100001000, // M=D
 -tick, output, tock, output;
 -
 -set instruction %B0000000000010101, // @21
 -tick, output, tock, output;
 -
 -set instruction %B1110011111000010, // D+1;jeq
 -tick, output, tock, output;
 -
 -set instruction %B0000000000000010, // @2
 -tick, output, tock, output;
 -
 -set instruction %B1110000010010000, // D=D+A
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1110111010010000, // D=-1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set instruction %B1110101010010000, // D=0
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set instruction %B1110111111010000, // D=1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set reset 1;
 -tick, output, tock, output;
 -
 -set instruction %B0111111111111111, // @32767
 -set reset 0;
 -tick, output, tock, output;
 diff --git a/projects/05/CPU.cmp b/projects/05/CPU.cmp deleted file mode 100644 index 345674c..0000000 --- a/projects/05/CPU.cmp +++ /dev/null @@ -1,93 +0,0 @@ -|time| inM  |  instruction   |reset| outM  |writeM |addre| pc  |DRegiste|
 -|0+  |     0|0011000000111001|  0  |*******|   0   |    0|    0|      0 |
 -|1   |     0|0011000000111001|  0  |*******|   0   |12345|    1|      0 |
 -|1+  |     0|1110110000010000|  0  |*******|   0   |12345|    1|  12345 |
 -|2   |     0|1110110000010000|  0  |*******|   0   |12345|    2|  12345 |
 -|2+  |     0|0101101110100000|  0  |*******|   0   |12345|    2|  12345 |
 -|3   |     0|0101101110100000|  0  |*******|   0   |23456|    3|  12345 |
 -|3+  |     0|1110000111010000|  0  |*******|   0   |23456|    3|  11111 |
 -|4   |     0|1110000111010000|  0  |*******|   0   |23456|    4|  11111 |
 -|4+  |     0|0000001111101000|  0  |*******|   0   |23456|    4|  11111 |
 -|5   |     0|0000001111101000|  0  |*******|   0   | 1000|    5|  11111 |
 -|5+  |     0|1110001100001000|  0  |  11111|   1   | 1000|    5|  11111 |
 -|6   |     0|1110001100001000|  0  |  11111|   1   | 1000|    6|  11111 |
 -|6+  |     0|0000001111101001|  0  |*******|   0   | 1000|    6|  11111 |
 -|7   |     0|0000001111101001|  0  |*******|   0   | 1001|    7|  11111 |
 -|7+  |     0|1110001110011000|  0  |  11110|   1   | 1001|    7|  11110 |
 -|8   |     0|1110001110011000|  0  |  11109|   1   | 1001|    8|  11110 |
 -|8+  |     0|0000001111101000|  0  |*******|   0   | 1001|    8|  11110 |
 -|9   |     0|0000001111101000|  0  |*******|   0   | 1000|    9|  11110 |
 -|9+  | 11111|1111010011010000|  0  |*******|   0   | 1000|    9|     -1 |
 -|10  | 11111|1111010011010000|  0  |*******|   0   | 1000|   10|     -1 |
 -|10+ | 11111|0000000000001110|  0  |*******|   0   | 1000|   10|     -1 |
 -|11  | 11111|0000000000001110|  0  |*******|   0   |   14|   11|     -1 |
 -|11+ | 11111|1110001100000100|  0  |*******|   0   |   14|   11|     -1 |
 -|12  | 11111|1110001100000100|  0  |*******|   0   |   14|   14|     -1 |
 -|12+ | 11111|0000001111100111|  0  |*******|   0   |   14|   14|     -1 |
 -|13  | 11111|0000001111100111|  0  |*******|   0   |  999|   15|     -1 |
 -|13+ | 11111|1110110111100000|  0  |*******|   0   |  999|   15|     -1 |
 -|14  | 11111|1110110111100000|  0  |*******|   0   | 1000|   16|     -1 |
 -|14+ | 11111|1110001100001000|  0  |     -1|   1   | 1000|   16|     -1 |
 -|15  | 11111|1110001100001000|  0  |     -1|   1   | 1000|   17|     -1 |
 -|15+ | 11111|0000000000010101|  0  |*******|   0   | 1000|   17|     -1 |
 -|16  | 11111|0000000000010101|  0  |*******|   0   |   21|   18|     -1 |
 -|16+ | 11111|1110011111000010|  0  |*******|   0   |   21|   18|     -1 |
 -|17  | 11111|1110011111000010|  0  |*******|   0   |   21|   21|     -1 |
 -|17+ | 11111|0000000000000010|  0  |*******|   0   |   21|   21|     -1 |
 -|18  | 11111|0000000000000010|  0  |*******|   0   |    2|   22|     -1 |
 -|18+ | 11111|1110000010010000|  0  |*******|   0   |    2|   22|      1 |
 -|19  | 11111|1110000010010000|  0  |*******|   0   |    2|   23|      1 |
 -|19+ | 11111|0000001111101000|  0  |*******|   0   |    2|   23|      1 |
 -|20  | 11111|0000001111101000|  0  |*******|   0   | 1000|   24|      1 |
 -|20+ | 11111|1110111010010000|  0  |*******|   0   | 1000|   24|     -1 |
 -|21  | 11111|1110111010010000|  0  |*******|   0   | 1000|   25|     -1 |
 -|21+ | 11111|1110001100000001|  0  |*******|   0   | 1000|   25|     -1 |
 -|22  | 11111|1110001100000001|  0  |*******|   0   | 1000|   26|     -1 |
 -|22+ | 11111|1110001100000010|  0  |*******|   0   | 1000|   26|     -1 |
 -|23  | 11111|1110001100000010|  0  |*******|   0   | 1000|   27|     -1 |
 -|23+ | 11111|1110001100000011|  0  |*******|   0   | 1000|   27|     -1 |
 -|24  | 11111|1110001100000011|  0  |*******|   0   | 1000|   28|     -1 |
 -|24+ | 11111|1110001100000100|  0  |*******|   0   | 1000|   28|     -1 |
 -|25  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|     -1 |
 -|25+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|     -1 |
 -|26  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|     -1 |
 -|26+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|     -1 |
 -|27  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|     -1 |
 -|27+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|     -1 |
 -|28  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|     -1 |
 -|28+ | 11111|1110101010010000|  0  |*******|   0   | 1000| 1000|      0 |
 -|29  | 11111|1110101010010000|  0  |*******|   0   | 1000| 1001|      0 |
 -|29+ | 11111|1110001100000001|  0  |*******|   0   | 1000| 1001|      0 |
 -|30  | 11111|1110001100000001|  0  |*******|   0   | 1000| 1002|      0 |
 -|30+ | 11111|1110001100000010|  0  |*******|   0   | 1000| 1002|      0 |
 -|31  | 11111|1110001100000010|  0  |*******|   0   | 1000| 1000|      0 |
 -|31+ | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|      0 |
 -|32  | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|      0 |
 -|32+ | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|      0 |
 -|33  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1001|      0 |
 -|33+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1001|      0 |
 -|34  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1002|      0 |
 -|34+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1002|      0 |
 -|35  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|      0 |
 -|35+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|      0 |
 -|36  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|      0 |
 -|36+ | 11111|1110111111010000|  0  |*******|   0   | 1000| 1000|      1 |
 -|37  | 11111|1110111111010000|  0  |*******|   0   | 1000| 1001|      1 |
 -|37+ | 11111|1110001100000001|  0  |*******|   0   | 1000| 1001|      1 |
 -|38  | 11111|1110001100000001|  0  |*******|   0   | 1000| 1000|      1 |
 -|38+ | 11111|1110001100000010|  0  |*******|   0   | 1000| 1000|      1 |
 -|39  | 11111|1110001100000010|  0  |*******|   0   | 1000| 1001|      1 |
 -|39+ | 11111|1110001100000011|  0  |*******|   0   | 1000| 1001|      1 |
 -|40  | 11111|1110001100000011|  0  |*******|   0   | 1000| 1000|      1 |
 -|40+ | 11111|1110001100000100|  0  |*******|   0   | 1000| 1000|      1 |
 -|41  | 11111|1110001100000100|  0  |*******|   0   | 1000| 1001|      1 |
 -|41+ | 11111|1110001100000101|  0  |*******|   0   | 1000| 1001|      1 |
 -|42  | 11111|1110001100000101|  0  |*******|   0   | 1000| 1000|      1 |
 -|42+ | 11111|1110001100000110|  0  |*******|   0   | 1000| 1000|      1 |
 -|43  | 11111|1110001100000110|  0  |*******|   0   | 1000| 1001|      1 |
 -|43+ | 11111|1110001100000111|  0  |*******|   0   | 1000| 1001|      1 |
 -|44  | 11111|1110001100000111|  0  |*******|   0   | 1000| 1000|      1 |
 -|44+ | 11111|1110001100000111|  1  |*******|   0   | 1000| 1000|      1 |
 -|45  | 11111|1110001100000111|  1  |*******|   0   | 1000|    0|      1 |
 -|45+ | 11111|0111111111111111|  0  |*******|   0   | 1000|    0|      1 |
 -|46  | 11111|0111111111111111|  0  |*******|   0   |32767|    1|      1 |
 diff --git a/projects/05/CPU.hdl b/projects/05/CPU.hdl deleted file mode 100644 index aeeac04..0000000 --- a/projects/05/CPU.hdl +++ /dev/null @@ -1,82 +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/05/CPU.hdl
 -
 -/**
 - * The Hack CPU (Central Processing unit), consisting of an ALU,
 - * two registers named A and D, and a program counter named PC.
 - * The CPU is designed to fetch and execute instructions written in 
 - * the Hack machine language. In particular, functions as follows:
 - * Executes the inputted instruction according to the Hack machine 
 - * language specification. The D and A in the language specification
 - * refer to CPU-resident registers, while M refers to the external
 - * memory location addressed by A, i.e. to Memory[A]. The inM input 
 - * holds the value of this location. If the current instruction needs 
 - * to write a value to M, the value is placed in outM, the address 
 - * of the target location is placed in the addressM output, and the 
 - * writeM control bit is asserted. (When writeM==0, any value may 
 - * appear in outM). The outM and writeM outputs are combinational: 
 - * they are affected instantaneously by the execution of the current 
 - * instruction. The addressM and pc outputs are clocked: although they 
 - * are affected by the execution of the current instruction, they commit 
 - * to their new values only in the next time step. If reset==1 then the 
 - * CPU jumps to address 0 (i.e. pc is set to 0 in next time step) rather 
 - * than to the address resulting from executing the current instruction. 
 - */
 -
 -CHIP CPU {
 -
 -    IN  inM[16],         // M value input  (M = contents of RAM[A])
 -        instruction[16], // Instruction for execution
 -        reset;           // Signals whether to re-start the current
 -                         // program (reset==1) or continue executing
 -                         // the current program (reset==0).
 -
 -    OUT outM[16],        // M value output
 -        writeM,          // Write to M? 
 -        addressM[15],    // Address in data memory (of M)
 -        pc[15];          // address of next instruction
 -
 -    PARTS:
 -    // Put your code here:
 -
 -    Nand(a=instruction[15], b=instruction[5], out=c7);
 -    Mux16(a=aluout, b=instruction, sel=c7, out=out1);
 -
 -    Not(in=instruction[15], out=notd1);
 -    Or(a=instruction[5], b=notd1, out=c8);
 -    ARegister(in=out1, load=c8, out=out2, out[0..14]=addressM);
 -
 -    And(a=instruction[15], b=instruction[12], out=c9);
 -    Mux16(a=out2, b=inM, sel=c9, out=y);
 -
 -    And(a=instruction[15], b=instruction[4], out=c10);
 -    DRegister(in=aluout, load=c10, out=x);
 -
 -    ALU(x=x, y=y, zx=instruction[11], nx=instruction[10], zy=instruction[9], ny=instruction[8], f=instruction[7], no=instruction[6], out=aluout, out=outM, ng=ng, zr=zr);
 -    Not(in=ng, out=ps);
 -    Not(in=zr, out=nz);
 -
 -    And(a=ps, b=nz, out=out3);
 -    And(a=out3, b=instruction[0], out=isjump1);
 -
 -    And(a=ps, b=zr, out=out4);
 -    And(a=out4, b=instruction[1], out=isjump2);
 -
 -    And(a=ng, b=nz, out=out5);
 -    And(a=out5, b=instruction[2], out=isjump3);
 -
 -    Or(a=isjump1, b=isjump2, out=isjump4);
 -    Or(a=isjump3, b=isjump4, out=isjump5);
 -    And(a=instruction[15], b=isjump5, out=isjump);
 -
 -    Not(in=isjump, out=isnotjump);
 -
 -    PC(in=out2, load=isjump, inc=isnotjump, reset=reset, out[0..14]=pc);
 -
 -    And(a=instruction[15], b=instruction[3], out=writeM);
 -    //And(a=instruction[15], b=instruction[3], out=out6);
 -    //DFF(in=out6, out=writeM);
 -
 -}
 diff --git a/projects/05/CPU.out b/projects/05/CPU.out deleted file mode 100644 index 95f17b5..0000000 --- a/projects/05/CPU.out +++ /dev/null @@ -1,93 +0,0 @@ -|time| inM  |  instruction   |reset| outM  |writeM |addre| pc  |DRegiste| -|0+  |     0|0011000000111001|  0  |      0|   0   |    0|    0|      0 | -|1   |     0|0011000000111001|  0  |      0|   0   |12345|    1|      0 | -|1+  |     0|1110110000010000|  0  |  12345|   0   |12345|    1|  12345 | -|2   |     0|1110110000010000|  0  |  12345|   0   |12345|    2|  12345 | -|2+  |     0|0101101110100000|  0  |     -1|   0   |12345|    2|  12345 | -|3   |     0|0101101110100000|  0  |     -1|   0   |23456|    3|  12345 | -|3+  |     0|1110000111010000|  0  |  11111|   0   |23456|    3|  11111 | -|4   |     0|1110000111010000|  0  |  12345|   0   |23456|    4|  11111 | -|4+  |     0|0000001111101000|  0  | -11111|   0   |23456|    4|  11111 | -|5   |     0|0000001111101000|  0  | -11111|   0   | 1000|    5|  11111 | -|5+  |     0|1110001100001000|  0  |  11111|   1   | 1000|    5|  11111 | -|6   |     0|1110001100001000|  0  |  11111|   1   | 1000|    6|  11111 | -|6+  |     0|0000001111101001|  0  | -11111|   0   | 1000|    6|  11111 | -|7   |     0|0000001111101001|  0  | -11111|   0   | 1001|    7|  11111 | -|7+  |     0|1110001110011000|  0  |  11110|   1   | 1001|    7|  11110 | -|8   |     0|1110001110011000|  0  |  11109|   1   | 1001|    8|  11110 | -|8+  |     0|0000001111101000|  0  | -11110|   0   | 1001|    8|  11110 | -|9   |     0|0000001111101000|  0  | -11110|   0   | 1000|    9|  11110 | -|9+  | 11111|1111010011010000|  0  |     -1|   0   | 1000|    9|     -1 | -|10  | 11111|1111010011010000|  0  | -11112|   0   | 1000|   10|     -1 | -|10+ | 11111|0000000000001110|  0  |   1000|   0   | 1000|   10|     -1 | -|11  | 11111|0000000000001110|  0  |     14|   0   |   14|   11|     -1 | -|11+ | 11111|1110001100000100|  0  |     -1|   0   |   14|   11|     -1 | -|12  | 11111|1110001100000100|  0  |     -1|   0   |   14|   14|     -1 | -|12+ | 11111|0000001111100111|  0  |      1|   0   |   14|   14|     -1 | -|13  | 11111|0000001111100111|  0  |      1|   0   |  999|   15|     -1 | -|13+ | 11111|1110110111100000|  0  |   1000|   0   |  999|   15|     -1 | -|14  | 11111|1110110111100000|  0  |   1001|   0   | 1000|   16|     -1 | -|14+ | 11111|1110001100001000|  0  |     -1|   1   | 1000|   16|     -1 | -|15  | 11111|1110001100001000|  0  |     -1|   1   | 1000|   17|     -1 | -|15+ | 11111|0000000000010101|  0  |   1000|   0   | 1000|   17|     -1 | -|16  | 11111|0000000000010101|  0  |     21|   0   |   21|   18|     -1 | -|16+ | 11111|1110011111000010|  0  |      0|   0   |   21|   18|     -1 | -|17  | 11111|1110011111000010|  0  |      0|   0   |   21|   21|     -1 | -|17+ | 11111|0000000000000010|  0  |     21|   0   |   21|   21|     -1 | -|18  | 11111|0000000000000010|  0  |      2|   0   |    2|   22|     -1 | -|18+ | 11111|1110000010010000|  0  |      1|   0   |    2|   22|      1 | -|19  | 11111|1110000010010000|  0  |      3|   0   |    2|   23|      1 | -|19+ | 11111|0000001111101000|  0  |     -1|   0   |    2|   23|      1 | -|20  | 11111|0000001111101000|  0  |     -1|   0   | 1000|   24|      1 | -|20+ | 11111|1110111010010000|  0  |     -1|   0   | 1000|   24|     -1 | -|21  | 11111|1110111010010000|  0  |     -1|   0   | 1000|   25|     -1 | -|21+ | 11111|1110001100000001|  0  |     -1|   0   | 1000|   25|     -1 | -|22  | 11111|1110001100000001|  0  |     -1|   0   | 1000|   26|     -1 | -|22+ | 11111|1110001100000010|  0  |     -1|   0   | 1000|   26|     -1 | -|23  | 11111|1110001100000010|  0  |     -1|   0   | 1000|   27|     -1 | -|23+ | 11111|1110001100000011|  0  |     -1|   0   | 1000|   27|     -1 | -|24  | 11111|1110001100000011|  0  |     -1|   0   | 1000|   28|     -1 | -|24+ | 11111|1110001100000100|  0  |     -1|   0   | 1000|   28|     -1 | -|25  | 11111|1110001100000100|  0  |     -1|   0   | 1000| 1000|     -1 | -|25+ | 11111|1110001100000101|  0  |     -1|   0   | 1000| 1000|     -1 | -|26  | 11111|1110001100000101|  0  |     -1|   0   | 1000| 1000|     -1 | -|26+ | 11111|1110001100000110|  0  |     -1|   0   | 1000| 1000|     -1 | -|27  | 11111|1110001100000110|  0  |     -1|   0   | 1000| 1000|     -1 | -|27+ | 11111|1110001100000111|  0  |     -1|   0   | 1000| 1000|     -1 | -|28  | 11111|1110001100000111|  0  |     -1|   0   | 1000| 1000|     -1 | -|28+ | 11111|1110101010010000|  0  |      0|   0   | 1000| 1000|      0 | -|29  | 11111|1110101010010000|  0  |      0|   0   | 1000| 1001|      0 | -|29+ | 11111|1110001100000001|  0  |      0|   0   | 1000| 1001|      0 | -|30  | 11111|1110001100000001|  0  |      0|   0   | 1000| 1002|      0 | -|30+ | 11111|1110001100000010|  0  |      0|   0   | 1000| 1002|      0 | -|31  | 11111|1110001100000010|  0  |      0|   0   | 1000| 1000|      0 | -|31+ | 11111|1110001100000011|  0  |      0|   0   | 1000| 1000|      0 | -|32  | 11111|1110001100000011|  0  |      0|   0   | 1000| 1000|      0 | -|32+ | 11111|1110001100000100|  0  |      0|   0   | 1000| 1000|      0 | -|33  | 11111|1110001100000100|  0  |      0|   0   | 1000| 1001|      0 | -|33+ | 11111|1110001100000101|  0  |      0|   0   | 1000| 1001|      0 | -|34  | 11111|1110001100000101|  0  |      0|   0   | 1000| 1002|      0 | -|34+ | 11111|1110001100000110|  0  |      0|   0   | 1000| 1002|      0 | -|35  | 11111|1110001100000110|  0  |      0|   0   | 1000| 1000|      0 | -|35+ | 11111|1110001100000111|  0  |      0|   0   | 1000| 1000|      0 | -|36  | 11111|1110001100000111|  0  |      0|   0   | 1000| 1000|      0 | -|36+ | 11111|1110111111010000|  0  |      1|   0   | 1000| 1000|      1 | -|37  | 11111|1110111111010000|  0  |      1|   0   | 1000| 1001|      1 | -|37+ | 11111|1110001100000001|  0  |      1|   0   | 1000| 1001|      1 | -|38  | 11111|1110001100000001|  0  |      1|   0   | 1000| 1000|      1 | -|38+ | 11111|1110001100000010|  0  |      1|   0   | 1000| 1000|      1 | -|39  | 11111|1110001100000010|  0  |      1|   0   | 1000| 1001|      1 | -|39+ | 11111|1110001100000011|  0  |      1|   0   | 1000| 1001|      1 | -|40  | 11111|1110001100000011|  0  |      1|   0   | 1000| 1000|      1 | -|40+ | 11111|1110001100000100|  0  |      1|   0   | 1000| 1000|      1 | -|41  | 11111|1110001100000100|  0  |      1|   0   | 1000| 1001|      1 | -|41+ | 11111|1110001100000101|  0  |      1|   0   | 1000| 1001|      1 | -|42  | 11111|1110001100000101|  0  |      1|   0   | 1000| 1000|      1 | -|42+ | 11111|1110001100000110|  0  |      1|   0   | 1000| 1000|      1 | -|43  | 11111|1110001100000110|  0  |      1|   0   | 1000| 1001|      1 | -|43+ | 11111|1110001100000111|  0  |      1|   0   | 1000| 1001|      1 | -|44  | 11111|1110001100000111|  0  |      1|   0   | 1000| 1000|      1 | -|44+ | 11111|1110001100000111|  1  |      1|   0   | 1000| 1000|      1 | -|45  | 11111|1110001100000111|  1  |      1|   0   | 1000|    0|      1 | -|45+ | 11111|0111111111111111|  0  |      1|   0   | 1000|    0|      1 | -|46  | 11111|0111111111111111|  0  |      1|   0   |32767|    1|      1 | diff --git a/projects/05/CPU.tst b/projects/05/CPU.tst deleted file mode 100644 index 98eee1c..0000000 --- a/projects/05/CPU.tst +++ /dev/null @@ -1,150 +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/05/CPU.tst
 -
 -load CPU.hdl,
 -output-file CPU.out,
 -compare-to CPU.cmp,
 -output-list time%S0.4.0 inM%D0.6.0 instruction%B0.16.0 reset%B2.1.2 outM%D1.6.0 writeM%B3.1.3 addressM%D0.5.0 pc%D0.5.0 DRegister[]%D1.6.1;
 -
 -
 -set instruction %B0011000000111001, // @12345
 -tick, output, tock, output;
 -
 -set instruction %B1110110000010000, // D=A
 -tick, output, tock, output;
 -
 -set instruction %B0101101110100000, // @23456
 -tick, output, tock, output;
 -
 -set instruction %B1110000111010000, // D=A-D
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1110001100001000, // M=D
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101001, // @1001
 -tick, output, tock, output;
 -
 -set instruction %B1110001110011000, // MD=D-1
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1111010011010000, // D=D-M
 -set inM 11111,
 -tick, output, tock, output;
 -
 -set instruction %B0000000000001110, // @14
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;jlt
 -tick, output, tock, output;
 -
 -set instruction %B0000001111100111, // @999
 -tick, output, tock, output;
 -
 -set instruction %B1110110111100000, // A=A+1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100001000, // M=D
 -tick, output, tock, output;
 -
 -set instruction %B0000000000010101, // @21
 -tick, output, tock, output;
 -
 -set instruction %B1110011111000010, // D+1;jeq
 -tick, output, tock, output;
 -
 -set instruction %B0000000000000010, // @2
 -tick, output, tock, output;
 -
 -set instruction %B1110000010010000, // D=D+A
 -tick, output, tock, output;
 -
 -set instruction %B0000001111101000, // @1000
 -tick, output, tock, output;
 -
 -set instruction %B1110111010010000, // D=-1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set instruction %B1110101010010000, // D=0
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set instruction %B1110111111010000, // D=1
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000001, // D;JGT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000010, // D;JEQ
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000011, // D;JGE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000100, // D;JLT
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000101, // D;JNE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000110, // D;JLE
 -tick, output, tock, output;
 -
 -set instruction %B1110001100000111, // D;JMP
 -tick, output, tock, output;
 -
 -set reset 1;
 -tick, output, tock, output;
 -
 -set instruction %B0111111111111111, // @32767
 -set reset 0;
 -tick, output, tock, output;
 diff --git a/projects/05/Computer.hdl b/projects/05/Computer.hdl deleted file mode 100644 index fdda8e3..0000000 --- a/projects/05/Computer.hdl +++ /dev/null @@ -1,26 +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/05/Computer.hdl
 -
 -/**
 - * The HACK computer, including CPU, ROM and RAM.
 - * When reset is 0, the program stored in the computer's ROM executes.
 - * When reset is 1, the execution of the program restarts. 
 - * Thus, to start a program's execution, reset must be pushed "up" (1)
 - * and "down" (0). From this point onward the user is at the mercy of 
 - * the software. In particular, depending on the program's code, the 
 - * screen may show some output and the user may be able to interact 
 - * with the computer via the keyboard.
 - */
 -
 -CHIP Computer {
 -
 -    IN reset;
 -
 -    PARTS:
 -    // Put your code here:
 -    CPU(reset=reset, instruction=instruction, inM=inM, writeM=writeM, outM=outM, addressM=addressM, pc=pc);
 -    Memory(in=outM, address=addressM, load=writeM, out=inM);
 -    ROM32K(address=pc, out=instruction);
 -}
 diff --git a/projects/05/ComputerAdd-external.cmp b/projects/05/ComputerAdd-external.cmp deleted file mode 100644 index a3a8eaf..0000000 --- a/projects/05/ComputerAdd-external.cmp +++ /dev/null @@ -1,15 +0,0 @@ -| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]|
 -| 0    |  0  |       0 |       0 |       0 |
 -| 1    |  0  |       0 |       0 |       0 |
 -| 2    |  0  |       0 |       0 |       0 |
 -| 3    |  0  |       0 |       0 |       0 |
 -| 4    |  0  |       0 |       0 |       0 |
 -| 5    |  0  |       0 |       0 |       0 |
 -| 6    |  0  |       5 |       0 |       0 |
 -| 7    |  1  |       0 |       0 |       0 |
 -| 8    |  0  |       0 |       0 |       0 |
 -| 9    |  0  |       0 |       0 |       0 |
 -| 10   |  0  |       0 |       0 |       0 |
 -| 11   |  0  |       0 |       0 |       0 |
 -| 12   |  0  |       0 |       0 |       0 |
 -| 13   |  0  |       5 |       0 |       0 |
 diff --git a/projects/05/ComputerAdd-external.tst b/projects/05/ComputerAdd-external.tst deleted file mode 100644 index 09cc1a7..0000000 --- a/projects/05/ComputerAdd-external.tst +++ /dev/null @@ -1,32 +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/05/ComputerAdd-external.tst
 -
 -load Computer.hdl,
 -output-file ComputerAdd-external.out,
 -compare-to ComputerAdd-external.cmp,
 -output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program adds the two constants 2 and 3 and writes the result in RAM[0]. 
 -ROM32K load Add.hack,
 -output;
 -
 -// First run (at the beginning PC=0)
 -repeat 6 {
 -    tick, tock, output;
 -}
 -
 -// Reset the PC
 -set reset 1,
 -set RAM16K[0] 0,
 -tick, tock, output;
 -
 -
 -// Second run, to check that the PC was reset correctly.
 -set reset 0,
 -
 -repeat 6 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/ComputerAdd.cmp b/projects/05/ComputerAdd.cmp deleted file mode 100644 index f295464..0000000 --- a/projects/05/ComputerAdd.cmp +++ /dev/null @@ -1,15 +0,0 @@ -| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
 -| 0    |  0  |       0 |       0 |   0|       0 |       0 |       0 |
 -| 1    |  0  |       2 |       0 |   1|       0 |       0 |       0 |
 -| 2    |  0  |       2 |       2 |   2|       0 |       0 |       0 |
 -| 3    |  0  |       3 |       2 |   3|       0 |       0 |       0 |
 -| 4    |  0  |       3 |       5 |   4|       0 |       0 |       0 |
 -| 5    |  0  |       0 |       5 |   5|       0 |       0 |       0 |
 -| 6    |  0  |       0 |       5 |   6|       5 |       0 |       0 |
 -| 7    |  1  |       0 |       5 |   0|       0 |       0 |       0 |
 -| 8    |  0  |       2 |       5 |   1|       0 |       0 |       0 |
 -| 9    |  0  |       2 |       2 |   2|       0 |       0 |       0 |
 -| 10   |  0  |       3 |       2 |   3|       0 |       0 |       0 |
 -| 11   |  0  |       3 |       5 |   4|       0 |       0 |       0 |
 -| 12   |  0  |       0 |       5 |   5|       0 |       0 |       0 |
 -| 13   |  0  |       0 |       5 |   6|       5 |       0 |       0 |
 diff --git a/projects/05/ComputerAdd.out b/projects/05/ComputerAdd.out deleted file mode 100644 index 5748770..0000000 --- a/projects/05/ComputerAdd.out +++ /dev/null @@ -1,15 +0,0 @@ -| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| -| 0    |  0  |       0 |       0 |   0|       0 |       0 |       0 | -| 1    |  0  |       2 |       0 |   1|       0 |       0 |       0 | -| 2    |  0  |       2 |       2 |   2|       0 |       0 |       0 | -| 3    |  0  |       3 |       2 |   3|       0 |       0 |       0 | -| 4    |  0  |       3 |       5 |   4|       0 |       0 |       0 | -| 5    |  0  |       0 |       5 |   5|       0 |       0 |       0 | -| 6    |  0  |       0 |       5 |   6|       5 |       0 |       0 | -| 7    |  1  |       0 |       5 |   0|       0 |       0 |       0 | -| 8    |  0  |       2 |       5 |   1|       0 |       0 |       0 | -| 9    |  0  |       2 |       2 |   2|       0 |       0 |       0 | -| 10   |  0  |       3 |       2 |   3|       0 |       0 |       0 | -| 11   |  0  |       3 |       5 |   4|       0 |       0 |       0 | -| 12   |  0  |       0 |       5 |   5|       0 |       0 |       0 | -| 13   |  0  |       0 |       5 |   6|       5 |       0 |       0 | diff --git a/projects/05/ComputerAdd.tst b/projects/05/ComputerAdd.tst deleted file mode 100644 index 27f4411..0000000 --- a/projects/05/ComputerAdd.tst +++ /dev/null @@ -1,32 +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/05/ComputerAdd.tst
 -
 -load Computer.hdl,
 -output-file ComputerAdd.out,
 -compare-to ComputerAdd.cmp,
 -output-list time%S1.4.1 reset%B2.1.2 ARegister[0]%D1.7.1 DRegister[0]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program adds the two constants 2 and 3 and writes the result in RAM[0]. 
 -ROM32K load Add.hack,
 -output;
 -
 -// First run (at the beginning PC=0)
 -repeat 6 {
 -    tick, tock, output;
 -}
 -
 -// Reset the PC
 -set reset 1,
 -set RAM16K[0] 0,
 -tick, tock, output;
 -
 -
 -// Second run, to check that the PC was reset correctly.
 -set reset 0,
 -
 -repeat 6 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/ComputerMax-external.cmp b/projects/05/ComputerMax-external.cmp deleted file mode 100644 index f864733..0000000 --- a/projects/05/ComputerMax-external.cmp +++ /dev/null @@ -1,28 +0,0 @@ -| time |reset|RAM16K[0]|RAM16K[1]|RAM16K[2]|
 -| 0    |  0  |       3 |       5 |       0 |
 -| 1    |  0  |       3 |       5 |       0 |
 -| 2    |  0  |       3 |       5 |       0 |
 -| 3    |  0  |       3 |       5 |       0 |
 -| 4    |  0  |       3 |       5 |       0 |
 -| 5    |  0  |       3 |       5 |       0 |
 -| 6    |  0  |       3 |       5 |       0 |
 -| 7    |  0  |       3 |       5 |       0 |
 -| 8    |  0  |       3 |       5 |       0 |
 -| 9    |  0  |       3 |       5 |       0 |
 -| 10   |  0  |       3 |       5 |       0 |
 -| 11   |  0  |       3 |       5 |       0 |
 -| 12   |  0  |       3 |       5 |       5 |
 -| 13   |  0  |       3 |       5 |       5 |
 -| 14   |  0  |       3 |       5 |       5 |
 -| 15   |  1  |       3 |       5 |       5 |
 -| 15   |  0  |   23456 |   12345 |       5 |
 -| 16   |  0  |   23456 |   12345 |       5 |
 -| 17   |  0  |   23456 |   12345 |       5 |
 -| 18   |  0  |   23456 |   12345 |       5 |
 -| 19   |  0  |   23456 |   12345 |       5 |
 -| 20   |  0  |   23456 |   12345 |       5 |
 -| 21   |  0  |   23456 |   12345 |       5 |
 -| 22   |  0  |   23456 |   12345 |       5 |
 -| 23   |  0  |   23456 |   12345 |       5 |
 -| 24   |  0  |   23456 |   12345 |       5 |
 -| 25   |  0  |   23456 |   12345 |   23456 |
 diff --git a/projects/05/ComputerMax-external.tst b/projects/05/ComputerMax-external.tst deleted file mode 100644 index 52b6bef..0000000 --- a/projects/05/ComputerMax-external.tst +++ /dev/null @@ -1,38 +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/05/ComputerMax-external.tst
 -
 -load Computer.hdl,
 -output-file ComputerMax-external.out,
 -compare-to ComputerMax-external.cmp,
 -output-list time%S1.4.1 reset%B2.1.2 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program computes the maximum of RAM[0] and RAM[1] 
 -// and writes the result in RAM[2].
 -ROM32K load Max.hack,
 -
 -// first run: compute max(3,5)
 -set RAM16K[0] 3,
 -set RAM16K[1] 5,
 -output;
 -
 -repeat 14 {
 -    tick, tock, output;
 -}
 -
 -// reset the PC
 -set reset 1,
 -tick, tock, output;
 -
 -// second run: compute max(23456,12345)
 -set reset 0,
 -set RAM16K[0] 23456,
 -set RAM16K[1] 12345,
 -output;
 -
 -// The run on these inputs needs less cycles (different branching)
 -repeat 10 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/ComputerMax.cmp b/projects/05/ComputerMax.cmp deleted file mode 100644 index 42276cd..0000000 --- a/projects/05/ComputerMax.cmp +++ /dev/null @@ -1,28 +0,0 @@ -| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
 -| 0    |  0  |       0 |       0 |   0|       3 |       5 |       0 |
 -| 1    |  0  |       0 |       0 |   1|       3 |       5 |       0 |
 -| 2    |  0  |       0 |       3 |   2|       3 |       5 |       0 |
 -| 3    |  0  |       1 |       3 |   3|       3 |       5 |       0 |
 -| 4    |  0  |       1 |      -2 |   4|       3 |       5 |       0 |
 -| 5    |  0  |      10 |      -2 |   5|       3 |       5 |       0 |
 -| 6    |  0  |      10 |      -2 |   6|       3 |       5 |       0 |
 -| 7    |  0  |       1 |      -2 |   7|       3 |       5 |       0 |
 -| 8    |  0  |       1 |       5 |   8|       3 |       5 |       0 |
 -| 9    |  0  |      12 |       5 |   9|       3 |       5 |       0 |
 -| 10   |  0  |      12 |       5 |  12|       3 |       5 |       0 |
 -| 11   |  0  |       2 |       5 |  13|       3 |       5 |       0 |
 -| 12   |  0  |       2 |       5 |  14|       3 |       5 |       5 |
 -| 13   |  0  |      14 |       5 |  15|       3 |       5 |       5 |
 -| 14   |  0  |      14 |       5 |  14|       3 |       5 |       5 |
 -| 15   |  1  |      14 |       5 |   0|       3 |       5 |       5 |
 -| 15   |  0  |      14 |       5 |   0|   23456 |   12345 |       5 |
 -| 16   |  0  |       0 |       5 |   1|   23456 |   12345 |       5 |
 -| 17   |  0  |       0 |   23456 |   2|   23456 |   12345 |       5 |
 -| 18   |  0  |       1 |   23456 |   3|   23456 |   12345 |       5 |
 -| 19   |  0  |       1 |   11111 |   4|   23456 |   12345 |       5 |
 -| 20   |  0  |      10 |   11111 |   5|   23456 |   12345 |       5 |
 -| 21   |  0  |      10 |   11111 |  10|   23456 |   12345 |       5 |
 -| 22   |  0  |       0 |   11111 |  11|   23456 |   12345 |       5 |
 -| 23   |  0  |       0 |   23456 |  12|   23456 |   12345 |       5 |
 -| 24   |  0  |       2 |   23456 |  13|   23456 |   12345 |       5 |
 -| 25   |  0  |       2 |   23456 |  14|   23456 |   12345 |   23456 |
 diff --git a/projects/05/ComputerMax.out b/projects/05/ComputerMax.out deleted file mode 100644 index 698d5a1..0000000 --- a/projects/05/ComputerMax.out +++ /dev/null @@ -1,28 +0,0 @@ -| time |reset|ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| -| 0    |  0  |       0 |       0 |   0|       3 |       5 |       0 | -| 1    |  0  |       0 |       0 |   1|       3 |       5 |       0 | -| 2    |  0  |       0 |       3 |   2|       3 |       5 |       0 | -| 3    |  0  |       1 |       3 |   3|       3 |       5 |       0 | -| 4    |  0  |       1 |      -2 |   4|       3 |       5 |       0 | -| 5    |  0  |      10 |      -2 |   5|       3 |       5 |       0 | -| 6    |  0  |      10 |      -2 |   6|       3 |       5 |       0 | -| 7    |  0  |       1 |      -2 |   7|       3 |       5 |       0 | -| 8    |  0  |       1 |       5 |   8|       3 |       5 |       0 | -| 9    |  0  |      12 |       5 |   9|       3 |       5 |       0 | -| 10   |  0  |      12 |       5 |  12|       3 |       5 |       0 | -| 11   |  0  |       2 |       5 |  13|       3 |       5 |       0 | -| 12   |  0  |       2 |       5 |  14|       3 |       5 |       5 | -| 13   |  0  |      14 |       5 |  15|       3 |       5 |       5 | -| 14   |  0  |      14 |       5 |  14|       3 |       5 |       5 | -| 15   |  1  |      14 |       5 |   0|       3 |       5 |       5 | -| 15   |  0  |      14 |       5 |   0|   23456 |   12345 |       5 | -| 16   |  0  |       0 |       5 |   1|   23456 |   12345 |       5 | -| 17   |  0  |       0 |   23456 |   2|   23456 |   12345 |       5 | -| 18   |  0  |       1 |   23456 |   3|   23456 |   12345 |       5 | -| 19   |  0  |       1 |   11111 |   4|   23456 |   12345 |       5 | -| 20   |  0  |      10 |   11111 |   5|   23456 |   12345 |       5 | -| 21   |  0  |      10 |   11111 |  10|   23456 |   12345 |       5 | -| 22   |  0  |       0 |   11111 |  11|   23456 |   12345 |       5 | -| 23   |  0  |       0 |   23456 |  12|   23456 |   12345 |       5 | -| 24   |  0  |       2 |   23456 |  13|   23456 |   12345 |       5 | -| 25   |  0  |       2 |   23456 |  14|   23456 |   12345 |   23456 | diff --git a/projects/05/ComputerMax.tst b/projects/05/ComputerMax.tst deleted file mode 100644 index e090754..0000000 --- a/projects/05/ComputerMax.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/05/ComputerMax.tst
 -
 -load Computer.hdl,
 -output-file ComputerMax.out,
 -compare-to ComputerMax.cmp,
 -output-list time%S1.4.1 reset%B2.1.2 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program computes the maximum of RAM[0] and RAM[1] 
 -// and writes the result in RAM[2].
 -
 -ROM32K load Max.hack,
 -
 -// first run: compute max(3,5)
 -set RAM16K[0] 3,
 -set RAM16K[1] 5,
 -output;
 -
 -repeat 14 {
 -    tick, tock, output;
 -}
 -
 -// reset the PC
 -set reset 1,
 -tick, tock, output;
 -
 -// second run: compute max(23456,12345)
 -set reset 0,
 -set RAM16K[0] 23456,
 -set RAM16K[1] 12345,
 -output;
 -
 -// The run on these inputs needs less cycles (different branching)
 -repeat 10 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/ComputerRect-external.cmp b/projects/05/ComputerRect-external.cmp deleted file mode 100644 index f276922..0000000 --- a/projects/05/ComputerRect-external.cmp +++ /dev/null @@ -1,65 +0,0 @@ -| time |
 -| 0    |
 -| 1    |
 -| 2    |
 -| 3    |
 -| 4    |
 -| 5    |
 -| 6    |
 -| 7    |
 -| 8    |
 -| 9    |
 -| 10   |
 -| 11   |
 -| 12   |
 -| 13   |
 -| 14   |
 -| 15   |
 -| 16   |
 -| 17   |
 -| 18   |
 -| 19   |
 -| 20   |
 -| 21   |
 -| 22   |
 -| 23   |
 -| 24   |
 -| 25   |
 -| 26   |
 -| 27   |
 -| 28   |
 -| 29   |
 -| 30   |
 -| 31   |
 -| 32   |
 -| 33   |
 -| 34   |
 -| 35   |
 -| 36   |
 -| 37   |
 -| 38   |
 -| 39   |
 -| 40   |
 -| 41   |
 -| 42   |
 -| 43   |
 -| 44   |
 -| 45   |
 -| 46   |
 -| 47   |
 -| 48   |
 -| 49   |
 -| 50   |
 -| 51   |
 -| 52   |
 -| 53   |
 -| 54   |
 -| 55   |
 -| 56   |
 -| 57   |
 -| 58   |
 -| 59   |
 -| 60   |
 -| 61   |
 -| 62   |
 -| 63   |
 diff --git a/projects/05/ComputerRect-external.tst b/projects/05/ComputerRect-external.tst deleted file mode 100644 index f9102f7..0000000 --- a/projects/05/ComputerRect-external.tst +++ /dev/null @@ -1,26 +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/05/ComputerRect-external.tst
 -
 -load Computer.hdl,
 -output-file ComputerRect-external.out,
 -compare-to ComputerRect-external.cmp,
 -output-list time%S1.4.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program draws a rectangle of width 16 pixels and 
 -// length RAM[0] at the top left of the screen.
 -ROM32K load Rect.hack,
 -
 -echo "Before you run this script, select the 'Screen' option from the 'View' menu";
 -
 -echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)";
 -
 -// draw a rectangle 16 pixels wide and 4 pixels long
 -set RAM16K[0] 4,
 -output;
 -
 -repeat 63 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/ComputerRect.cmp b/projects/05/ComputerRect.cmp deleted file mode 100644 index a6b5cc9..0000000 --- a/projects/05/ComputerRect.cmp +++ /dev/null @@ -1,65 +0,0 @@ -| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]|
 -| 0    |       0 |       0 |   0|       4 |       0 |       0 |
 -| 1    |       0 |       0 |   1|       4 |       0 |       0 |
 -| 2    |       0 |       4 |   2|       4 |       0 |       0 |
 -| 3    |      23 |       4 |   3|       4 |       0 |       0 |
 -| 4    |      23 |       4 |   4|       4 |       0 |       0 |
 -| 5    |      16 |       4 |   5|       4 |       0 |       0 |
 -| 6    |      16 |       4 |   6|       4 |       0 |       0 |
 -| 7    |   16384 |       4 |   7|       4 |       0 |       0 |
 -| 8    |   16384 |   16384 |   8|       4 |       0 |       0 |
 -| 9    |      17 |   16384 |   9|       4 |       0 |       0 |
 -| 10   |      17 |   16384 |  10|       4 |       0 |       0 |
 -| 11   |      17 |   16384 |  11|       4 |       0 |       0 |
 -| 12   |   16384 |   16384 |  12|       4 |       0 |       0 |
 -| 13   |   16384 |   16384 |  13|       4 |       0 |       0 |
 -| 14   |      17 |   16384 |  14|       4 |       0 |       0 |
 -| 15   |      17 |   16384 |  15|       4 |       0 |       0 |
 -| 16   |      32 |   16384 |  16|       4 |       0 |       0 |
 -| 17   |      32 |   16416 |  17|       4 |       0 |       0 |
 -| 18   |      17 |   16416 |  18|       4 |       0 |       0 |
 -| 19   |      17 |   16416 |  19|       4 |       0 |       0 |
 -| 20   |      16 |   16416 |  20|       4 |       0 |       0 |
 -| 21   |      16 |       3 |  21|       4 |       0 |       0 |
 -| 22   |      10 |       3 |  22|       4 |       0 |       0 |
 -| 23   |      10 |       3 |  10|       4 |       0 |       0 |
 -| 24   |      17 |       3 |  11|       4 |       0 |       0 |
 -| 25   |   16416 |       3 |  12|       4 |       0 |       0 |
 -| 26   |   16416 |       3 |  13|       4 |       0 |       0 |
 -| 27   |      17 |       3 |  14|       4 |       0 |       0 |
 -| 28   |      17 |   16416 |  15|       4 |       0 |       0 |
 -| 29   |      32 |   16416 |  16|       4 |       0 |       0 |
 -| 30   |      32 |   16448 |  17|       4 |       0 |       0 |
 -| 31   |      17 |   16448 |  18|       4 |       0 |       0 |
 -| 32   |      17 |   16448 |  19|       4 |       0 |       0 |
 -| 33   |      16 |   16448 |  20|       4 |       0 |       0 |
 -| 34   |      16 |       2 |  21|       4 |       0 |       0 |
 -| 35   |      10 |       2 |  22|       4 |       0 |       0 |
 -| 36   |      10 |       2 |  10|       4 |       0 |       0 |
 -| 37   |      17 |       2 |  11|       4 |       0 |       0 |
 -| 38   |   16448 |       2 |  12|       4 |       0 |       0 |
 -| 39   |   16448 |       2 |  13|       4 |       0 |       0 |
 -| 40   |      17 |       2 |  14|       4 |       0 |       0 |
 -| 41   |      17 |   16448 |  15|       4 |       0 |       0 |
 -| 42   |      32 |   16448 |  16|       4 |       0 |       0 |
 -| 43   |      32 |   16480 |  17|       4 |       0 |       0 |
 -| 44   |      17 |   16480 |  18|       4 |       0 |       0 |
 -| 45   |      17 |   16480 |  19|       4 |       0 |       0 |
 -| 46   |      16 |   16480 |  20|       4 |       0 |       0 |
 -| 47   |      16 |       1 |  21|       4 |       0 |       0 |
 -| 48   |      10 |       1 |  22|       4 |       0 |       0 |
 -| 49   |      10 |       1 |  10|       4 |       0 |       0 |
 -| 50   |      17 |       1 |  11|       4 |       0 |       0 |
 -| 51   |   16480 |       1 |  12|       4 |       0 |       0 |
 -| 52   |   16480 |       1 |  13|       4 |       0 |       0 |
 -| 53   |      17 |       1 |  14|       4 |       0 |       0 |
 -| 54   |      17 |   16480 |  15|       4 |       0 |       0 |
 -| 55   |      32 |   16480 |  16|       4 |       0 |       0 |
 -| 56   |      32 |   16512 |  17|       4 |       0 |       0 |
 -| 57   |      17 |   16512 |  18|       4 |       0 |       0 |
 -| 58   |      17 |   16512 |  19|       4 |       0 |       0 |
 -| 59   |      16 |   16512 |  20|       4 |       0 |       0 |
 -| 60   |      16 |       0 |  21|       4 |       0 |       0 |
 -| 61   |      10 |       0 |  22|       4 |       0 |       0 |
 -| 62   |      10 |       0 |  23|       4 |       0 |       0 |
 -| 63   |      23 |       0 |  24|       4 |       0 |       0 |
 diff --git a/projects/05/ComputerRect.out b/projects/05/ComputerRect.out deleted file mode 100644 index a6b3965..0000000 --- a/projects/05/ComputerRect.out +++ /dev/null @@ -1,65 +0,0 @@ -| time |ARegister|DRegister|PC[]|RAM16K[0]|RAM16K[1]|RAM16K[2]| -| 0    |       0 |       0 |   0|       4 |       0 |       0 | -| 1    |       0 |       0 |   1|       4 |       0 |       0 | -| 2    |       0 |       4 |   2|       4 |       0 |       0 | -| 3    |      23 |       4 |   3|       4 |       0 |       0 | -| 4    |      23 |       4 |   4|       4 |       0 |       0 | -| 5    |      16 |       4 |   5|       4 |       0 |       0 | -| 6    |      16 |       4 |   6|       4 |       0 |       0 | -| 7    |   16384 |       4 |   7|       4 |       0 |       0 | -| 8    |   16384 |   16384 |   8|       4 |       0 |       0 | -| 9    |      17 |   16384 |   9|       4 |       0 |       0 | -| 10   |      17 |   16384 |  10|       4 |       0 |       0 | -| 11   |      17 |   16384 |  11|       4 |       0 |       0 | -| 12   |   16384 |   16384 |  12|       4 |       0 |       0 | -| 13   |   16384 |   16384 |  13|       4 |       0 |       0 | -| 14   |      17 |   16384 |  14|       4 |       0 |       0 | -| 15   |      17 |   16384 |  15|       4 |       0 |       0 | -| 16   |      32 |   16384 |  16|       4 |       0 |       0 | -| 17   |      32 |   16416 |  17|       4 |       0 |       0 | -| 18   |      17 |   16416 |  18|       4 |       0 |       0 | -| 19   |      17 |   16416 |  19|       4 |       0 |       0 | -| 20   |      16 |   16416 |  20|       4 |       0 |       0 | -| 21   |      16 |       3 |  21|       4 |       0 |       0 | -| 22   |      10 |       3 |  22|       4 |       0 |       0 | -| 23   |      10 |       3 |  10|       4 |       0 |       0 | -| 24   |      17 |       3 |  11|       4 |       0 |       0 | -| 25   |   16416 |       3 |  12|       4 |       0 |       0 | -| 26   |   16416 |       3 |  13|       4 |       0 |       0 | -| 27   |      17 |       3 |  14|       4 |       0 |       0 | -| 28   |      17 |   16416 |  15|       4 |       0 |       0 | -| 29   |      32 |   16416 |  16|       4 |       0 |       0 | -| 30   |      32 |   16448 |  17|       4 |       0 |       0 | -| 31   |      17 |   16448 |  18|       4 |       0 |       0 | -| 32   |      17 |   16448 |  19|       4 |       0 |       0 | -| 33   |      16 |   16448 |  20|       4 |       0 |       0 | -| 34   |      16 |       2 |  21|       4 |       0 |       0 | -| 35   |      10 |       2 |  22|       4 |       0 |       0 | -| 36   |      10 |       2 |  10|       4 |       0 |       0 | -| 37   |      17 |       2 |  11|       4 |       0 |       0 | -| 38   |   16448 |       2 |  12|       4 |       0 |       0 | -| 39   |   16448 |       2 |  13|       4 |       0 |       0 | -| 40   |      17 |       2 |  14|       4 |       0 |       0 | -| 41   |      17 |   16448 |  15|       4 |       0 |       0 | -| 42   |      32 |   16448 |  16|       4 |       0 |       0 | -| 43   |      32 |   16480 |  17|       4 |       0 |       0 | -| 44   |      17 |   16480 |  18|       4 |       0 |       0 | -| 45   |      17 |   16480 |  19|       4 |       0 |       0 | -| 46   |      16 |   16480 |  20|       4 |       0 |       0 | -| 47   |      16 |       1 |  21|       4 |       0 |       0 | -| 48   |      10 |       1 |  22|       4 |       0 |       0 | -| 49   |      10 |       1 |  10|       4 |       0 |       0 | -| 50   |      17 |       1 |  11|       4 |       0 |       0 | -| 51   |   16480 |       1 |  12|       4 |       0 |       0 | -| 52   |   16480 |       1 |  13|       4 |       0 |       0 | -| 53   |      17 |       1 |  14|       4 |       0 |       0 | -| 54   |      17 |   16480 |  15|       4 |       0 |       0 | -| 55   |      32 |   16480 |  16|       4 |       0 |       0 | -| 56   |      32 |   16512 |  17|       4 |       0 |       0 | -| 57   |      17 |   16512 |  18|       4 |       0 |       0 | -| 58   |      17 |   16512 |  19|       4 |       0 |       0 | -| 59   |      16 |   16512 |  20|       4 |       0 |       0 | -| 60   |      16 |       0 |  21|       4 |       0 |       0 | -| 61   |      10 |       0 |  22|       4 |       0 |       0 | -| 62   |      10 |       0 |  23|       4 |       0 |       0 | -| 63   |      23 |       0 |  24|       4 |       0 |       0 | diff --git a/projects/05/ComputerRect.tst b/projects/05/ComputerRect.tst deleted file mode 100644 index b1e2126..0000000 --- a/projects/05/ComputerRect.tst +++ /dev/null @@ -1,26 +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/05/ComputerRect.tst
 -
 -load Computer.hdl,
 -output-file ComputerRect.out,
 -compare-to ComputerRect.cmp,
 -output-list time%S1.4.1 ARegister[]%D1.7.1 DRegister[]%D1.7.1 PC[]%D0.4.0 RAM16K[0]%D1.7.1 RAM16K[1]%D1.7.1 RAM16K[2]%D1.7.1;
 -
 -// Load a program written in the Hack machine language.
 -// The program draws a rectangle of width 16 pixels and 
 -// length RAM[0] at the top left of the screen.
 -ROM32K load Rect.hack,
 -
 -echo "Before you run this script, select the 'Screen' option from the 'View' menu";
 -
 -echo "A small rectangle should be drawn at the top left of the screen (the 'Screen' option of the 'View' menu should be selected.)";
 -
 -// Draws a rectangle 16 pixels wide and 4 pixels long
 -set RAM16K[0] 4,
 -output;
 -
 -repeat 63 {
 -    tick, tock, output;
 -}
 diff --git a/projects/05/Max.hack b/projects/05/Max.hack deleted file mode 100644 index 2e04a8d..0000000 --- a/projects/05/Max.hack +++ /dev/null @@ -1,16 +0,0 @@ -0000000000000000
 -1111110000010000
 -0000000000000001
 -1111010011010000
 -0000000000001010
 -1110001100000001
 -0000000000000001
 -1111110000010000
 -0000000000001100
 -1110101010000111
 -0000000000000000
 -1111110000010000
 -0000000000000010
 -1110001100001000
 -0000000000001110
 -1110101010000111
 diff --git a/projects/05/Memory.cmp b/projects/05/Memory.cmp deleted file mode 100644 index 613d171..0000000 --- a/projects/05/Memory.cmp +++ /dev/null @@ -1,54 +0,0 @@ -|   in   |load |     address     |  out   |
 -|     -1 |  1  | 000000000000000 |      0 |
 -|     -1 |  1  | 000000000000000 |     -1 |
 -|   9999 |  0  | 000000000000000 |     -1 |
 -|   9999 |  0  | 000000000000000 |     -1 |
 -|   9999 |  0  | 010000000000000 |      0 |
 -|   9999 |  0  | 100000000000000 |      0 |
 -|   2222 |  1  | 010000000000000 |      0 |
 -|   2222 |  1  | 010000000000000 |   2222 |
 -|   9999 |  0  | 010000000000000 |   2222 |
 -|   9999 |  0  | 010000000000000 |   2222 |
 -|   9999 |  0  | 000000000000000 |     -1 |
 -|   9999 |  0  | 100000000000000 |      0 |
 -|   9999 |  0  | 000000000000001 |      0 |
 -|   9999 |  0  | 000000000000010 |      0 |
 -|   9999 |  0  | 000000000000100 |      0 |
 -|   9999 |  0  | 000000000001000 |      0 |
 -|   9999 |  0  | 000000000010000 |      0 |
 -|   9999 |  0  | 000000000100000 |      0 |
 -|   9999 |  0  | 000000001000000 |      0 |
 -|   9999 |  0  | 000000010000000 |      0 |
 -|   9999 |  0  | 000000100000000 |      0 |
 -|   9999 |  0  | 000001000000000 |      0 |
 -|   9999 |  0  | 000010000000000 |      0 |
 -|   9999 |  0  | 000100000000000 |      0 |
 -|   9999 |  0  | 001000000000000 |      0 |
 -|   9999 |  0  | 010000000000000 |   2222 |
 -|   1234 |  1  | 001001000110100 |      0 |
 -|   1234 |  1  | 001001000110100 |   1234 |
 -|   1234 |  0  | 010001000110100 |      0 |
 -|   1234 |  0  | 110001000110100 |      0 |
 -|   2345 |  1  | 010001101000101 |      0 |
 -|   2345 |  1  | 010001101000101 |   2345 |
 -|   2345 |  0  | 000001101000101 |      0 |
 -|   2345 |  0  | 100001101000101 |      0 |
 -|   2345 |  0  | 110000000000000 |     75 |
 -|     -1 |  1  | 100111111001111 |     -1 |
 -|     -1 |  1  | 101000001001111 |     -1 |
 -|     -1 |  1  | 000111111001111 |      0 |
 -|     -1 |  1  | 010111111001111 |      0 |
 -|     -1 |  0  | 100111111001110 |      0 |
 -|     -1 |  0  | 100111111001101 |      0 |
 -|     -1 |  0  | 100111111001011 |      0 |
 -|     -1 |  0  | 100111111000111 |      0 |
 -|     -1 |  0  | 100111111011111 |      0 |
 -|     -1 |  0  | 100111111101111 |      0 |
 -|     -1 |  0  | 100111110001111 |      0 |
 -|     -1 |  0  | 100111101001111 |      0 |
 -|     -1 |  0  | 100111011001111 |      0 |
 -|     -1 |  0  | 100110111001111 |      0 |
 -|     -1 |  0  | 100101111001111 |      0 |
 -|     -1 |  0  | 100011111001111 |      0 |
 -|     -1 |  0  | 101111111001111 |      0 |
 -|     -1 |  0  | 110000000000000 |     89 |
 diff --git a/projects/05/Memory.hdl b/projects/05/Memory.hdl deleted file mode 100644 index 6aeb8a0..0000000 --- a/projects/05/Memory.hdl +++ /dev/null @@ -1,45 +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/05/Memory.hdl
 -
 -/**
 - * The complete address space of the Hack computer's memory,
 - * including RAM and memory-mapped I/O. 
 - * The chip facilitates read and write operations, as follows:
 - *     Read:  out(t) = Memory[address(t)](t)
 - *     Write: if load(t-1) then Memory[address(t-1)](t) = in(t-1)
 - * In words: the chip always outputs the value stored at the memory 
 - * location specified by address. If load==1, the in value is loaded 
 - * into the memory location specified by address. This value becomes 
 - * available through the out output from the next time step onward.
 - * Address space rules:
 - * Only the upper 16K+8K+1 words of the Memory chip are used. 
 - * Access to address>0x6000 is invalid. Access to any address in 
 - * the range 0x4000-0x5FFF results in accessing the screen memory 
 - * map. Access to address 0x6000 results in accessing the keyboard 
 - * memory map. The behavior in these addresses is described in the 
 - * Screen and Keyboard chip specifications given in the book.
 - */
 -
 -CHIP Memory {
 -    IN in[16], load, address[15];
 -    OUT out[16];
 -
 -    PARTS:
 -    // Put your code here:
 -    DMux(in=load, sel=address[14], a=mload, b=load1);
 -    DMux(in=load1, sel=address[13], a=sload, b=kload);
 -    RAM16K(in=in, load=mload, address=address[0..13], out=mout);
 -    Screen(in=in, load=sload, address=address[0..12], out=sout);
 -
 -    Or8Way(in=address[0..7], out=or1);
 -    Or8Way(in=address[5..12], out=or2);
 -    Or(a=or1, b=or2, out=ksel);
 -
 -    Keyboard(out=kout);
 -
 -    Mux16(a=kout, b=false, sel=ksel, out=fout1);
 -    Mux16(a=sout, b=fout1, sel=address[13], out=fout2);
 -    Mux16(a=mout, b=fout2, sel=address[14], out=out);
 -}
 diff --git a/projects/05/Memory.out b/projects/05/Memory.out deleted file mode 100644 index 1dbf7ed..0000000 --- a/projects/05/Memory.out +++ /dev/null @@ -1,54 +0,0 @@ -|   in   |load |     address     |  out   | -|     -1 |  1  | 000000000000000 |      0 | -|     -1 |  1  | 000000000000000 |     -1 | -|   9999 |  0  | 000000000000000 |     -1 | -|   9999 |  0  | 000000000000000 |     -1 | -|   9999 |  0  | 010000000000000 |      0 | -|   9999 |  0  | 100000000000000 |      0 | -|   2222 |  1  | 010000000000000 |      0 | -|   2222 |  1  | 010000000000000 |   2222 | -|   9999 |  0  | 010000000000000 |   2222 | -|   9999 |  0  | 010000000000000 |   2222 | -|   9999 |  0  | 000000000000000 |     -1 | -|   9999 |  0  | 100000000000000 |      0 | -|   9999 |  0  | 000000000000001 |      0 | -|   9999 |  0  | 000000000000010 |      0 | -|   9999 |  0  | 000000000000100 |      0 | -|   9999 |  0  | 000000000001000 |      0 | -|   9999 |  0  | 000000000010000 |      0 | -|   9999 |  0  | 000000000100000 |      0 | -|   9999 |  0  | 000000001000000 |      0 | -|   9999 |  0  | 000000010000000 |      0 | -|   9999 |  0  | 000000100000000 |      0 | -|   9999 |  0  | 000001000000000 |      0 | -|   9999 |  0  | 000010000000000 |      0 | -|   9999 |  0  | 000100000000000 |      0 | -|   9999 |  0  | 001000000000000 |      0 | -|   9999 |  0  | 010000000000000 |   2222 | -|   1234 |  1  | 001001000110100 |      0 | -|   1234 |  1  | 001001000110100 |   1234 | -|   1234 |  0  | 010001000110100 |      0 | -|   1234 |  0  | 110001000110100 |      0 | -|   2345 |  1  | 010001101000101 |      0 | -|   2345 |  1  | 010001101000101 |   2345 | -|   2345 |  0  | 000001101000101 |      0 | -|   2345 |  0  | 100001101000101 |      0 | -|   2345 |  0  | 110000000000000 |     75 | -|     -1 |  1  | 100111111001111 |     -1 | -|     -1 |  1  | 101000001001111 |     -1 | -|     -1 |  1  | 000111111001111 |      0 | -|     -1 |  1  | 010111111001111 |      0 | -|     -1 |  0  | 100111111001110 |      0 | -|     -1 |  0  | 100111111001101 |      0 | -|     -1 |  0  | 100111111001011 |      0 | -|     -1 |  0  | 100111111000111 |      0 | -|     -1 |  0  | 100111111011111 |      0 | -|     -1 |  0  | 100111111101111 |      0 | -|     -1 |  0  | 100111110001111 |      0 | -|     -1 |  0  | 100111101001111 |      0 | -|     -1 |  0  | 100111011001111 |      0 | -|     -1 |  0  | 100110111001111 |      0 | -|     -1 |  0  | 100101111001111 |      0 | -|     -1 |  0  | 100011111001111 |      0 | -|     -1 |  0  | 101111111001111 |      0 | -|     -1 |  0  | 110000000000000 |     89 | diff --git a/projects/05/Memory.tst b/projects/05/Memory.tst deleted file mode 100644 index f712a48..0000000 --- a/projects/05/Memory.tst +++ /dev/null @@ -1,163 +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/05/Memory.tst
 -
 -load Memory.hdl,
 -output-file Memory.out,
 -compare-to Memory.cmp,
 -output-list in%D1.6.1 load%B2.1.2 address%B1.15.1 out%D1.6.1;
 -
 -echo "Before you run this script, select the 'Screen' option from the 'View' menu";
 -
 -set in -1,				// Set RAM[0] = -1
 -set load 1,
 -set address 0,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set in 9999,			// RAM[0] holds value
 -set load 0,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set address %X2000,		// Did not also write to upper RAM or Screen
 -eval,
 -output;
 -set address %X4000,
 -eval,
 -output;
 -
 -set in 2222,			// Set RAM[2000] = 2222
 -set load 1,
 -set address %X2000,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set in 9999,			// RAM[2000] holds value
 -set load 0,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set address 0,			// Did not also write to lower RAM or Screen
 -eval,
 -output;
 -set address %X4000,
 -eval,
 -output;
 -
 -set load 0,				// Low order address bits connected
 -set address %X0001, eval, output;
 -set address %X0002, eval, output;
 -set address %X0004, eval, output;
 -set address %X0008, eval, output;
 -set address %X0010, eval, output;
 -set address %X0020, eval, output;
 -set address %X0040, eval, output;
 -set address %X0080, eval, output;
 -set address %X0100, eval, output;
 -set address %X0200, eval, output;
 -set address %X0400, eval, output;
 -set address %X0800, eval, output;
 -set address %X1000, eval, output;
 -set address %X2000, eval, output;
 -
 -set address %X1234,		// RAM[1234] = 1234
 -set in 1234,
 -set load 1,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set load 0,
 -set address %X2234,		// Did not also write to upper RAM or Screen 
 -eval, output;
 -set address %X6234,
 -eval, output;
 -
 -set address %X2345,		// RAM[2345] = 2345
 -set in 2345,
 -set load 1,
 -tick,
 -output;
 -tock,
 -output;
 -
 -set load 0,
 -set address %X0345,		// Did not also write to lower RAM or Screen 
 -eval, output;
 -set address %X4345,
 -eval, output;
 -
 -// Keyboard test
 -
 -set address 24576,
 -echo "Click the Keyboard icon and hold down the 'K' key (uppercase) until you see the next message (it should appear shortly after that) ...",
 -// It's important to keep holding the key down since if the system is busy,
 -// the memory will zero itself before being outputted.
 -
 -while out <> 75 {
 -    eval,
 -}
 -
 -clear-echo,
 -output;
 -
 -// Screen test
 -
 -set load 1,
 -set in -1,
 -set address %X4FCF,
 -tick,
 -tock,
 -output,
 -
 -set address %X504F,
 -tick,
 -tock,
 -output;
 -
 -set address %X0FCF,		// Did not also write to lower or upper RAM
 -eval,
 -output;
 -set address %X2FCF,
 -eval,
 -output;
 -
 -set load 0,				// Low order address bits connected
 -set address %X4FCE, eval, output;
 -set address %X4FCD, eval, output;
 -set address %X4FCB, eval, output;
 -set address %X4FC7, eval, output;
 -set address %X4FDF, eval, output;
 -set address %X4FEF, eval, output;
 -set address %X4F8F, eval, output;
 -set address %X4F4F, eval, output;
 -set address %X4ECF, eval, output;
 -set address %X4DCF, eval, output;
 -set address %X4BCF, eval, output;
 -set address %X47CF, eval, output;
 -set address %X5FCF, eval, output;
 -
 -
 -set load 0,
 -set address 24576,
 -echo "Make sure you see ONLY two horizontal lines in the middle of the screen. Hold down 'Y' (uppercase) until you see the next message ...",
 -// It's important to keep holding the key down since if the system is busy,
 -// the memory will zero itself before being outputted.
 -
 -while out <> 89 {
 -    eval,
 -}
 -
 -clear-echo,
 -output;
 diff --git a/projects/05/Rect.hack b/projects/05/Rect.hack deleted file mode 100644 index ee017ab..0000000 --- a/projects/05/Rect.hack +++ /dev/null @@ -1,25 +0,0 @@ -0000000000000000
 -1111110000010000
 -0000000000010111
 -1110001100000110
 -0000000000010000
 -1110001100001000
 -0100000000000000
 -1110110000010000
 -0000000000010001
 -1110001100001000
 -0000000000010001
 -1111110000100000
 -1110111010001000
 -0000000000010001
 -1111110000010000
 -0000000000100000
 -1110000010010000
 -0000000000010001
 -1110001100001000
 -0000000000010000
 -1111110010011000
 -0000000000001010
 -1110001100000001
 -0000000000010111
 -1110101010000111
 | 
