diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-10-12 11:39:28 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-10-12 11:39:28 -0700 |
commit | 6c21568f03cc50462eb5fc7c10b4aabe204f4cc0 (patch) | |
tree | 81f31f420be5686c38b36753369ccc2e470bef95 /apps | |
parent | 598f942624cb162132b7f7c2b7858516d95e73c4 (diff) | |
download | mu-6c21568f03cc50462eb5fc7c10b4aabe204f4cc0.tar.gz |
7011 - tile: keep garbage out of the stack
Diffstat (limited to 'apps')
-rw-r--r-- | apps/tile/environment.mu | 12 | ||||
-rw-r--r-- | apps/tile/main.mu | 15 |
2 files changed, 14 insertions, 13 deletions
diff --git a/apps/tile/environment.mu b/apps/tile/environment.mu index 58168673..339b6401 100644 --- a/apps/tile/environment.mu +++ b/apps/tile/environment.mu @@ -563,6 +563,9 @@ fn render _env: (addr environment) { fn render-sandbox screen: (addr screen), functions: (addr handle function), bindings: (addr table), _sandbox: (addr sandbox), top-row: int, left-col: int { var sandbox/esi: (addr sandbox) <- copy _sandbox +#? print-string 0, "rendering sandbox from " +#? print-int32-decimal 0, left-col +#? print-string 0, "\n" # expanded-words var expanded-words/edi: (addr handle call-path) <- get sandbox, expanded-words # line @@ -714,6 +717,9 @@ fn render-line screen: (addr screen), functions: (addr handle function), binding #? increment top-row # render main column var old-col/edx: int <- copy curr-col +#? print-string 0, "rendering line from " +#? print-int32-decimal 0, curr-col +#? print-string 0, "\n" curr-col <- render-column screen, functions, bindings, line, curr-word, top-row, curr-col # cache cursor column if necessary $render-line:cache-cursor-column: { @@ -747,6 +753,9 @@ fn render-column screen: (addr screen), functions: (addr handle function), bindi # indent stack var indented-col/ebx: int <- copy left-col indented-col <- add 1 # margin-right - 2 for padding spaces +#? print-string 0, "rendering stack from " +#? print-int32-decimal 0, indented-col +#? print-string 0, "\n" # compute stack var stack: value-stack var stack-addr/edi: (addr value-stack) <- address stack @@ -761,6 +770,9 @@ fn render-column screen: (addr screen), functions: (addr handle function), bindi { compare i, 0 break-if-<= +#? print-string 0, "rendering stack row from " +#? print-int32-decimal 0, indented-col +#? print-string 0, "\n" move-cursor screen, curr-row, indented-col { var val/eax: int <- pop-int-from-value-stack stack-addr diff --git a/apps/tile/main.mu b/apps/tile/main.mu index f3e8a34a..573a7457 100644 --- a/apps/tile/main.mu +++ b/apps/tile/main.mu @@ -75,20 +75,9 @@ fn test { var env-storage: environment var env/esi: (addr environment) <- address env-storage initialize-environment-with-fake-screen env, 0x30, 0xa0 # 48 rows, 160 columns - var g/eax: grapheme <- copy 0x31 # '1' - process env, g - g <- copy 0x20 # space - process env, g - g <- copy 0x32 # '2' - process env, g - g <- copy 0x445b1b # left-arrow - process env, g - g <- copy 0x445b1b # left-arrow - process env, g - g <- copy 0x445b1b # left-arrow - process env, g - g <- copy 5 # <ctrl-e> + var g/eax: grapheme <- copy 0x73 # 's' process env, g + render env } fn repl { |