about summary refs log tree commit diff stats
path: root/108write.subx
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2021-05-06 21:24:34 -0700
committerKartik K. Agaram <vc@akkartik.com>2021-05-06 21:38:02 -0700
commita1cfadc749e91abde00e56859b3d5122205a6ca4 (patch)
treedc8267cfc041b0ba5c4823ba79c3243a87630538 /108write.subx
parentf882130c863d7ed05483a7ecc5e31a399aca241b (diff)
downloadmu-a1cfadc749e91abde00e56859b3d5122205a6ca4.tar.gz
first passing test for macroexpand
In the process I spent a long time tracking down a stray TODO in 108write.subx
that I thought would abort but didn't since the switch to baremetal.

Then after I reintroduced that assertion I had to go track down a bunch
of buffer sizes. Stream sizes continue to be a huge mess.
Diffstat (limited to '108write.subx')
-rw-r--r--108write.subx10
1 files changed, 9 insertions, 1 deletions
diff --git a/108write.subx b/108write.subx
index 43e9bf9b..88e05668 100644
--- a/108write.subx
+++ b/108write.subx
@@ -194,7 +194,7 @@ $_append-4:loop:
     73/jump-if-addr>=  $_append-4:end/disp8
     # if (out >= outend) abort  # just to catch test failures fast
     39/compare                      3/mod/direct    7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edi with edx
-    73/jump-if-addr>=  $_append-4:end/disp8  # TODO: abort
+    0f 83/jump-if-addr>=  $_append-4:abort/disp32
     # *out = *in
     8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           3/r32/BL    .               .                 # copy byte at *esi to BL
     88/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           3/r32/BL    .               .                 # copy byte at BL to *edi
@@ -217,4 +217,12 @@ $_append-4:end:
     5d/pop-to-ebp
     c3/return
 
+$_append-4:abort:
+    (draw-text-wrapping-right-then-down-from-cursor-over-full-screen 0 "_append-4: stream full at " 3 0)  # 3=cyan
+    (draw-int32-hex-wrapping-right-then-down-from-cursor-over-full-screen 0 %eax 3 0)
+    {
+      eb/jump loop/disp8
+    }
+    # never gets here
+
 # . . vim:nowrap:textwidth=0