nand2/07_Operating_System/08_StdIO_Test/Main.jack

71 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

2023-01-11 10:13:09 +00:00
// 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/KeyboardTest/Main.jack
/** Test program for the OS Keyboard class. */
class Main {
/** Gets input from the user and verifies its contents. */
function void main() {
var char c, key;
var String s;
var int i;
var boolean ok;
do StdIO.printString("StdIO test:");
do StdIO.println();
let ok = false;
while (~ok) {
do StdIO.printString("Please press the number '3': ");
let c = UART.readChar();
do StdIO.println();
if (c = 51) {
do StdIO.printString("ok");
do StdIO.println();
let ok = true;
}
}
let ok = false;
do StdIO.printString("readLine test:");
do StdIO.println();
do StdIO.printString("(Verify echo and usage of 'backspace')");
do StdIO.println();
while (~ok) {
let s = StdIO.readLine("Please type 'JACK' and press enter: ");
if (s.length() = 4) {
if ((s.charAt(0) = 74) & (s.charAt(1) = 65) & (s.charAt(2) = 67) & (s.charAt(3) = 75)) {
do StdIO.printString("ok");
do StdIO.println();
let ok = true;
}
}
}
let ok = false;
do StdIO.printString("readInt test:");
do StdIO.println();
do StdIO.printString("(Verify echo and usage of 'backspace')");
do StdIO.println();
while (~ok) {
let i = StdIO.readInt("Please type '-32123' and press enter: ");
if (i = (-32123)) {
do StdIO.printString("ok");
do StdIO.println();
let ok = true;
}
}
do StdIO.println();
do StdIO.printString("Test completed successfully");
return;
}
}