summaryrefslogtreecommitdiff
path: root/projects/04/fill/FillAutomatic.tst
diff options
context:
space:
mode:
Diffstat (limited to 'projects/04/fill/FillAutomatic.tst')
-rw-r--r--projects/04/fill/FillAutomatic.tst37
1 files changed, 37 insertions, 0 deletions
diff --git a/projects/04/fill/FillAutomatic.tst b/projects/04/fill/FillAutomatic.tst
new file mode 100644
index 0000000..fbc29a0
--- /dev/null
+++ b/projects/04/fill/FillAutomatic.tst
@@ -0,0 +1,37 @@
+// 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/04/fill/FillAutomatic
+
+// This script can be used to test the Fill program automatically,
+// rather than interactively. Specifically, the script sets the keyboard
+// memory map (RAM[24576]) to 0, 1, and then again to 0. This simulates the
+// acts of leaving the keyboard untouched, pressing some key, and then releasing
+// the key. After each on of these simulated events, the script outputs the values
+// of some selected registers from the screen memory map (RAM[16384]-RAM[24576]).
+// This is done in order to test that these registers are set to 000...0 or 111....1,
+// as mandated by how the Fill program should react to the keyboard events.
+
+load Fill.asm,
+output-file FillAutomatic.out,
+compare-to FillAutomatic.cmp,
+output-list RAM[16384]%D2.6.2 RAM[17648]%D2.6.2 RAM[18349]%D2.6.2 RAM[19444]%D2.6.2 RAM[20771]%D2.6.2 RAM[21031]%D2.6.2 RAM[22596]%D2.6.2 RAM[23754]%D2.6.2 RAM[24575]%D2.6.2;
+
+set RAM[24576] 0, // the keyboard is untouched
+repeat 1000000 {
+ ticktock;
+}
+output; // test that the screen is white
+
+set RAM[24576] 1, // a keyboard key is pressed
+repeat 1000000 {
+ ticktock;
+}
+output; // test that the screen is black
+
+set RAM[24576] 0, // they keyboard in untouched
+repeat 1000000 {
+ ticktock;
+}
+output; // test that the screen is white
+