about summary refs log tree commit diff stats
path: root/html/linux/apps
diff options
context:
space:
mode:
Diffstat (limited to 'html/linux/apps')
-rw-r--r--html/linux/apps/advent2017/1a.mu.html8
-rw-r--r--html/linux/apps/advent2020/1a.mu.html12
-rw-r--r--html/linux/apps/advent2020/1b.mu.html12
-rw-r--r--html/linux/apps/advent2020/2a.mu.html10
-rw-r--r--html/linux/apps/advent2020/2b.mu.html12
-rw-r--r--html/linux/apps/advent2020/3a.mu.html12
-rw-r--r--html/linux/apps/advent2020/3b.mu.html12
-rw-r--r--html/linux/apps/advent2020/4a.mu.html10
-rw-r--r--html/linux/apps/advent2020/4b.mu.html12
-rw-r--r--html/linux/apps/advent2020/5a.mu.html12
-rw-r--r--html/linux/apps/advent2020/5b.mu.html10
-rw-r--r--html/linux/apps/arith.mu.html58
-rw-r--r--html/linux/apps/ex1.mu.html4
-rw-r--r--html/linux/apps/ex1.subx.html4
-rw-r--r--html/linux/apps/ex10.subx.html8
-rw-r--r--html/linux/apps/ex11.subx.html16
-rw-r--r--html/linux/apps/ex12.subx.html6
-rw-r--r--html/linux/apps/ex13.subx.html6
-rw-r--r--html/linux/apps/ex14.subx.html6
-rw-r--r--html/linux/apps/ex2.mu.html6
-rw-r--r--html/linux/apps/ex2.subx.html6
-rw-r--r--html/linux/apps/ex3.2.mu.html8
-rw-r--r--html/linux/apps/ex3.mu.html4
-rw-r--r--html/linux/apps/ex3.subx.html6
-rw-r--r--html/linux/apps/ex4.subx.html6
-rw-r--r--html/linux/apps/ex5.subx.html8
-rw-r--r--html/linux/apps/ex6.subx.html6
-rw-r--r--html/linux/apps/ex7.subx.html6
-rw-r--r--html/linux/apps/ex8.subx.html8
-rw-r--r--html/linux/apps/ex9.subx.html8
-rw-r--r--html/linux/apps/factorial.mu.html8
-rw-r--r--html/linux/apps/factorial.subx.html14
-rw-r--r--html/linux/apps/factorial2.subx.html12
-rw-r--r--html/linux/apps/factorial3.subx.html12
-rw-r--r--html/linux/apps/factorial4.subx.html12
-rw-r--r--html/linux/apps/hello.mu.html4
-rw-r--r--html/linux/apps/parse-int.mu.html12
-rw-r--r--html/linux/apps/print-file.mu.html12
-rw-r--r--html/linux/apps/random.subx.html121
-rw-r--r--html/linux/apps/raytracing/1.mu.html6
-rw-r--r--html/linux/apps/raytracing/2.mu.html12
-rw-r--r--html/linux/apps/raytracing/3.mu.html10
-rw-r--r--html/linux/apps/raytracing/color.mu.html8
-rw-r--r--html/linux/apps/raytracing/ray.mu.html4
-rw-r--r--html/linux/apps/raytracing/vec.mu.html8
-rw-r--r--html/linux/apps/rpn.mu.html10
-rw-r--r--html/linux/apps/texture.mu.html12
-rw-r--r--html/linux/apps/tui.mu.html8
48 files changed, 354 insertions, 233 deletions
diff --git a/html/linux/apps/advent2017/1a.mu.html b/html/linux/apps/advent2017/1a.mu.html
index 88f60dbc..2a8e6e43 100644
--- a/html/linux/apps/advent2017/1a.mu.html
+++ b/html/linux/apps/advent2017/1a.mu.html
@@ -15,16 +15,16 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/1a.mu.html b/html/linux/apps/advent2020/1a.mu.html
index e75fe8fc..9a633612 100644
--- a/html/linux/apps/advent2020/1a.mu.html
+++ b/html/linux/apps/advent2020/1a.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/1b.mu.html b/html/linux/apps/advent2020/1b.mu.html
index 4346642b..7d4a5de7 100644
--- a/html/linux/apps/advent2020/1b.mu.html
+++ b/html/linux/apps/advent2020/1b.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/2a.mu.html b/html/linux/apps/advent2020/2a.mu.html
index 2e6e3488..883235b3 100644
--- a/html/linux/apps/advent2020/2a.mu.html
+++ b/html/linux/apps/advent2020/2a.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/2b.mu.html b/html/linux/apps/advent2020/2b.mu.html
index 604e06bb..ba37c11b 100644
--- a/html/linux/apps/advent2020/2b.mu.html
+++ b/html/linux/apps/advent2020/2b.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/3a.mu.html b/html/linux/apps/advent2020/3a.mu.html
index 09d7f160..1a7266dd 100644
--- a/html/linux/apps/advent2020/3a.mu.html
+++ b/html/linux/apps/advent2020/3a.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/3b.mu.html b/html/linux/apps/advent2020/3b.mu.html
index ff64117f..eed8ad9c 100644
--- a/html/linux/apps/advent2020/3b.mu.html
+++ b/html/linux/apps/advent2020/3b.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/4a.mu.html b/html/linux/apps/advent2020/4a.mu.html
index 6f477717..395efdb8 100644
--- a/html/linux/apps/advent2020/4a.mu.html
+++ b/html/linux/apps/advent2020/4a.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.Constant { color: #008787; }
+.muRegEbx { color: #5f00ff; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/4b.mu.html b/html/linux/apps/advent2020/4b.mu.html
index 47538296..36b8cc8b 100644
--- a/html/linux/apps/advent2020/4b.mu.html
+++ b/html/linux/apps/advent2020/4b.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.Constant { color: #008787; }
+.muRegEbx { color: #5f00ff; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
@@ -113,7 +113,7 @@ if ('onhashchange' in window) {
 <span id="L50" class="LineNr"> 50 </span>      <span class="PreProc">break-if-!=</span>
 <span id="L51" class="LineNr"> 51 </span>      <a href='../../124next-token.subx.html#L10'>next-token</a> line, <span class="Constant">0x3a</span>, key-slice  <span class="muComment"># ':'</span>
 <span id="L52" class="LineNr"> 52 </span>      <span class="PreProc">var</span> dummy/eax: byte <span class="Special">&lt;-</span> <a href='../../112read-byte.subx.html#L273'>read-byte</a> line  <span class="muComment"># skip ':'</span>
-<span id="L53" class="LineNr"> 53 </span>      <a href='../../127next-word.subx.html#L306'>next-raw-word</a> line, val-slice
+<span id="L53" class="LineNr"> 53 </span>      <a href='../../127next-word.subx.html#L321'>next-raw-word</a> line, val-slice
 <span id="L54" class="LineNr"> 54 </span>      <a href='../../304screen.subx.html#L134'>print-slice-to-real-screen</a> key-slice
 <span id="L55" class="LineNr"> 55 </span>      <a href='../../405screen.mu.html#L169'>print-string</a> <span class="Constant">0</span>, <span class="Constant">&quot; : &quot;</span>
 <span id="L56" class="LineNr"> 56 </span>      <a href='../../304screen.subx.html#L134'>print-slice-to-real-screen</a> val-slice
diff --git a/html/linux/apps/advent2020/5a.mu.html b/html/linux/apps/advent2020/5a.mu.html
index 3c3b535d..92d47643 100644
--- a/html/linux/apps/advent2020/5a.mu.html
+++ b/html/linux/apps/advent2020/5a.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.Special { color: #ff6060; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
-.CommentedCode { color: #8a8a8a; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEcx { color: #870000; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/advent2020/5b.mu.html b/html/linux/apps/advent2020/5b.mu.html
index b5e1892f..86d054aa 100644
--- a/html/linux/apps/advent2020/5b.mu.html
+++ b/html/linux/apps/advent2020/5b.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/arith.mu.html b/html/linux/apps/arith.mu.html
index fb6a9194..45ea9576 100644
--- a/html/linux/apps/arith.mu.html
+++ b/html/linux/apps/arith.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.Constant { color: #008787; }
+.muRegEbx { color: #5f00ff; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
@@ -97,7 +97,7 @@ if ('onhashchange' in window) {
 <span id="L33" class="LineNr"> 33 </span>
 <span id="L34" class="LineNr"> 34 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L34'>main</a></span><span class="PreProc"> -&gt; </span>_/<span class="muRegEbx">ebx</span>: int <span class="Delimiter">{</span>
 <span id="L35" class="LineNr"> 35 </span>  <a href='../305keyboard.subx.html#L6'>enable-keyboard-immediate-mode</a>
-<span id="L36" class="LineNr"> 36 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy <span class="Constant">0</span>  <span class="muComment"># lookahead</span>
+<span id="L36" class="LineNr"> 36 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy <span class="Constant">0</span>  <span class="muComment"># lookahead</span>
 <span id="L37" class="LineNr"> 37 </span>  <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>  <span class="muComment"># result of each expression</span>
 <span id="L38" class="LineNr"> 38 </span>  <a href='../405screen.mu.html#L169'>print-string</a> <span class="Constant">0</span>/screen, <span class="Constant">&quot;press ctrl-c or ctrl-d to exit\n&quot;</span>
 <span id="L39" class="LineNr"> 39 </span>  <span class="muComment"># read-eval-print loop</span>
@@ -119,17 +119,17 @@ if ('onhashchange' in window) {
 <span id="L55" class="LineNr"> 55 </span>  <span class="PreProc">return</span> <span class="Constant">0</span>
 <span id="L56" class="LineNr"> 56 </span><span class="Delimiter">}</span>
 <span id="L57" class="LineNr"> 57 </span>
-<span id="L58" class="LineNr"> 58 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L58'>simplify</a></span><span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
+<span id="L58" class="LineNr"> 58 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L58'>simplify</a></span><span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
 <span id="L59" class="LineNr"> 59 </span>  <span class="muComment"># prime the pump</span>
-<span id="L60" class="LineNr"> 60 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> <a href='arith.mu.html#L248'>get-char</a>
+<span id="L60" class="LineNr"> 60 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> <a href='arith.mu.html#L248'>get-char</a>
 <span id="L61" class="LineNr"> 61 </span>  <span class="muComment"># do it</span>
 <span id="L62" class="LineNr"> 62 </span>  <span class="PreProc">var</span> result/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L63" class="LineNr"> 63 </span>  result, look <span class="Special">&lt;-</span> <a href='arith.mu.html#L67'>expression</a> look
 <span id="L64" class="LineNr"> 64 </span>  <span class="PreProc">return</span> result, look
 <span id="L65" class="LineNr"> 65 </span><span class="Delimiter">}</span>
 <span id="L66" class="LineNr"> 66 </span>
-<span id="L67" class="LineNr"> 67 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L67'>expression</a></span> _look: grapheme<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L68" class="LineNr"> 68 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy _look
+<span id="L67" class="LineNr"> 67 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L67'>expression</a></span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L68" class="LineNr"> 68 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look
 <span id="L69" class="LineNr"> 69 </span>  <span class="muComment"># read arg</span>
 <span id="L70" class="LineNr"> 70 </span>  <span class="PreProc">var</span> result/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L71" class="LineNr"> 71 </span>  result, look <span class="Special">&lt;-</span> <a href='arith.mu.html#L112'>term</a> look
@@ -142,7 +142,7 @@ if ('onhashchange' in window) {
 <span id="L78" class="LineNr"> 78 </span>      <span class="PreProc">break-if-=</span> $expression:<span class="PreProc">loop</span>
 <span id="L79" class="LineNr"> 79 </span>    <span class="Delimiter">}</span>
 <span id="L80" class="LineNr"> 80 </span>    <span class="muComment"># read operator</span>
-<span id="L81" class="LineNr"> 81 </span>    <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: grapheme <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
+<span id="L81" class="LineNr"> 81 </span>    <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: code-point-utf8 <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L82" class="LineNr"> 82 </span>    op, look <span class="Special">&lt;-</span> operator look
 <span id="L83" class="LineNr"> 83 </span>    <span class="muComment"># read next arg</span>
 <span id="L84" class="LineNr"> 84 </span>    <span class="PreProc">var</span> second/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
@@ -173,8 +173,8 @@ if ('onhashchange' in window) {
 <span id="L109" class="LineNr">109 </span>  <span class="PreProc">return</span> result, look
 <span id="L110" class="LineNr">110 </span><span class="Delimiter">}</span>
 <span id="L111" class="LineNr">111 </span>
-<span id="L112" class="LineNr">112 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L112'>term</a></span> _look: grapheme<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L113" class="LineNr">113 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy _look
+<span id="L112" class="LineNr">112 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L112'>term</a></span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L113" class="LineNr">113 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look
 <span id="L114" class="LineNr">114 </span>  <span class="muComment"># read arg</span>
 <span id="L115" class="LineNr">115 </span>  look <span class="Special">&lt;-</span> <a href='arith.mu.html#L237'>skip-spaces</a> look
 <span id="L116" class="LineNr">116 </span>  <span class="PreProc">var</span> result/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
@@ -188,7 +188,7 @@ if ('onhashchange' in window) {
 <span id="L124" class="LineNr">124 </span>      <span class="PreProc">break-if-=</span> $term:<span class="PreProc">loop</span>
 <span id="L125" class="LineNr">125 </span>    <span class="Delimiter">}</span>
 <span id="L126" class="LineNr">126 </span>    <span class="muComment"># read operator</span>
-<span id="L127" class="LineNr">127 </span>    <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: grapheme <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
+<span id="L127" class="LineNr">127 </span>    <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: code-point-utf8 <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L128" class="LineNr">128 </span>    op, look <span class="Special">&lt;-</span> operator look
 <span id="L129" class="LineNr">129 </span>    <span class="muComment"># read next arg</span>
 <span id="L130" class="LineNr">130 </span>    <span class="PreProc">var</span> second/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
@@ -218,8 +218,8 @@ if ('onhashchange' in window) {
 <span id="L154" class="LineNr">154 </span>  <span class="PreProc">return</span> result, look
 <span id="L155" class="LineNr">155 </span><span class="Delimiter">}</span>
 <span id="L156" class="LineNr">156 </span>
-<span id="L157" class="LineNr">157 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L157'>factor</a></span> _look: grapheme<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L158" class="LineNr">158 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy _look  <span class="muComment"># should be a no-op</span>
+<span id="L157" class="LineNr">157 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L157'>factor</a></span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L158" class="LineNr">158 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look  <span class="muComment"># should be a no-op</span>
 <span id="L159" class="LineNr">159 </span>  look <span class="Special">&lt;-</span> <a href='arith.mu.html#L237'>skip-spaces</a> look
 <span id="L160" class="LineNr">160 </span>  <span class="muComment"># if next char is not '(', parse a number</span>
 <span id="L161" class="LineNr">161 </span>  compare look, <span class="Constant">0x28</span>/open-paren
@@ -238,7 +238,7 @@ if ('onhashchange' in window) {
 <span id="L174" class="LineNr">174 </span>  <span class="PreProc">return</span> result, look
 <span id="L175" class="LineNr">175 </span><span class="Delimiter">}</span>
 <span id="L176" class="LineNr">176 </span>
-<span id="L177" class="LineNr">177 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L177'>mul-or-div?</a></span> c: grapheme<span class="PreProc"> -&gt; </span>_/eax: boolean <span class="Delimiter">{</span>
+<span id="L177" class="LineNr">177 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L177'>mul-or-div?</a></span> c: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: boolean <span class="Delimiter">{</span>
 <span id="L178" class="LineNr">178 </span>  compare c, <span class="Constant">0x2a</span>/*
 <span id="L179" class="LineNr">179 </span>  <span class="Delimiter">{</span>
 <span id="L180" class="LineNr">180 </span>    <span class="PreProc">break-if-!=</span>
@@ -252,7 +252,7 @@ if ('onhashchange' in window) {
 <span id="L188" class="LineNr">188 </span>  <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L189" class="LineNr">189 </span><span class="Delimiter">}</span>
 <span id="L190" class="LineNr">190 </span>
-<span id="L191" class="LineNr">191 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L191'>add-or-sub?</a></span> c: grapheme<span class="PreProc"> -&gt; </span>_/eax: boolean <span class="Delimiter">{</span>
+<span id="L191" class="LineNr">191 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L191'>add-or-sub?</a></span> c: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: boolean <span class="Delimiter">{</span>
 <span id="L192" class="LineNr">192 </span>  compare c, <span class="Constant">0x2b</span>/+
 <span id="L193" class="LineNr">193 </span>  <span class="Delimiter">{</span>
 <span id="L194" class="LineNr">194 </span>    <span class="PreProc">break-if-!=</span>
@@ -266,14 +266,14 @@ if ('onhashchange' in window) {
 <span id="L202" class="LineNr">202 </span>  <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L203" class="LineNr">203 </span><span class="Delimiter">}</span>
 <span id="L204" class="LineNr">204 </span>
-<span id="L205" class="LineNr">205 </span><span class="PreProc">fn</span> <span class="muFunction">operator</span> _look: grapheme<span class="PreProc"> -&gt; </span>_/<span class="muRegEcx">ecx</span>: grapheme, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L206" class="LineNr">206 </span>  <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: grapheme <span class="Special">&lt;-</span> copy _look
-<span id="L207" class="LineNr">207 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> <a href='arith.mu.html#L248'>get-char</a>
+<span id="L205" class="LineNr">205 </span><span class="PreProc">fn</span> <span class="muFunction">operator</span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/<span class="muRegEcx">ecx</span>: code-point-utf8, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L206" class="LineNr">206 </span>  <span class="PreProc">var</span> op/<span class="muRegEcx">ecx</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look
+<span id="L207" class="LineNr">207 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> <a href='arith.mu.html#L248'>get-char</a>
 <span id="L208" class="LineNr">208 </span>  <span class="PreProc">return</span> op, look
 <span id="L209" class="LineNr">209 </span><span class="Delimiter">}</span>
 <span id="L210" class="LineNr">210 </span>
-<span id="L211" class="LineNr">211 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L211'>num</a></span> _look: grapheme<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L212" class="LineNr">212 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy _look
+<span id="L211" class="LineNr">211 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L211'>num</a></span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/eax: int, _/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L212" class="LineNr">212 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look
 <span id="L213" class="LineNr">213 </span>  <span class="PreProc">var</span> result/<span class="muRegEdi">edi</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L214" class="LineNr">214 </span>  <span class="Delimiter">{</span>
 <span id="L215" class="LineNr">215 </span>    <span class="PreProc">var</span> first-digit/eax: int <span class="Special">&lt;-</span> <a href='../126write-int-decimal.subx.html#L405'>to-decimal-digit</a> look
@@ -298,8 +298,8 @@ if ('onhashchange' in window) {
 <span id="L234" class="LineNr">234 </span>  <span class="PreProc">return</span> result, look
 <span id="L235" class="LineNr">235 </span><span class="Delimiter">}</span>
 <span id="L236" class="LineNr">236 </span>
-<span id="L237" class="LineNr">237 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L237'>skip-spaces</a></span> _look: grapheme<span class="PreProc"> -&gt; </span>_/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L238" class="LineNr">238 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: grapheme <span class="Special">&lt;-</span> copy _look  <span class="muComment"># should be a no-op</span>
+<span id="L237" class="LineNr">237 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L237'>skip-spaces</a></span> _look: code-point-utf8<span class="PreProc"> -&gt; </span>_/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L238" class="LineNr">238 </span>  <span class="PreProc">var</span> look/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Special">&lt;-</span> copy _look  <span class="muComment"># should be a no-op</span>
 <span id="L239" class="LineNr">239 </span>  <span class="Delimiter">{</span>
 <span id="L240" class="LineNr">240 </span>    compare look, <span class="Constant">0x20</span>
 <span id="L241" class="LineNr">241 </span>    <span class="PreProc">break-if-!=</span>
@@ -309,9 +309,9 @@ if ('onhashchange' in window) {
 <span id="L245" class="LineNr">245 </span>  <span class="PreProc">return</span> look
 <span id="L246" class="LineNr">246 </span><span class="Delimiter">}</span>
 <span id="L247" class="LineNr">247 </span>
-<span id="L248" class="LineNr">248 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L248'>get-char</a></span><span class="PreProc"> -&gt; </span>_/<span class="muRegEsi">esi</span>: grapheme <span class="Delimiter">{</span>
-<span id="L249" class="LineNr">249 </span>  <span class="PreProc">var</span> look/eax: grapheme <span class="Special">&lt;-</span> <a href='../305keyboard.subx.html#L132'>read-key-from-real-keyboard</a>
-<span id="L250" class="LineNr">250 </span>  <a href='../304screen.subx.html#L161'>print-grapheme-to-real-screen</a> look
+<span id="L248" class="LineNr">248 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='arith.mu.html#L248'>get-char</a></span><span class="PreProc"> -&gt; </span>_/<span class="muRegEsi">esi</span>: code-point-utf8 <span class="Delimiter">{</span>
+<span id="L249" class="LineNr">249 </span>  <span class="PreProc">var</span> look/eax: code-point-utf8 <span class="Special">&lt;-</span> <a href='../305keyboard.subx.html#L132'>read-key-from-real-keyboard</a>
+<span id="L250" class="LineNr">250 </span>  <a href='../304screen.subx.html#L161'>print-code-point-utf8-to-real-screen</a> look
 <span id="L251" class="LineNr">251 </span>  compare look, <span class="Constant">4</span>
 <span id="L252" class="LineNr">252 </span>  <span class="Delimiter">{</span>
 <span id="L253" class="LineNr">253 </span>    <span class="PreProc">break-if-!=</span>
diff --git a/html/linux/apps/ex1.mu.html b/html/linux/apps/ex1.mu.html
index bf1644a4..b0dc408b 100644
--- a/html/linux/apps/ex1.mu.html
+++ b/html/linux/apps/ex1.mu.html
@@ -16,11 +16,11 @@ a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/ex1.subx.html b/html/linux/apps/ex1.subx.html
index 678f74c9..4be53f0a 100644
--- a/html/linux/apps/ex1.subx.html
+++ b/html/linux/apps/ex1.subx.html
@@ -59,8 +59,8 @@ if ('onhashchange' in window) {
 <span id="L4" class="LineNr"> 4 </span><span class="subxComment"># Same as <a href="https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html">https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html</a></span>
 <span id="L5" class="LineNr"> 5 </span><span class="subxComment">#</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># To run:</span>
-<span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex1.subx -o ex1</span>
-<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex1</span>
+<span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex1.subx</span>
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L9" class="LineNr"> 9 </span><span class="subxComment"># Expected result:</span>
 <span id="L10" class="LineNr">10 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L11" class="LineNr">11 </span><span class="subxComment">#   42</span>
diff --git a/html/linux/apps/ex10.subx.html b/html/linux/apps/ex10.subx.html
index c359244c..fd636970 100644
--- a/html/linux/apps/ex10.subx.html
+++ b/html/linux/apps/ex10.subx.html
@@ -15,13 +15,13 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
 .Constant { color: #008787; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
+.subxFunction { color: #af5f00; text-decoration: underline; }
 -->
 </style>
 
@@ -60,8 +60,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># String comparison: return 1 iff the two args passed in at the commandline are equal.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex10.subx -o ex10</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex10 abc abd</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex10.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf abc abd</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   0  # false</span>
diff --git a/html/linux/apps/ex11.subx.html b/html/linux/apps/ex11.subx.html
index f101f852..165ebbe3 100644
--- a/html/linux/apps/ex11.subx.html
+++ b/html/linux/apps/ex11.subx.html
@@ -14,17 +14,17 @@ pre { font-family: monospace; color: #000000; background-color: #ffffd7; }
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
+.subxH1Comment { color: #005faf; text-decoration: underline; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
+.subxMinorFunction { color: #875f5f; }
 .Constant { color: #008787; }
+.subxTest { color: #5f8700; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
-.subxMinorFunction { color: #875f5f; }
-.subxTest { color: #5f8700; }
-.subxH1Comment { color: #005faf; text-decoration: underline; }
+.subxFunction { color: #af5f00; text-decoration: underline; }
 -->
 </style>
 
@@ -68,8 +68,8 @@ if ('onhashchange' in window) {
 <span id="L6" class="LineNr">  6 </span><span class="subxComment"># a null-terminated 'kernel string' with a size-prefixed 'SubX string'.</span>
 <span id="L7" class="LineNr">  7 </span><span class="subxComment">#</span>
 <span id="L8" class="LineNr">  8 </span><span class="subxComment"># To run:</span>
-<span id="L9" class="LineNr">  9 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex11.subx -o ex11</span>
-<span id="L10" class="LineNr"> 10 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex11  # runs a series of tests</span>
+<span id="L9" class="LineNr">  9 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex11.subx</span>
+<span id="L10" class="LineNr"> 10 </span><span class="subxComment">#   $ ./a.elf  # runs a series of tests</span>
 <span id="L11" class="LineNr"> 11 </span><span class="subxComment">#   ......  # all tests pass</span>
 <span id="L12" class="LineNr"> 12 </span><span class="subxComment">#</span>
 <span id="L13" class="LineNr"> 13 </span><span class="subxComment"># (We can't yet run the tests when given a &quot;test&quot; commandline argument,</span>
@@ -378,7 +378,7 @@ if ('onhashchange' in window) {
 <span id="L316" class="LineNr">316 </span>    51/push-ecx
 <span id="L317" class="LineNr">317 </span>    52/push-edx
 <span id="L318" class="LineNr">318 </span>    53/push-ebx
-<span id="L319" class="LineNr">319 </span>    <span class="subxComment"># syscall(write, 2/stderr, (data) s+4, (size) *s)</span>
+<span id="L319" class="LineNr">319 </span>    <span class="subxComment"># syscall_write(2/stderr, (data) s+4, (size) *s)</span>
 <span id="L320" class="LineNr">320 </span>    <span class="subxS2Comment"># . . fd = 2 (stderr)</span>
 <span id="L321" class="LineNr">321 </span>    bb/copy-to-ebx  2/imm32
 <span id="L322" class="LineNr">322 </span>    <span class="subxS2Comment"># . . x = s+4</span>
diff --git a/html/linux/apps/ex12.subx.html b/html/linux/apps/ex12.subx.html
index 12b09331..1ce398d8 100644
--- a/html/linux/apps/ex12.subx.html
+++ b/html/linux/apps/ex12.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 -->
@@ -59,8 +59,8 @@ if ('onhashchange' in window) {
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment"># Create a new segment using mmap, save the address, write to it.</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment">#</span>
 <span id="L4" class="LineNr"> 4 </span><span class="subxComment"># To run:</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex12.subx -o ex12</span>
-<span id="L6" class="LineNr"> 6 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex12</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex12.subx</span>
+<span id="L6" class="LineNr"> 6 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment"># You shouldn't get a segmentation fault.</span>
 <span id="L8" class="LineNr"> 8 </span>
 <span id="L9" class="LineNr"> 9 </span>== code
diff --git a/html/linux/apps/ex13.subx.html b/html/linux/apps/ex13.subx.html
index c0181b6c..83c378b5 100644
--- a/html/linux/apps/ex13.subx.html
+++ b/html/linux/apps/ex13.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .Constant { color: #008787; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
@@ -59,8 +59,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Compare 3 and 3.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex13.subx -o ex13</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex13</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex13.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   1</span>
diff --git a/html/linux/apps/ex14.subx.html b/html/linux/apps/ex14.subx.html
index fd76cdc3..fde8dd61 100644
--- a/html/linux/apps/ex14.subx.html
+++ b/html/linux/apps/ex14.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .Constant { color: #008787; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
@@ -59,8 +59,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Multiply 2 numbers.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex14.subx -o ex14</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex14</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex14.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   6</span>
diff --git a/html/linux/apps/ex2.mu.html b/html/linux/apps/ex2.mu.html
index 48ee0e00..faf14219 100644
--- a/html/linux/apps/ex2.mu.html
+++ b/html/linux/apps/ex2.mu.html
@@ -15,14 +15,14 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/ex2.subx.html b/html/linux/apps/ex2.subx.html
index 519b4b73..1b888d5f 100644
--- a/html/linux/apps/ex2.subx.html
+++ b/html/linux/apps/ex2.subx.html
@@ -56,11 +56,11 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Add 3 and 4, and return the result in the exit code.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex2.subx -o ex2</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex2</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex2.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
-<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   2</span>
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   7</span>
 <span id="L9" class="LineNr"> 9 </span>
 <span id="L10" class="LineNr">10 </span>== code
 <span id="L11" class="LineNr">11 </span>
diff --git a/html/linux/apps/ex3.2.mu.html b/html/linux/apps/ex3.2.mu.html
index 98c6a027..cc741ab7 100644
--- a/html/linux/apps/ex3.2.mu.html
+++ b/html/linux/apps/ex3.2.mu.html
@@ -15,15 +15,15 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/ex3.mu.html b/html/linux/apps/ex3.mu.html
index 9da58562..e6527d19 100644
--- a/html/linux/apps/ex3.mu.html
+++ b/html/linux/apps/ex3.mu.html
@@ -17,11 +17,11 @@ a { color:inherit; }
 .PreProc { color: #c000c0; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/ex3.subx.html b/html/linux/apps/ex3.subx.html
index 0810bdc8..c710665f 100644
--- a/html/linux/apps/ex3.subx.html
+++ b/html/linux/apps/ex3.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 .SpecialChar { color: #d70000; }
 .Constant { color: #008787; }
@@ -59,8 +59,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Add the first 10 numbers, and return the result in the exit code.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex3.subx -o ex3</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex3</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex3.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   55</span>
diff --git a/html/linux/apps/ex4.subx.html b/html/linux/apps/ex4.subx.html
index 1b3bd941..ddb82a8d 100644
--- a/html/linux/apps/ex4.subx.html
+++ b/html/linux/apps/ex4.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 -->
 </style>
@@ -57,8 +57,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Read a character from stdin, save it to a global, write it to stdout.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex4.subx -o ex4</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex4</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex4.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span>
 <span id="L7" class="LineNr"> 7 </span>== data
 <span id="L8" class="LineNr"> 8 </span>
diff --git a/html/linux/apps/ex5.subx.html b/html/linux/apps/ex5.subx.html
index 949e207c..d3e8282e 100644
--- a/html/linux/apps/ex5.subx.html
+++ b/html/linux/apps/ex5.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 -->
@@ -58,8 +58,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Read a character from stdin, save it to a local on the stack, write it to stdout.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex5.subx -o ex5</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex5</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex5.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span>
 <span id="L7" class="LineNr"> 7 </span>== code
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   instruction                     effective address                                                   register    displacement    immediate</span>
@@ -81,7 +81,7 @@ if ('onhashchange' in window) {
 <span id="L24" class="LineNr">24 </span>    <span class="subxS1Comment"># . syscall</span>
 <span id="L25" class="LineNr">25 </span>    e8/call  <a href='../000init.subx.html#L23'>syscall_read</a>/disp32
 <span id="L26" class="LineNr">26 </span>
-<span id="L27" class="LineNr">27 </span>    <span class="subxComment"># syscall(write, stdout, x, 1)</span>
+<span id="L27" class="LineNr">27 </span>    <span class="subxComment"># syscall_write(stdout, x, 1)</span>
 <span id="L28" class="LineNr">28 </span>    <span class="subxS1Comment"># . fd = 1 (stdout)</span>
 <span id="L29" class="LineNr">29 </span>    bb/copy-to-ebx  1/imm32
 <span id="L30" class="LineNr">30 </span>    <span class="subxS1Comment"># . data = x (location to read from)</span>
diff --git a/html/linux/apps/ex6.subx.html b/html/linux/apps/ex6.subx.html
index 5aa4fd53..ea372ee1 100644
--- a/html/linux/apps/ex6.subx.html
+++ b/html/linux/apps/ex6.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 -->
@@ -58,8 +58,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Print out a (global variable) string to stdout.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex6.subx -o ex6</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex6</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex6.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment">#   Hello, world!</span>
 <span id="L7" class="LineNr"> 7 </span>
 <span id="L8" class="LineNr"> 8 </span>== code
diff --git a/html/linux/apps/ex7.subx.html b/html/linux/apps/ex7.subx.html
index b2a87263..622b4559 100644
--- a/html/linux/apps/ex7.subx.html
+++ b/html/linux/apps/ex7.subx.html
@@ -15,9 +15,9 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 -->
@@ -62,8 +62,8 @@ if ('onhashchange' in window) {
 <span id="L5" class="LineNr"> 5 </span><span class="subxComment"># the character read.</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment">#</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment"># To run:</span>
-<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex7.subx -o ex7</span>
-<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex7</span>
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex7.subx</span>
+<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L10" class="LineNr">10 </span><span class="subxComment"># Expected result:</span>
 <span id="L11" class="LineNr">11 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L12" class="LineNr">12 </span><span class="subxComment">#   97</span>
diff --git a/html/linux/apps/ex8.subx.html b/html/linux/apps/ex8.subx.html
index 86d16571..a49afabc 100644
--- a/html/linux/apps/ex8.subx.html
+++ b/html/linux/apps/ex8.subx.html
@@ -15,13 +15,13 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
 .Constant { color: #008787; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
+.subxFunction { color: #af5f00; text-decoration: underline; }
 -->
 </style>
 
@@ -60,8 +60,8 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Example reading commandline arguments: compute length of first arg.</span>
 <span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex8.subx -o ex8</span>
-<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex8 abc de fghi</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex8.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf abc de fghi</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   3  # length of 'abc'</span>
diff --git a/html/linux/apps/ex9.subx.html b/html/linux/apps/ex9.subx.html
index 3a79d9d9..cf8527f5 100644
--- a/html/linux/apps/ex9.subx.html
+++ b/html/linux/apps/ex9.subx.html
@@ -15,12 +15,12 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
 .SpecialChar { color: #d70000; }
 .Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
+.subxFunction { color: #af5f00; text-decoration: underline; }
 -->
 </style>
 
@@ -62,8 +62,8 @@ if ('onhashchange' in window) {
 <span id="L4" class="LineNr"> 4 </span><span class="subxComment"># letter of second arg.</span>
 <span id="L5" class="LineNr"> 5 </span><span class="subxComment">#</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment"># To run:</span>
-<span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ bootstrap/bootstrap translate apps/ex9.subx -o ex9</span>
-<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ bootstrap/bootstrap run ex9 z x</span>
+<span id="L7" class="LineNr"> 7 </span><span class="subxComment">#   $ ./translate_subx 000init.subx apps/ex9.subx</span>
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./a.elf z x</span>
 <span id="L9" class="LineNr"> 9 </span><span class="subxComment"># Expected result:</span>
 <span id="L10" class="LineNr">10 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L11" class="LineNr">11 </span><span class="subxComment">#   2</span>
diff --git a/html/linux/apps/factorial.mu.html b/html/linux/apps/factorial.mu.html
index 3e626b6d..1b88bd34 100644
--- a/html/linux/apps/factorial.mu.html
+++ b/html/linux/apps/factorial.mu.html
@@ -15,15 +15,15 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.muRegEcx { color: #870000; }
+.Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
+.muRegEcx { color: #870000; }
+.Delimiter { color: #c000c0; }
 .muFunction { color: #af5f00; text-decoration: underline; }
 .muTest { color: #5f8700; }
-.Delimiter { color: #c000c0; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
diff --git a/html/linux/apps/factorial.subx.html b/html/linux/apps/factorial.subx.html
index c8f08ab6..92cb24e4 100644
--- a/html/linux/apps/factorial.subx.html
+++ b/html/linux/apps/factorial.subx.html
@@ -14,15 +14,15 @@ pre { font-family: monospace; color: #000000; background-color: #ffffd7; }
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
+.SpecialChar { color: #d70000; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
-.subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
 .Constant { color: #008787; }
-.SpecialChar { color: #d70000; }
-.Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 .subxTest { color: #5f8700; }
+.subxFunction { color: #af5f00; text-decoration: underline; }
+.Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
 -->
 </style>
 
@@ -61,14 +61,14 @@ if ('onhashchange' in window) {
 <span id="L1" class="LineNr">  1 </span><span class="subxComment">## compute the factorial of 5, and print the result</span>
 <span id="L2" class="LineNr">  2 </span><span class="subxComment">#</span>
 <span id="L3" class="LineNr">  3 </span><span class="subxComment"># To run:</span>
-<span id="L4" class="LineNr">  4 </span><span class="subxComment">#   $ bootstrap/bootstrap translate [01]*.subx apps/factorial.subx -o factorial</span>
-<span id="L5" class="LineNr">  5 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial</span>
+<span id="L4" class="LineNr">  4 </span><span class="subxComment">#   $ ./translate_subx [01]*.subx apps/factorial.subx</span>
+<span id="L5" class="LineNr">  5 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L6" class="LineNr">  6 </span><span class="subxComment"># Expected result:</span>
 <span id="L7" class="LineNr">  7 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L8" class="LineNr">  8 </span><span class="subxComment">#   120</span>
 <span id="L9" class="LineNr">  9 </span><span class="subxComment">#</span>
 <span id="L10" class="LineNr"> 10 </span><span class="subxComment"># You can also run the automated test suite:</span>
-<span id="L11" class="LineNr"> 11 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial test</span>
+<span id="L11" class="LineNr"> 11 </span><span class="subxComment">#   $ ./a.elf test</span>
 <span id="L12" class="LineNr"> 12 </span><span class="subxComment"># Expected output:</span>
 <span id="L13" class="LineNr"> 13 </span><span class="subxComment">#   ........</span>
 <span id="L14" class="LineNr"> 14 </span><span class="subxComment"># Every '.' indicates a passing test. Failing tests get a 'F'.</span>
diff --git a/html/linux/apps/factorial2.subx.html b/html/linux/apps/factorial2.subx.html
index 72331748..7e0ed4af 100644
--- a/html/linux/apps/factorial2.subx.html
+++ b/html/linux/apps/factorial2.subx.html
@@ -14,14 +14,14 @@ pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
+.SpecialChar { color: #d70000; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .subxS2Comment { color: #8a8a8a; }
 .LineNr { }
+.subxTest { color: #5f8700; }
 .subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
-.SpecialChar { color: #d70000; }
 .Constant { color: #008787; }
-.subxTest { color: #5f8700; }
 -->
 </style>
 
@@ -63,14 +63,14 @@ if ('onhashchange' in window) {
 <span id="L4" class="LineNr">  4 </span><span class="subxComment">#   rm32 operands</span>
 <span id="L5" class="LineNr">  5 </span><span class="subxComment">#</span>
 <span id="L6" class="LineNr">  6 </span><span class="subxComment"># To run:</span>
-<span id="L7" class="LineNr">  7 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial2.subx -o factorial</span>
-<span id="L8" class="LineNr">  8 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial</span>
+<span id="L7" class="LineNr">  7 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial2.subx</span>
+<span id="L8" class="LineNr">  8 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L9" class="LineNr">  9 </span><span class="subxComment"># Expected result:</span>
 <span id="L10" class="LineNr"> 10 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L11" class="LineNr"> 11 </span><span class="subxComment">#   120</span>
 <span id="L12" class="LineNr"> 12 </span><span class="subxComment">#</span>
 <span id="L13" class="LineNr"> 13 </span><span class="subxComment"># You can also run the automated test suite:</span>
-<span id="L14" class="LineNr"> 14 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial test</span>
+<span id="L14" class="LineNr"> 14 </span><span class="subxComment">#   $ ./a.elf test</span>
 <span id="L15" class="LineNr"> 15 </span><span class="subxComment"># Expected output:</span>
 <span id="L16" class="LineNr"> 16 </span><span class="subxComment">#   ........</span>
 <span id="L17" class="LineNr"> 17 </span><span class="subxComment"># Every '.' indicates a passing test. Failing tests get a 'F'.</span>
diff --git a/html/linux/apps/factorial3.subx.html b/html/linux/apps/factorial3.subx.html
index 93cf4e55..f0a76a21 100644
--- a/html/linux/apps/factorial3.subx.html
+++ b/html/linux/apps/factorial3.subx.html
@@ -14,13 +14,13 @@ pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
+.SpecialChar { color: #d70000; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .LineNr { }
+.subxTest { color: #5f8700; }
 .subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
-.SpecialChar { color: #d70000; }
 .Constant { color: #008787; }
-.subxTest { color: #5f8700; }
 -->
 </style>
 
@@ -63,14 +63,14 @@ if ('onhashchange' in window) {
 <span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   function calls</span>
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment">#</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment"># To run:</span>
-<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial3.subx -o factorial</span>
-<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial</span>
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial3.subx</span>
+<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L10" class="LineNr">10 </span><span class="subxComment"># Expected result:</span>
 <span id="L11" class="LineNr">11 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L12" class="LineNr">12 </span><span class="subxComment">#   120</span>
 <span id="L13" class="LineNr">13 </span><span class="subxComment">#</span>
 <span id="L14" class="LineNr">14 </span><span class="subxComment"># You can also run the automated test suite:</span>
-<span id="L15" class="LineNr">15 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial test</span>
+<span id="L15" class="LineNr">15 </span><span class="subxComment">#   $ ./a.elf test</span>
 <span id="L16" class="LineNr">16 </span><span class="subxComment"># Expected output:</span>
 <span id="L17" class="LineNr">17 </span><span class="subxComment">#   ........</span>
 <span id="L18" class="LineNr">18 </span><span class="subxComment"># Every '.' indicates a passing test. Failing tests get a 'F'.</span>
diff --git a/html/linux/apps/factorial4.subx.html b/html/linux/apps/factorial4.subx.html
index 879a7a44..223e3ee0 100644
--- a/html/linux/apps/factorial4.subx.html
+++ b/html/linux/apps/factorial4.subx.html
@@ -14,13 +14,13 @@ pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
+.SpecialChar { color: #d70000; }
 .subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
 .LineNr { }
+.subxTest { color: #5f8700; }
 .subxFunction { color: #af5f00; text-decoration: underline; }
-.subxS1Comment { color: #0000af; }
-.SpecialChar { color: #d70000; }
 .Constant { color: #008787; }
-.subxTest { color: #5f8700; }
 -->
 </style>
 
@@ -64,14 +64,14 @@ if ('onhashchange' in window) {
 <span id="L6" class="LineNr"> 6 </span><span class="subxComment">#   control flow</span>
 <span id="L7" class="LineNr"> 7 </span><span class="subxComment">#</span>
 <span id="L8" class="LineNr"> 8 </span><span class="subxComment"># To run:</span>
-<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial4.subx -o factorial</span>
-<span id="L10" class="LineNr">10 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial</span>
+<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ ./translate_subx init.linux [01]*.subx apps/factorial4.subx</span>
+<span id="L10" class="LineNr">10 </span><span class="subxComment">#   $ ./a.elf</span>
 <span id="L11" class="LineNr">11 </span><span class="subxComment"># Expected result:</span>
 <span id="L12" class="LineNr">12 </span><span class="subxComment">#   $ echo $?</span>
 <span id="L13" class="LineNr">13 </span><span class="subxComment">#   120</span>
 <span id="L14" class="LineNr">14 </span><span class="subxComment">#</span>
 <span id="L15" class="LineNr">15 </span><span class="subxComment"># You can also run the automated test suite:</span>
-<span id="L16" class="LineNr">16 </span><span class="subxComment">#   $ bootstrap/bootstrap run factorial test</span>
+<span id="L16" class="LineNr">16 </span><span class="subxComment">#   $ ./a.elf test</span>
 <span id="L17" class="LineNr">17 </span><span class="subxComment"># Expected output:</span>
 <span id="L18" class="LineNr">18 </span><span class="subxComment">#   ........</span>
 <span id="L19" class="LineNr">19 </span><span class="subxComment"># Every '.' indicates a passing test. Failing tests get a 'F'.</span>
diff --git a/html/linux/apps/hello.mu.html b/html/linux/apps/hello.mu.html
index b7033551..541fd7f6 100644
--- a/html/linux/apps/hello.mu.html
+++ b/html/linux/apps/hello.mu.html
@@ -16,11 +16,11 @@ a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/parse-int.mu.html b/html/linux/apps/parse-int.mu.html
index 0ba861a7..ef3297c2 100644
--- a/html/linux/apps/parse-int.mu.html
+++ b/html/linux/apps/parse-int.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.Constant { color: #008787; }
+.muRegEbx { color: #5f00ff; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
@@ -100,7 +100,7 @@ if ('onhashchange' in window) {
 <span id="L37" class="LineNr">37 </span>    <span class="PreProc">var</span> tmp/<span class="muRegEbx">ebx</span>: (addr byte) <span class="Special">&lt;-</span> index in, i
 <span id="L38" class="LineNr">38 </span>    <span class="PreProc">var</span> c/eax: byte <span class="Special">&lt;-</span> copy-byte *tmp
 <span id="L39" class="LineNr">39 </span>    <span class="muComment">#</span>
-<span id="L40" class="LineNr">40 </span>    <span class="PreProc">var</span> g/eax: grapheme <span class="Special">&lt;-</span> copy c
+<span id="L40" class="LineNr">40 </span>    <span class="PreProc">var</span> g/eax: code-point-utf8 <span class="Special">&lt;-</span> copy c
 <span id="L41" class="LineNr">41 </span>    <span class="PreProc">var</span> digit/eax: int <span class="Special">&lt;-</span> <a href='../126write-int-decimal.subx.html#L405'>to-decimal-digit</a> g
 <span id="L42" class="LineNr">42 </span>    result <span class="Special">&lt;-</span> add digit
 <span id="L43" class="LineNr">43 </span>    i <span class="Special">&lt;-</span> increment
diff --git a/html/linux/apps/print-file.mu.html b/html/linux/apps/print-file.mu.html
index 21dfc9d2..eaa41057 100644
--- a/html/linux/apps/print-file.mu.html
+++ b/html/linux/apps/print-file.mu.html
@@ -15,15 +15,15 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
@@ -91,8 +91,8 @@ if ('onhashchange' in window) {
 <span id="L30" class="LineNr">30 </span>      <span class="PreProc">var</span> c/eax: byte <span class="Special">&lt;-</span> <a href='../112read-byte.subx.html#L38'>read-byte-buffered</a> in-addr
 <span id="L31" class="LineNr">31 </span>      compare c, <span class="Constant">0xffffffff</span>/end-of-file
 <span id="L32" class="LineNr">32 </span>      <span class="PreProc">break-if-=</span>
-<span id="L33" class="LineNr">33 </span>      <span class="PreProc">var</span> g/eax: grapheme <span class="Special">&lt;-</span> copy c
-<span id="L34" class="LineNr">34 </span>      <a href='../405screen.mu.html#L214'>print-grapheme</a> <span class="Constant">0</span>/screen, g
+<span id="L33" class="LineNr">33 </span>      <span class="PreProc">var</span> g/eax: code-point-utf8 <span class="Special">&lt;-</span> copy c
+<span id="L34" class="LineNr">34 </span>      <a href='../405screen.mu.html#L214'>print-code-point-utf8</a> <span class="Constant">0</span>/screen, g
 <span id="L35" class="LineNr">35 </span>      <span class="PreProc">loop</span>
 <span id="L36" class="LineNr">36 </span>    <span class="Delimiter">}</span>
 <span id="L37" class="LineNr">37 </span>  <span class="Delimiter">}</span>
diff --git a/html/linux/apps/random.subx.html b/html/linux/apps/random.subx.html
new file mode 100644
index 00000000..0e90e3db
--- /dev/null
+++ b/html/linux/apps/random.subx.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<title>Mu - linux/apps/random.subx</title>
+<meta name="Generator" content="Vim/8.2">
+<meta name="plugin-version" content="vim8.1_v2">
+<meta name="syntax" content="none">
+<meta name="settings" content="number_lines,use_css,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="colorscheme" content="minimal-light">
+<style>
+<!--
+pre { font-family: monospace; color: #000000; background-color: #ffffd7; }
+body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
+a { color:inherit; }
+* { font-size:12pt; font-size: 1em; }
+.subxComment { color: #005faf; }
+.subxS1Comment { color: #0000af; }
+.subxS2Comment { color: #8a8a8a; }
+.LineNr { }
+.Constant { color: #008787; }
+.SpecialChar { color: #d70000; }
+.Normal { color: #000000; background-color: #ffffd7; padding-bottom: 1px; }
+-->
+</style>
+
+<script>
+<!--
+
+/* function to open any folds containing a jumped-to line before jumping to it */
+function JumpToLine()
+{
+  var lineNum;
+  lineNum = window.location.hash;
+  lineNum = lineNum.substr(1); /* strip off '#' */
+
+  if (lineNum.indexOf('L') == -1) {
+    lineNum = 'L'+lineNum;
+  }
+  var lineElem = document.getElementById(lineNum);
+  /* Always jump to new location even if the line was hidden inside a fold, or
+   * we corrected the raw number to a line ID.
+   */
+  if (lineElem) {
+    lineElem.scrollIntoView(true);
+  }
+  return true;
+}
+if ('onhashchange' in window) {
+  window.onhashchange = JumpToLine;
+}
+
+-->
+</script>
+</head>
+<body onload='JumpToLine();'>
+<a href='https://github.com/akkartik/mu/blob/main/linux/apps/random.subx'>https://github.com/akkartik/mu/blob/main/linux/apps/random.subx</a>
+<pre id='vimCodeElement'>
+<span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Repeatedly read 32-bit numbers from /dev/random, print them to stdout.</span>
+<span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
+<span id="L3" class="LineNr"> 3 </span><span class="subxComment"># To run:</span>
+<span id="L4" class="LineNr"> 4 </span><span class="subxComment">#   $ ./translate_subx [01]*.subx apps/random.subx</span>
+<span id="L5" class="LineNr"> 5 </span><span class="subxComment">#   $ ./a.elf</span>
+<span id="L6" class="LineNr"> 6 </span>
+<span id="L7" class="LineNr"> 7 </span>== code 0x09000000
+<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   instruction                     effective address                                                   register    displacement    immediate</span>
+<span id="L9" class="LineNr"> 9 </span><span class="subxS1Comment"># . op          subop               mod             rm32          base        index         scale       r32</span>
+<span id="L10" class="LineNr">10 </span><span class="subxS1Comment"># . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes</span>
+<span id="L11" class="LineNr">11 </span>
+<span id="L12" class="LineNr">12 </span><span class="SpecialChar">Entry</span>:
+<span id="L13" class="LineNr">13 </span>    <span class="subxComment"># stream/esi = syscall_open(&quot;/dev/null&quot;, O_RDONLY, 0)  # we can't use 'fd' because it looks like a hex byte</span>
+<span id="L14" class="LineNr">14 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='random.subx.html#L55'>Filename</a></span>/imm32
+<span id="L15" class="LineNr">15 </span>    b9/copy-to-ecx  0/imm32/rdonly
+<span id="L16" class="LineNr">16 </span>    ba/copy-to-edx  0x180/imm32/fixed-perms
+<span id="L17" class="LineNr">17 </span>    e8/call  <a href='../000init.subx.html#L35'>syscall_open</a>/disp32
+<span id="L18" class="LineNr">18 </span>    <span class="subxS1Comment"># . stream = eax</span>
+<span id="L19" class="LineNr">19 </span>    89/copy                         3/mod/direct    6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to esi</span>
+<span id="L20" class="LineNr">20 </span>
+<span id="L21" class="LineNr">21 </span><span class="Constant">$loop</span>:
+<span id="L22" class="LineNr">22 </span>
+<span id="L23" class="LineNr">23 </span>    <span class="subxComment"># syscall_read(Stream, N, 4)</span>
+<span id="L24" class="LineNr">24 </span>    89/copy                         3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esi to ebx</span>
+<span id="L25" class="LineNr">25 </span>    b9/copy-to-ecx  <span class="SpecialChar"><a href='random.subx.html#L53'>N</a></span>/imm32
+<span id="L26" class="LineNr">26 </span>    ba/copy-to-edx  4/imm32/size
+<span id="L27" class="LineNr">27 </span>    e8/call  <a href='../000init.subx.html#L23'>syscall_read</a>/disp32
+<span id="L28" class="LineNr">28 </span>
+<span id="L29" class="LineNr">29 </span>    <span class="subxComment"># write-int32-hex-buffered(Stdout, *N)</span>
+<span id="L30" class="LineNr">30 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L31" class="LineNr">31 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='random.subx.html#L53'>N</a></span>/disp32                          <span class="subxComment"># push *N</span>
+<span id="L32" class="LineNr">32 </span>    68/push  <span class="SpecialChar"><a href='../115write-byte.subx.html#L10'>Stdout</a></span>/imm32
+<span id="L33" class="LineNr">33 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L34" class="LineNr">34 </span>    e8/call  <a href='../117write-int-hex.subx.html#L288'>write-int32-hex-buffered</a>/disp32
+<span id="L35" class="LineNr">35 </span>
+<span id="L36" class="LineNr">36 </span>    <span class="subxComment"># write-buffered(Stdout, Newline)</span>
+<span id="L37" class="LineNr">37 </span>    <span class="subxS2Comment"># . . push args</span>
+<span id="L38" class="LineNr">38 </span>    68/push  <span class="SpecialChar"><a href='../102test.subx.html#L82'>Newline</a></span>/imm32
+<span id="L39" class="LineNr">39 </span>    68/push  <span class="SpecialChar"><a href='../115write-byte.subx.html#L10'>Stdout</a></span>/imm32
+<span id="L40" class="LineNr">40 </span>    <span class="subxS2Comment"># . . call</span>
+<span id="L41" class="LineNr">41 </span>    e8/call  <a href='../116write-buffered.subx.html#L8'>write-buffered</a>/disp32
+<span id="L42" class="LineNr">42 </span>    <span class="subxS2Comment"># . . discard args</span>
+<span id="L43" class="LineNr">43 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
+<span id="L44" class="LineNr">44 </span>
+<span id="L45" class="LineNr">45 </span>    eb/jump  $loop/disp8
+<span id="L46" class="LineNr">46 </span>
+<span id="L47" class="LineNr">47 </span>    <span class="subxComment"># syscall_exit(0)</span>
+<span id="L48" class="LineNr">48 </span>    bb/copy-to-ebx  0/imm32
+<span id="L49" class="LineNr">49 </span>    e8/call  <a href='../000init.subx.html#L18'>syscall_exit</a>/disp32
+<span id="L50" class="LineNr">50 </span>
+<span id="L51" class="LineNr">51 </span>== data 0x0a000000
+<span id="L52" class="LineNr">52 </span>
+<span id="L53" class="LineNr">53 </span><span class="SpecialChar">N</span>:
+<span id="L54" class="LineNr">54 </span>    0/imm32
+<span id="L55" class="LineNr">55 </span><span class="SpecialChar">Filename</span>:
+<span id="L56" class="LineNr">56 </span>    2f 64 65 76 2f 72 61 6e 64 6f 6d 00
+<span id="L57" class="LineNr">57 </span><span class="subxComment">#   /  d  e  v  /  r  a  n  d  o  m  null</span>
+<span id="L58" class="LineNr">58 </span>
+<span id="L59" class="LineNr">59 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
+</pre>
+</body>
+</html>
+<!-- vim: set foldmethod=manual : -->
diff --git a/html/linux/apps/raytracing/1.mu.html b/html/linux/apps/raytracing/1.mu.html
index f7464218..1de3b923 100644
--- a/html/linux/apps/raytracing/1.mu.html
+++ b/html/linux/apps/raytracing/1.mu.html
@@ -15,14 +15,14 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/raytracing/2.mu.html b/html/linux/apps/raytracing/2.mu.html
index 6ae05c81..4be1909c 100644
--- a/html/linux/apps/raytracing/2.mu.html
+++ b/html/linux/apps/raytracing/2.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEsi { color: #005faf; }
-.Special { color: #ff6060; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
-.CommentedCode { color: #8a8a8a; }
+.muRegEsi { color: #005faf; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
+.CommentedCode { color: #8a8a8a; }
 .muComment { color: #005faf; }
-.muRegEcx { color: #870000; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/raytracing/3.mu.html b/html/linux/apps/raytracing/3.mu.html
index c43df3a4..f2aa7591 100644
--- a/html/linux/apps/raytracing/3.mu.html
+++ b/html/linux/apps/raytracing/3.mu.html
@@ -16,19 +16,19 @@ a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .LineNr { }
 .Delimiter { color: #c000c0; }
-.muRegEcx { color: #870000; }
-.muRegEdx { color: #af5f00; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muRegEbx { color: #5f00ff; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
 .Constant { color: #008787; }
 .Special { color: #ff6060; }
 .PreProc { color: #c000c0; }
-.muFunction { color: #af5f00; text-decoration: underline; }
-.muComment { color: #005faf; }
-.muS1Comment { color: #0000af; }
 .muS2Comment { color: #8a8a8a; }
 .CommentedCode { color: #8a8a8a; }
+.muComment { color: #005faf; }
+.muS1Comment { color: #0000af; }
+.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 -->
 </style>
 
diff --git a/html/linux/apps/raytracing/color.mu.html b/html/linux/apps/raytracing/color.mu.html
index dc60a456..0322ff11 100644
--- a/html/linux/apps/raytracing/color.mu.html
+++ b/html/linux/apps/raytracing/color.mu.html
@@ -15,15 +15,15 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
-.muRegEsi { color: #005faf; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEsi { color: #005faf; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
diff --git a/html/linux/apps/raytracing/ray.mu.html b/html/linux/apps/raytracing/ray.mu.html
index 5400c1f2..7074c088 100644
--- a/html/linux/apps/raytracing/ray.mu.html
+++ b/html/linux/apps/raytracing/ray.mu.html
@@ -15,12 +15,12 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
diff --git a/html/linux/apps/raytracing/vec.mu.html b/html/linux/apps/raytracing/vec.mu.html
index 9fe5b990..cd9cb99b 100644
--- a/html/linux/apps/raytracing/vec.mu.html
+++ b/html/linux/apps/raytracing/vec.mu.html
@@ -15,16 +15,16 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
 .muRegEcx { color: #870000; }
 .LineNr { }
+.Constant { color: #008787; }
+.CommentedCode { color: #8a8a8a; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muComment { color: #005faf; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .Special { color: #ff6060; }
-.muComment { color: #005faf; }
 -->
 </style>
 
diff --git a/html/linux/apps/rpn.mu.html b/html/linux/apps/rpn.mu.html
index b5aba508..7b0b9ad8 100644
--- a/html/linux/apps/rpn.mu.html
+++ b/html/linux/apps/rpn.mu.html
@@ -15,17 +15,17 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.muRegEdx { color: #af5f00; }
 .Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/texture.mu.html b/html/linux/apps/texture.mu.html
index c3f44607..11826b98 100644
--- a/html/linux/apps/texture.mu.html
+++ b/html/linux/apps/texture.mu.html
@@ -15,18 +15,18 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEsi { color: #005faf; }
+.muRegEdx { color: #af5f00; }
 .muRegEcx { color: #870000; }
 .Special { color: #ff6060; }
 .LineNr { }
-.CommentedCode { color: #8a8a8a; }
-.muRegEdi { color: #00af00; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEbx { color: #5f00ff; }
+.muRegEsi { color: #005faf; }
+.muRegEdi { color: #00af00; }
+.CommentedCode { color: #8a8a8a; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEdx { color: #af5f00; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
diff --git a/html/linux/apps/tui.mu.html b/html/linux/apps/tui.mu.html
index 82681e6a..81caaa41 100644
--- a/html/linux/apps/tui.mu.html
+++ b/html/linux/apps/tui.mu.html
@@ -15,14 +15,14 @@ body { font-size:12pt; font-family: monospace; color: #000000; background-color:
 a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .Special { color: #ff6060; }
 .LineNr { }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.muRegEbx { color: #5f00ff; }
 -->
 </style>
 
@@ -83,7 +83,7 @@ if ('onhashchange' in window) {
 <span id="L23" class="LineNr">23 </span>
 <span id="L24" class="LineNr">24 </span>  <a href='../405screen.mu.html#L169'>print-string</a> <span class="Constant">0</span>/screen, <span class="Constant">&quot;press a key to see its code: &quot;</span>
 <span id="L25" class="LineNr">25 </span>  <a href='../305keyboard.subx.html#L6'>enable-keyboard-immediate-mode</a>
-<span id="L26" class="LineNr">26 </span>  <span class="PreProc">var</span> x/eax: grapheme <span class="Special">&lt;-</span> <a href='../305keyboard.subx.html#L132'>read-key-from-real-keyboard</a>
+<span id="L26" class="LineNr">26 </span>  <span class="PreProc">var</span> x/eax: code-point-utf8 <span class="Special">&lt;-</span> <a href='../305keyboard.subx.html#L132'>read-key-from-real-keyboard</a>
 <span id="L27" class="LineNr">27 </span>  <a href='../305keyboard.subx.html#L72'>enable-keyboard-type-mode</a>
 <span id="L28" class="LineNr">28 </span>  <a href='../304screen.subx.html#L24'>enable-screen-type-mode</a>
 <span id="L29" class="LineNr">29 </span>  <a href='../405screen.mu.html#L169'>print-string</a> <span class="Constant">0</span>/screen, <span class="Constant">&quot;You pressed &quot;</span>