about summary refs log tree commit diff stats
path: root/405screen.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-02-27 06:55:41 -0800
committerKartik K. Agaram <vc@akkartik.com>2021-02-27 06:55:41 -0800
commita9e0cb7cc9da462c6e7886edfb554d7266e84c18 (patch)
tree80cd66ef67cf32b24603e2081165b1a2f89ea818 /405screen.mu
parentc782d38f0b4d263d243415495b8e9d9c84f119db (diff)
downloadmu-a9e0cb7cc9da462c6e7886edfb554d7266e84c18.tar.gz
7817
Detour: writing float to stream.
In the process I found a bug at the SubX layer X-(
Diffstat (limited to '405screen.mu')
-rw-r--r--405screen.mu16
1 files changed, 10 insertions, 6 deletions
diff --git a/405screen.mu b/405screen.mu
index d009924e..c850df2a 100644
--- a/405screen.mu
+++ b/405screen.mu
@@ -174,15 +174,19 @@ fn print-string screen: (addr screen), s: (addr array byte) {
     return
   }
   # fake screen
-  var s2: (stream byte 0x100)
-  var s2-addr/esi: (addr stream byte) <- address s2
-  write s2-addr, s
-  var screen-addr/edi: (addr screen) <- copy screen
+  var stream-storage: (stream byte 0x100)
+  var stream/esi: (addr stream byte) <- address stream-storage
+  write stream, s
+  print-stream screen, stream
+}
+
+fn print-stream _screen: (addr screen), s: (addr stream byte) {
+  var screen/edi: (addr screen) <- copy _screen
   {
-    var done?/eax: boolean <- stream-empty? s2-addr
+    var done?/eax: boolean <- stream-empty? s
     compare done?, 0
     break-if-!=
-    var g/eax: grapheme <- read-grapheme s2-addr
+    var g/eax: grapheme <- read-grapheme s
     print-grapheme screen, g
     loop
   }