diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-02-27 06:55:41 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-02-27 06:55:41 -0800 |
commit | a9e0cb7cc9da462c6e7886edfb554d7266e84c18 (patch) | |
tree | 80cd66ef67cf32b24603e2081165b1a2f89ea818 /405screen.mu | |
parent | c782d38f0b4d263d243415495b8e9d9c84f119db (diff) | |
download | mu-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.mu | 16 |
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 } |