diff options
Diffstat (limited to 'projects/12/OutputTest')
| -rw-r--r-- | projects/12/OutputTest/Output.jack | 11 | ||||
| -rw-r--r-- | projects/12/OutputTest/Output.vm | 15 | 
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 | 
