Nand2Tetris — Kapitel 9
Die Hochsprache Jack
// Main.jack
//Einfaches Jack-Programm
//Bewegung:
//Wenn Sie während des Wartens auf eine Tastatureingabe eine beliebige Taste drücken, wird die Zahl um 1 erhöht und ausgegeben.
//Drücken Sie q, um das Programm zu verlassen
class Main {
function void main() {
var int count;
var char key;
let count = 0;
do Output.printString("Nand2Tetris Jack Test");
do Output.println();
do Output.printString("Press any key. q is quit.");
do Output.println();
while (true) {
let key = Keyboard.keyPressed();
if (key = 113) {
return;
}
if (~(key = 0)) {
let count = count + 1;
do Output.printString("count = ");
do Output.printInt(count);
do Output.println();
while (~(Keyboard.keyPressed() = 0)) {
do Sys.wait(1);
}
}
do Sys.wait(1);
}
return;
}
}
// Counter.jack
//Beispielklasse mit Feldwerten
//Erstellen Sie ein Objekt im Konstruktor und ändern Sie den Wert this in der Methode.
class Counter {
field int value;
constructor Counter new() {
let value = 0;
return this;
}
method void inc() {
let value = value + 1;
return;
}
method int get() {
return value;
}
method void dispose() {
do Memory.deAlloc(this);
return;
}
}