about summary refs log tree commit diff stats
path: root/405screen.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-10-04 11:12:23 -0700
committerKartik Agaram <vc@akkartik.com>2020-10-04 11:18:23 -0700
commitb8d613e7c2379b26cd4e989e736c6d389e78a5fe (patch)
tree38a364dad383e2d8e41ff4842c25c87eff56058f /405screen.mu
parent0371140abecec1b3902ed58282cfb5ea0fcd2f69 (diff)
downloadmu-b8d613e7c2379b26cd4e989e736c6d389e78a5fe.tar.gz
6946 - print floats somewhat intuitively in hex
Diffstat (limited to '405screen.mu')
-rw-r--r--405screen.mu39
1 files changed, 39 insertions, 0 deletions
diff --git a/405screen.mu b/405screen.mu
index 62bf1005..ba854e4a 100644
--- a/405screen.mu
+++ b/405screen.mu
@@ -435,6 +435,45 @@ $print-int32-hex:body: {
   {
     break-if-=
     # fake screen
+    var s2: (stream byte 0x100)
+    var s2-addr/esi: (addr stream byte) <- address s2
+    write-int32-hex s2-addr, n
+    var screen-addr/edi: (addr screen) <- copy screen
+    {
+      var done?/eax: boolean <- stream-empty? s2-addr
+      compare done?, 0
+      break-if-!=
+      var g/eax: grapheme <- read-grapheme s2-addr
+      print-grapheme screen, g
+      loop
+    }
+  }
+}
+}
+
+fn print-int32-hex-bits screen: (addr screen), n: int, bits: int {
+$print-int32-hex-bits:body: {
+  compare screen, 0
+  {
+    break-if-!=
+    print-int32-hex-bits-to-real-screen n, bits
+    break $print-int32-hex-bits:body
+  }
+  {
+    break-if-=
+    # fake screen
+    var s2: (stream byte 0x100)
+    var s2-addr/esi: (addr stream byte) <- address s2
+    write-int32-hex-bits s2-addr, n, bits
+    var screen-addr/edi: (addr screen) <- copy screen
+    {
+      var done?/eax: boolean <- stream-empty? s2-addr
+      compare done?, 0
+      break-if-!=
+      var g/eax: grapheme <- read-grapheme s2-addr
+      print-grapheme screen, g
+      loop
+    }
   }
 }
 }