about summary refs log tree commit diff stats
path: root/apps/tile/environment.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-09-21 20:13:51 -0700
committerKartik Agaram <vc@akkartik.com>2020-09-21 20:13:51 -0700
commitd3876066178aecf2d2247368fffbb18872a07e88 (patch)
tree0fe9ca7829c1091ed213e5dab0a34437d03586b9 /apps/tile/environment.mu
parentad35aef12a26805dc2067f6562ebfd3c13d7892e (diff)
downloadmu-d3876066178aecf2d2247368fffbb18872a07e88.tar.gz
6823 - tile: clear colors; we'll try something new
Diffstat (limited to 'apps/tile/environment.mu')
-rw-r--r--apps/tile/environment.mu46
1 files changed, 4 insertions, 42 deletions
diff --git a/apps/tile/environment.mu b/apps/tile/environment.mu
index 257e2c6f..caa8c720 100644
--- a/apps/tile/environment.mu
+++ b/apps/tile/environment.mu
@@ -201,26 +201,14 @@ fn render-column screen: (addr screen), first-word: (addr word), final-word: (ad
   initialize-int-stack stack-addr, 0x10  # max-words
   evaluate first-word, final-word, stack-addr
   # render stack
-  var stack-index/ebx: int <- copy 0
-  var stack-remaining/eax: int <- int-stack-length stack-addr
   var curr-row/edx: int <- copy botleft-depth
   curr-row <- add 6  # input-row 3 + stack-margin-top 3
-  curr-row <- subtract stack-remaining
-  # highlight item just added
-  start-color screen, 0, 2  # green background
+  var i/eax: int <- int-stack-length stack-addr
+  curr-row <- subtract i
   {
-    compare stack-remaining, 0
+    compare i, 0
     break-if-<=
     move-cursor screen, curr-row, botleft-col
-    # highlight items about to be removed
-    {
-      compare stack-index, 1  # second from top
-      break-if-!=
-      var safe-next-word?/eax: boolean <- next-word-is-number? final-word
-      compare safe-next-word?, 0  # false
-      break-if-!=
-      start-color screen, 0, 9  # red background
-    }
     {
       var val/eax: int <- pop-int-stack stack-addr
       print-int32-decimal screen, val
@@ -229,16 +217,13 @@ fn render-column screen: (addr screen), first-word: (addr word), final-word: (ad
       break-if-<=
       max-width <- copy size
     }
-    reset-formatting screen
     curr-row <- increment
-    stack-index <- increment
-    stack-remaining <- decrement
+    i <- decrement
     loop
   }
 
   # render word, initialize result
   move-cursor screen, 3, botleft-col  # input-row
-  reset-formatting screen
   print-word screen, final-word
 
   # update cursor
@@ -258,29 +243,6 @@ fn render-column screen: (addr screen), first-word: (addr word), final-word: (ad
   right-col <- add 3  # margin-right
 }
 
-# gotcha: returns true by default
-fn next-word-is-number? _w: (addr word) -> result/eax: boolean {
-$next-word-is-operator?:body: {
-  var w/esi: (addr word) <- copy _w
-  var next-ah/eax: (addr handle word) <- get w, next
-  var next/eax: (addr word) <- lookup *next-ah
-  compare next, 0
-  {
-    break-if-!=
-    result <- copy 1  # true
-    break $next-word-is-operator?:body
-  }
-  var first-grapheme/eax: grapheme <- first-grapheme next
-  compare first-grapheme, -1
-  {
-    break-if-!=
-    result <- copy 1  # true
-    break $next-word-is-operator?:body
-  }
-  result <- is-decimal-digit? first-grapheme
-}
-}
-
 # We could be a little faster by not using 'first-word' (since max is commutative),
 # but this way the code follows the pattern of 'render'. Let's see if that's a net win.
 fn compute-max-depth _env: (addr environment) -> result/eax: int {