about summary refs log tree commit diff stats
path: root/shell/cell.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-04-10 20:44:26 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-04-10 20:44:26 -0700
commit400574f956f8428785ecefe5536ebf5512f23408 (patch)
tree1575a3332a2b34b1221ab1294830b5953b2ba1a8 /shell/cell.mu
parent6fa86619b286cae8a1a990ce5ac845d2b80428ca (diff)
downloadmu-400574f956f8428785ecefe5536ebf5512f23408.tar.gz
shell: move fake screen to sandbox
Diffstat (limited to 'shell/cell.mu')
-rw-r--r--shell/cell.mu13
1 files changed, 13 insertions, 0 deletions
diff --git a/shell/cell.mu b/shell/cell.mu
index b2b302e6..9dfe298b 100644
--- a/shell/cell.mu
+++ b/shell/cell.mu
@@ -135,3 +135,16 @@ fn new-screen _out: (addr handle cell), width: int, height: int {
   var dest-addr/eax: (addr screen) <- lookup *dest-ah
   initialize-screen dest-addr, width, height
 }
+
+fn clear-screen-cell _self-ah: (addr handle cell) {
+  var self-ah/eax: (addr handle cell) <- copy _self-ah
+  var self/eax: (addr cell) <- lookup *self-ah
+  compare self, 0
+  {
+    break-if-!=
+    return
+  }
+  var screen-ah/eax: (addr handle screen) <- get self, screen-data
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  clear-screen screen
+}