aboutsummaryrefslogtreecommitdiff
path: root/projects/12/OutputTest
diff options
context:
space:
mode:
Diffstat (limited to 'projects/12/OutputTest')
-rw-r--r--projects/12/OutputTest/Output.jack11
-rw-r--r--projects/12/OutputTest/Output.vm15
2 files changed, 19 insertions, 7 deletions
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