diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-10-04 11:12:23 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-10-04 11:18:23 -0700 |
commit | b8d613e7c2379b26cd4e989e736c6d389e78a5fe (patch) | |
tree | 38a364dad383e2d8e41ff4842c25c87eff56058f /405screen.mu | |
parent | 0371140abecec1b3902ed58282cfb5ea0fcd2f69 (diff) | |
download | mu-b8d613e7c2379b26cd4e989e736c6d389e78a5fe.tar.gz |
6946 - print floats somewhat intuitively in hex
Diffstat (limited to '405screen.mu')
-rw-r--r-- | 405screen.mu | 39 |
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 + } } } } |