about summary refs log tree commit diff stats
path: root/apps/tile/word.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-10-19 23:13:28 -0700
committerKartik Agaram <vc@akkartik.com>2020-10-19 23:13:28 -0700
commit5e9a4821933db50a1de7950bc64f4a84c5176938 (patch)
tree3dbc091d11426e4bceeb7708ff1453d6d3547092 /apps/tile/word.mu
parent5532ea013b6ee7f7aeda72d2ed592b7aa246a5f2 (diff)
downloadmu-5e9a4821933db50a1de7950bc64f4a84c5176938.tar.gz
7077 - tile: render function list
Diffstat (limited to 'apps/tile/word.mu')
-rw-r--r--apps/tile/word.mu26
1 files changed, 26 insertions, 0 deletions
diff --git a/apps/tile/word.mu b/apps/tile/word.mu
index b8b9f7c0..d630b176 100644
--- a/apps/tile/word.mu
+++ b/apps/tile/word.mu
@@ -238,6 +238,32 @@ fn print-word screen: (addr screen), _self: (addr word) {
   render-gap-buffer screen, data
 }
 
+fn print-words screen: (addr screen), _words-ah: (addr handle word) {
+  var words-ah/eax: (addr handle word) <- copy _words-ah
+  var words-a/eax: (addr word) <- lookup *words-ah
+  compare words-a, 0
+  break-if-=
+  # print
+  print-word screen, words-a
+  print-string screen, " "
+  # recurse
+  var next-ah/eax: (addr handle word) <- get words-a, next
+  print-words screen, next-ah
+}
+
+fn print-words-in-reverse screen: (addr screen), _words-ah: (addr handle word) {
+  var words-ah/eax: (addr handle word) <- copy _words-ah
+  var words-a/eax: (addr word) <- lookup *words-ah
+  compare words-a, 0
+  break-if-=
+  # recurse
+  var next-ah/ecx: (addr handle word) <- get words-a, next
+  print-words screen, next-ah
+  # print
+  print-word screen, words-a
+  print-string screen, " "
+}
+
 # one implication of handles: append must take a handle
 fn append-word _self-ah: (addr handle word) {
   var self-ah/esi: (addr handle word) <- copy _self-ah