From c3598a26ab4ba0562ede74b37dc2a7aa6907640a Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Wed, 17 Jan 2018 16:06:50 +0100 Subject: finished Keyboard --- projects/12/OutputTest/Output.jack | 11 +++++++---- projects/12/OutputTest/Output.vm | 15 ++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) (limited to 'projects/12/OutputTest') diff --git a/projects/12/OutputTest/Output.jack b/projects/12/OutputTest/Output.jack index 369c0d3..05d59de 100644 --- a/projects/12/OutputTest/Output.jack +++ b/projects/12/OutputTest/Output.jack @@ -199,20 +199,21 @@ class Output { function void printChar(char c) { var int k, x, y, addr; var Array cm; - if (c = 8) { + if (c = 129) { do Output.backSpace(); return; } if (cursorI = 22) { - if (c = 10) { + if (c = 128) { return; } if (cursorJ = 63) { return; } } - if (c = 10) { + if (c = 128) { do Output.println(); + return; } let k = 0; let x = cursorJ / 2; @@ -282,7 +283,9 @@ class Output { /** Advances the cursor to the beginning of the next line. */ function void println() { - do Output.moveCursor(cursorI + 1, 0); + if (cursorI < 22) { + do Output.moveCursor(cursorI + 1, 0); + } return; } diff --git a/projects/12/OutputTest/Output.vm b/projects/12/OutputTest/Output.vm index 8d6e74c..e291708 100644 --- a/projects/12/OutputTest/Output.vm +++ b/projects/12/OutputTest/Output.vm @@ -1531,7 +1531,7 @@ push constant 0 return function Output.printChar 5 push argument 0 -push constant 8 +push constant 129 eq if-goto IF_TRUE0 goto IF_FALSE0 @@ -1548,7 +1548,7 @@ if-goto IF_TRUE1 goto IF_FALSE1 label IF_TRUE1 push argument 0 -push constant 10 +push constant 128 eq if-goto IF_TRUE2 goto IF_FALSE2 @@ -1567,13 +1567,15 @@ return label IF_FALSE3 label IF_FALSE1 push argument 0 -push constant 10 +push constant 128 eq if-goto IF_TRUE4 goto IF_FALSE4 label IF_TRUE4 call Output.println 0 pop temp 0 +push constant 0 +return label IF_FALSE4 push constant 0 pop local 0 @@ -1788,11 +1790,18 @@ push constant 0 return function Output.println 0 push static 1 +push constant 22 +lt +if-goto IF_TRUE0 +goto IF_FALSE0 +label IF_TRUE0 +push static 1 push constant 1 add push constant 0 call Output.moveCursor 2 pop temp 0 +label IF_FALSE0 push constant 0 return function Output.backSpace 0 -- cgit v1.2.3