diff options
Diffstat (limited to 'projects/12/SysTest/Sys.jack')
-rw-r--r-- | projects/12/SysTest/Sys.jack | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/projects/12/SysTest/Sys.jack b/projects/12/SysTest/Sys.jack new file mode 100644 index 0000000..53c078c --- /dev/null +++ b/projects/12/SysTest/Sys.jack @@ -0,0 +1,51 @@ +// 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/12/Sys.jack
+
+/**
+ * A library that supports various program execution services.
+ */
+class Sys {
+
+ /** Performs all the initializations required by the OS. */
+ function void init() {
+ do Keyboard.init();
+ do Math.init();
+ do Memory.init();
+ do Output.init();
+ do Screen.init();
+ do Main.main();
+ do Sys.halt();
+ return;
+ }
+
+ /** Halts the program execution. */
+ function void halt() {
+ while (true){
+ }
+ return;
+ }
+
+ /** Waits approximately duration milliseconds and returns. */
+ function void wait(int duration) {
+ var int i, j;
+ let i = 0;
+ while (i < duration){
+ let i = i + 1;
+ let j = 0;
+ while (j < 318){
+ let j = j + 1;
+ }
+ }
+ return;
+ }
+
+ /** Displays the given error code in the form "ERR<errorCode>",
+ * and halts the program's execution. */
+ function void error(int errorCode) {
+ do Output.printString("ERR");
+ do Output.printInt(errorCode);
+ return;
+ }
+}
|