Description: Complete Project 12 on nand2tetris.org by implementing the Jack OS. Note that this is really two projects, 12A and 12B.
For Part A, you should turn in Sys.jack, Array.jack, String.jack, Keyboard.jack, and Math.jack.
Sys.jack
Array.jack
String.jack
Keyboard.jack
Math.jack
For Part B, you should turn in Screen.jack, Output.jack, and Memory.jack.
Screen.jack
Output.jack
Memory.jack
Specification: To get credit for each part, your .jack files must pass the relevant tests. For each file Foo.jack, there is a corresponding test in the provided FooTest directory. Note that a few of these tests are automated, with a .tst file that can be loaded in the VM emulator, but most you will need to test manually. In general, to test Foo.jack, you should
.jack
Foo.jack
FooTest
.tst
Main.vm
Foo.vm
JackCompiler
Main.jack
Finally, to get credit for Part B (or whichever part you happen to do second), it must also be possible to compile and run the Pong game using your complete OS implementation in place of the built-in one.
Pong