about summary refs log tree commit diff stats
path: root/shell/main.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-04-05 23:52:13 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-04-05 23:55:13 -0700
commit0db683ffdbf09ef6830857c6bedc887d654de78f (patch)
treeb5aa9c3143057230bee405c3d1b314d52dbdcc6e /shell/main.mu
parent9142cd8519e11564c097ec4ccb5933a94ed6fea0 (diff)
downloadmu-0db683ffdbf09ef6830857c6bedc887d654de78f.tar.gz
shell: extensible array of globals
I'm not bothering with full dynamic scope for now.
Diffstat (limited to 'shell/main.mu')
-rw-r--r--shell/main.mu7
1 files changed, 5 insertions, 2 deletions
diff --git a/shell/main.mu b/shell/main.mu
index 62298a18..29c815dc 100644
--- a/shell/main.mu
+++ b/shell/main.mu
@@ -2,6 +2,9 @@
 # A Lisp with indent-sensitivity and infix, no macros.
 
 fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk) {
+  var globals-storage: global-table
+  var globals/edi: (addr global-table) <- address globals-storage
+  initialize-globals globals
   var sandbox-storage: sandbox
   var sandbox/esi: (addr sandbox) <- address sandbox-storage
   initialize-sandbox sandbox
@@ -16,7 +19,7 @@ fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk)
       compare key, 0
       loop-if-=
       # no way to quit right now; just reboot
-      edit-sandbox sandbox, key, screen, keyboard, data-disk
+      edit-sandbox sandbox, key, globals, screen, keyboard, data-disk
     }
     loop
   }
@@ -36,7 +39,7 @@ fn load-sandbox data-disk: (addr disk), _self: (addr sandbox) {
     var key/eax: byte <- read-byte s
     compare key, 0/null
     break-if-=
-    edit-sandbox self, key, 0/no-screen, 0/no-keyboard, 0/no-disk
+    edit-sandbox self, key, 0/no-globals, 0/no-screen, 0/no-keyboard, 0/no-disk
     loop
   }
 }