diff --git a/NOTES.md b/NOTES.md index c3d9eb6..0b8bc7a 100644 --- a/NOTES.md +++ b/NOTES.md @@ -9,6 +9,9 @@ RAM64 RAM512 : I used the premise of the previous note and decided to index the RAM64 moduls by the LSB instead of the customary MSB. It still works :metal: +PC +: The Program Counter was tricky. I ended up using a Or8Way (instead of a `Or3Way`, which we don't have) along with `Mux8Way16` to pick the input for the register. Since the Mux has duplicate inputs at this point (supports 8, but we only have 3 special, and 1 neutral case) - this can be optimized by switching to a `Mux4Way16`, along with some other changes. + Fill.asm : Figured out that my RAM16K implementation was wrong while working on this. The rough pseudocode would be: ```c diff --git a/README.md b/README.md index 26faa22..f3719b9 100644 --- a/README.md +++ b/README.md @@ -52,9 +52,21 @@ Make sure you read through the [Hardware Simulator Tutorial][s] to understand th [s]: https://b1391bd6-da3d-477d-8c01-38cdf774495a.filesusr.com/ugd/44046b_bfd91435260748439493a60a8044ade6.pdf -## [Project 3: Machine Language Programming](https://www.nand2tetris.org/project03) +## [Project 4: Machine Language Programming](https://www.nand2tetris.org/project03) Counting number of instructions by `wc -l $file.hack` - [x] Mult (18) - [x] Fill (98) + +## [Project 5: Computer Architecture](https://www.nand2tetris.org/project05) + +- [ ] `Memory.hdl` +- [ ] `CPU.hdl` +- [ ] `Computer.hdl` + +Computer chip tests: + +- [ ] `Add.hack` +- [ ] `Max.hack` +- [ ] `Rect.hack`