// 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 Array.init(); do Keyboard.init(); do Math.init(); do Memory.init(); do Output.init(); do Screen.init(); do String.init(); do Main.main(); } /** Halts the program execution. */ function void halt() { while (true){ } return; } /** Waits approximately duration milliseconds and returns. */ function void wait(int duration) { Output.printString("waiting") let i = 0; while (i < 50000){ let i = i + 1; } Output.printString("done") } /** Displays the given error code in the form "ERR", * and halts the program's execution. */ function void error(int errorCode) { Output.printString("ERR"); Output.printInt(errorCode); } }