about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-09-16 16:51:07 -0700
committerKartik Agaram <vc@akkartik.com>2020-09-16 16:52:26 -0700
commit9b873e3bcddf34d5b6d60e66838d71dd46de51f4 (patch)
treeb867bf22143c31043de38f9cabc12a1d7ac37bd8
parent9f8f2731dfd722f06b0a7f4797e775c9f49bc37b (diff)
downloadmu-9b873e3bcddf34d5b6d60e66838d71dd46de51f4.tar.gz
6792
Roll back all buffering of Stdout.
-rw-r--r--304screen.subx64
-rw-r--r--400.mu2
-rw-r--r--apps/tile/main.mu1
-rw-r--r--apps/tui.mu3
4 files changed, 26 insertions, 44 deletions
diff --git a/304screen.subx b/304screen.subx
index 8ab0f4b0..8ec33fd5 100644
--- a/304screen.subx
+++ b/304screen.subx
@@ -124,8 +124,7 @@ print-string-to-real-screen:  # s: (addr array byte)
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout *(ebp+8))
-#?     (flush Stdout)
+    (write 1 *(ebp+8))
 $print-string-to-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -138,7 +137,7 @@ print-slice-to-real-screen:  # s: (addr slice)
     89/<- %ebp 4/r32/esp
     #
     (write-slice-buffered Stdout *(ebp+8))
-#?     (flush Stdout)
+    (flush Stdout)
 $print-slice-to-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -151,7 +150,7 @@ print-stream-to-real-screen:  # s: (addr stream byte)
     89/<- %ebp 4/r32/esp
     #
     (write-stream-data Stdout *(ebp+8))
-#?     (flush Stdout)
+    (flush Stdout)
 $print-stream-to-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -213,8 +212,7 @@ print-byte-to-real-screen:  # c: byte
     ff 6/subop/push *(ebp+8)
     68/push 1/imm32/size
     89/<- %ecx 4/r32/esp
-    (write-buffered Stdout %ecx)
-#?     (flush Stdout)
+    (write 1 %ecx)
 $print-byte-to-real-screen:end:
     # . reclaim locals
     81 0/subop/add %esp 8/imm32
@@ -225,17 +223,13 @@ $print-byte-to-real-screen:end:
     5d/pop-to-ebp
     c3/return
 
-flush-stdout:
-    (flush Stdout)
-    c3/return
-
 print-int32-hex-to-real-screen:  # n: int
     # . prologue
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
     (write-int32-hex-buffered Stdout *(ebp+8))
-#?     (flush Stdout)
+    (flush Stdout)
 $print-int32-hex-to-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -248,7 +242,7 @@ print-int32-decimal-to-real-screen:  # n: int
     89/<- %ebp 4/r32/esp
     #
     (write-int32-decimal-buffered Stdout *(ebp+8))
-#?     (flush Stdout)
+    (flush Stdout)
 $print-int32-decimal-to-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -284,11 +278,10 @@ reset-formatting-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "(B")
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[m")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "(B")
+    (write 1 Esc)
+    (write 1 "[m")
 $reset-formatting-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -319,8 +312,7 @@ start-color-on-real-screen:  # fg: int, bg: int
     (write-int32-decimal %ecx *(ebp+0xc))
     (write %ecx "m")
     # flush
-    (write-stream-data Stdout %ecx)
-    (flush Stdout)
+    (write-stream 2 %ecx)
 $start-color-on-real-screen:end:
     # . reclaim locals
     81 0/subop/add %esp 0x2c/imm32
@@ -336,9 +328,8 @@ start-bold-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[1m")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[1m")
 $start-bold-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -350,9 +341,8 @@ start-underline-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[4m")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[4m")
 $start-underline-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -364,9 +354,8 @@ start-reverse-video-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[7m")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[7m")
 $start-reverse-video-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -379,9 +368,8 @@ start-blinking-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[5m")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[5m")
 $start-blinking-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -393,9 +381,8 @@ hide-cursor-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[?25l")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[?25l")
 $hide-cursor-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
@@ -407,11 +394,10 @@ show-cursor-on-real-screen:
     55/push-ebp
     89/<- %ebp 4/r32/esp
     #
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[?12l")
-    (write-buffered Stdout Esc)
-    (write-buffered Stdout "[?25h")
-    (flush Stdout)
+    (write 1 Esc)
+    (write 1 "[?12l")
+    (write 1 Esc)
+    (write 1 "[?25h")
 $show-cursor-on-real-screen:end:
     # . epilogue
     89/<- %esp 5/r32/ebp
diff --git a/400.mu b/400.mu
index 4b896ba5..7b32f3cb 100644
--- a/400.mu
+++ b/400.mu
@@ -172,5 +172,3 @@ sig stream-empty? s: (addr stream _) -> result/eax: boolean
 sig stream-full? s: (addr stream _) -> result/eax: boolean
 
 sig copy-bytes src: (addr byte), dest: (addr byte), n: int
-
-sig flush-stdout
diff --git a/apps/tile/main.mu b/apps/tile/main.mu
index a9d62bb4..7c7065fc 100644
--- a/apps/tile/main.mu
+++ b/apps/tile/main.mu
@@ -75,5 +75,4 @@ fn render screen: (addr screen), buf: (addr gap-buffer) {
   move-cursor screen, start-row, start-col
   #
   render-gap-buffer screen, buf
-  flush-stdout
 }
diff --git a/apps/tui.mu b/apps/tui.mu
index 939210c6..a02d8fb0 100644
--- a/apps/tui.mu
+++ b/apps/tui.mu
@@ -28,8 +28,7 @@ fn main -> exit-status/ebx: int {
   enable-screen-type-mode
   print-string 0, "You pressed "
   var x-int/eax: int <- copy x
-  print-int32-hex-to-real-screen x-int
+  print-int32-hex 0, x-int
   print-string 0, "\n"
-  flush-stdout
   exit-status <- copy 0
 }