about summary refs log tree commit diff stats
path: root/html/apps
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2021-08-15 23:44:43 -0700
committerKartik Agaram <vc@akkartik.com>2021-08-15 23:44:43 -0700
commit52e3ea8a4bec791e4c2d64fb8aca9e26cdf60f25 (patch)
tree331a98b558b8d638348b3e93ce4ef036ae70130c /html/apps
parent8765064d6910c65ea5ed5526b27e9752df000c3d (diff)
downloadmu-52e3ea8a4bec791e4c2d64fb8aca9e26cdf60f25.tar.gz
.
Diffstat (limited to 'html/apps')
-rw-r--r--html/apps/color-game.mu.html25
-rw-r--r--html/apps/colors.mu.html36
-rw-r--r--html/apps/ex1.mu.html16
-rw-r--r--html/apps/ex10.mu.html26
-rw-r--r--html/apps/ex11.mu.html52
-rw-r--r--html/apps/ex12.mu.html20
-rw-r--r--html/apps/ex13.mu.html26
-rw-r--r--html/apps/ex2.mu.html20
-rw-r--r--html/apps/ex3.mu.html20
-rw-r--r--html/apps/ex4.mu.html16
-rw-r--r--html/apps/ex5.mu.html18
-rw-r--r--html/apps/ex6.mu.html30
-rw-r--r--html/apps/ex7.mu.html18
-rw-r--r--html/apps/ex8.mu.html18
-rw-r--r--html/apps/ex9.mu.html20
-rw-r--r--html/apps/hest-life.mu.html83
-rw-r--r--html/apps/life.mu.html89
-rw-r--r--html/apps/mandelbrot-fixed.mu.html24
-rw-r--r--html/apps/mandelbrot-silhouette.mu.html22
-rw-r--r--html/apps/mandelbrot.mu.html24
-rw-r--r--html/apps/rpn.mu.html28
21 files changed, 321 insertions, 310 deletions
diff --git a/html/apps/color-game.mu.html b/html/apps/color-game.mu.html
index 07fac07f..7838733a 100644
--- a/html/apps/color-game.mu.html
+++ b/html/apps/color-game.mu.html
@@ -1,36 +1,35 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/color-game.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.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; }
-.CommentedCode { color: #8a8a8a; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/colors.mu.html b/html/apps/colors.mu.html
index 2085fbdd..07a1aca3 100644
--- a/html/apps/colors.mu.html
+++ b/html/apps/colors.mu.html
@@ -1,35 +1,35 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/colors.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
+.muRegEcx { color: #870000; }
+.Delimiter { color: #c000c0; }
 .muFunction { color: #af5f00; text-decoration: underline; }
 .CommentedCode { color: #8a8a8a; }
-.Delimiter { color: #c000c0; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -114,10 +114,10 @@ if ('onhashchange' in window) {
 <span id="L51" class="LineNr"> 51 </span>    <span class="muComment"># another metric</span>
 <span id="L52" class="LineNr"> 52 </span>    <span class="PreProc">var</span> color/eax: int <span class="Special">&lt;-</span> <a href='../505colors.mu.html#L260'>nearest-color-euclidean-hsl</a> a, b, c
 <span id="L53" class="LineNr"> 53 </span>    <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x10</span>/x, <span class="Constant">0x26</span>/y
-<span id="L54" class="LineNr"> 54 </span>    <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;nearest (euclidean, h/s/l): &quot;</span>, <span class="Constant">0xf</span>/fg, <span class="Constant">0</span>/bg
-<span id="L55" class="LineNr"> 55 </span>    <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, color, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
-<span id="L56" class="LineNr"> 56 </span>    <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot; &quot;</span>, <span class="Constant">0xf</span>/fg, <span class="Constant">0</span>/bg
-<span id="L57" class="LineNr"> 57 </span>    <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;               &quot;</span>, <span class="Constant">0</span>/fg, color
+<span id="L54" class="LineNr"> 54 </span>    <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;nearest (euclidean, h/s/l): &quot;</span>, <span class="Constant">0xf</span>/fg, <span class="Constant">0</span>/bg
+<span id="L55" class="LineNr"> 55 </span>    <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, color, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
+<span id="L56" class="LineNr"> 56 </span>    <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot; &quot;</span>, <span class="Constant">0xf</span>/fg, <span class="Constant">0</span>/bg
+<span id="L57" class="LineNr"> 57 </span>    <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;               &quot;</span>, <span class="Constant">0</span>/fg, color
 <span id="L58" class="LineNr"> 58 </span>    <span class="muComment">#</span>
 <span id="L59" class="LineNr"> 59 </span>    <span class="PreProc">loop</span>
 <span id="L60" class="LineNr"> 60 </span>  <span class="Delimiter">}</span>
@@ -287,10 +287,10 @@ if ('onhashchange' in window) {
 <span id="L224" class="LineNr">224 </span>      compare c, l
 <span id="L225" class="LineNr">225 </span>      <span class="PreProc">break-if-!=</span>
 <span id="L226" class="LineNr">226 </span>      <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x10</span>/x, y
-<span id="L227" class="LineNr">227 </span>      <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, color, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
+<span id="L227" class="LineNr">227 </span>      <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, color, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
 <span id="L228" class="LineNr">228 </span>      <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x14</span>/x, y
-<span id="L229" class="LineNr">229 </span>      <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot; &quot;</span>, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
-<span id="L230" class="LineNr">230 </span>      <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;               &quot;</span>, <span class="Constant">0</span>/fg, color
+<span id="L229" class="LineNr">229 </span>      <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot; &quot;</span>, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
+<span id="L230" class="LineNr">230 </span>      <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;               &quot;</span>, <span class="Constant">0</span>/fg, color
 <span id="L231" class="LineNr">231 </span><span class="CommentedCode">#?       draw-text-wrapping-right-then-down-from-cursor-over-full-screen screen, &quot; &quot;, 7/fg, 0/bg</span>
 <span id="L232" class="LineNr">232 </span><span class="CommentedCode">#?       draw-int32-hex-wrapping-right-then-down-from-cursor-over-full-screen screen, a, 7/fg, 0/bg</span>
 <span id="L233" class="LineNr">233 </span><span class="CommentedCode">#?       draw-text-wrapping-right-then-down-from-cursor-over-full-screen screen, &quot; &quot;, 7/fg, 0/bg</span>
diff --git a/html/apps/ex1.mu.html b/html/apps/ex1.mu.html
index cc21ce0f..efd726ec 100644
--- a/html/apps/ex1.mu.html
+++ b/html/apps/ex1.mu.html
@@ -1,14 +1,14 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex1.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffd7; }
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
@@ -16,13 +16,13 @@ a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .PreProc { color: #c000c0; }
 .LineNr { }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex10.mu.html b/html/apps/ex10.mu.html
index 6f506cd3..a5f8b085 100644
--- a/html/apps/ex10.mu.html
+++ b/html/apps/ex10.mu.html
@@ -1,31 +1,31 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex10.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -86,15 +86,15 @@ if ('onhashchange' in window) {
 <span id="L27" class="LineNr">27 </span>    <span class="Delimiter">{</span>
 <span id="L28" class="LineNr">28 </span>      <span class="PreProc">var</span> dummy1/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L29" class="LineNr">29 </span>      <span class="PreProc">var</span> dummy2/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
-<span id="L30" class="LineNr">30 </span>      dummy1, dummy2 <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L256'>draw-text-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;         &quot;</span>, <span class="Constant">0</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
+<span id="L30" class="LineNr">30 </span>      dummy1, dummy2 <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L253'>draw-text-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;         &quot;</span>, <span class="Constant">0</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
 <span id="L31" class="LineNr">31 </span>    <span class="Delimiter">}</span>
 <span id="L32" class="LineNr">32 </span>    <span class="Delimiter">{</span>
 <span id="L33" class="LineNr">33 </span>      <span class="PreProc">var</span> dummy/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
-<span id="L34" class="LineNr">34 </span>      dx, dummy <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L364'>draw-int32-decimal-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, dx, <span class="Constant">0</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
+<span id="L34" class="LineNr">34 </span>      dx, dummy <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L361'>draw-int32-decimal-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, dx, <span class="Constant">0</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
 <span id="L35" class="LineNr">35 </span>    <span class="Delimiter">}</span>
 <span id="L36" class="LineNr">36 </span>    <span class="Delimiter">{</span>
 <span id="L37" class="LineNr">37 </span>      <span class="PreProc">var</span> dummy/eax: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
-<span id="L38" class="LineNr">38 </span>      dummy, dy <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L364'>draw-int32-decimal-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, dy, <span class="Constant">5</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
+<span id="L38" class="LineNr">38 </span>      dummy, dy <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L361'>draw-int32-decimal-wrapping-right-then-down-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, dy, <span class="Constant">5</span>/x, <span class="Constant">0x10</span>/y, <span class="Constant">0x31</span>/fg, <span class="Constant">0</span>/bg
 <span id="L39" class="LineNr">39 </span>    <span class="Delimiter">}</span>
 <span id="L40" class="LineNr">40 </span>    <span class="PreProc">loop</span>
 <span id="L41" class="LineNr">41 </span>  <span class="Delimiter">}</span>
diff --git a/html/apps/ex11.mu.html b/html/apps/ex11.mu.html
index e4ff1600..70b84f9e 100644
--- a/html/apps/ex11.mu.html
+++ b/html/apps/ex11.mu.html
@@ -1,35 +1,35 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex11.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.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; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -101,13 +101,13 @@ if ('onhashchange' in window) {
 <span id="L38" class="LineNr"> 38 </span>  <a href='../500fake-screen.mu.html#L251'>clear-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>
 <span id="L39" class="LineNr"> 39 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L40" class="LineNr"> 40 </span>  <span class="PreProc">var</span> tmp-ah/<span class="muRegEcx">ecx</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p0
-<span id="L41" class="LineNr"> 41 </span>  <span class="PreProc">var</span> tmp/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *tmp-ah
+<span id="L41" class="LineNr"> 41 </span>  <span class="PreProc">var</span> tmp/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *tmp-ah
 <span id="L42" class="LineNr"> 42 </span>  <span class="PreProc">var</span> p0/<span class="muRegEbx">ebx</span>: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> copy tmp
 <span id="L43" class="LineNr"> 43 </span>  tmp-ah <span class="Special">&lt;-</span> get self, p1
-<span id="L44" class="LineNr"> 44 </span>  tmp <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *tmp-ah
+<span id="L44" class="LineNr"> 44 </span>  tmp <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *tmp-ah
 <span id="L45" class="LineNr"> 45 </span>  <span class="PreProc">var</span> p1/<span class="muRegEdx">edx</span>: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> copy tmp
 <span id="L46" class="LineNr"> 46 </span>  tmp-ah <span class="Special">&lt;-</span> get self, p2
-<span id="L47" class="LineNr"> 47 </span>  tmp <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *tmp-ah
+<span id="L47" class="LineNr"> 47 </span>  tmp <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *tmp-ah
 <span id="L48" class="LineNr"> 48 </span>  <span class="PreProc">var</span> p2/<span class="muRegEcx">ecx</span>: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> copy tmp
 <span id="L49" class="LineNr"> 49 </span>  <span class="muComment"># control lines</span>
 <span id="L50" class="LineNr"> 50 </span>  <a href='ex11.mu.html#L216'>line</a>    <a href='../500fake-screen.mu.html#L14'>screen</a>, p0, p1,                 <span class="Constant">7</span>/color
@@ -120,7 +120,7 @@ if ('onhashchange' in window) {
 <span id="L57" class="LineNr"> 57 </span>  <a href='ex11.mu.html#L226'>disc</a>    <a href='../500fake-screen.mu.html#L14'>screen</a>, p2,           <span class="Constant">3</span>/radius, <span class="Constant">7</span>/color   <span class="Constant">0xf</span>/border
 <span id="L58" class="LineNr"> 58 </span>  <span class="muComment"># cursor last of all</span>
 <span id="L59" class="LineNr"> 59 </span>  <span class="PreProc">var</span> cursor-ah/eax: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
-<span id="L60" class="LineNr"> 60 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *cursor-ah
+<span id="L60" class="LineNr"> 60 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *cursor-ah
 <span id="L61" class="LineNr"> 61 </span>  <a href='ex11.mu.html#L77'>cursor</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <a href='ex11.mu.html#L77'>cursor</a>, <span class="Constant">0xa</span>/side, <span class="Constant">3</span>/color
 <span id="L62" class="LineNr"> 62 </span><span class="Delimiter">}</span>
 <span id="L63" class="LineNr"> 63 </span>
@@ -205,21 +205,21 @@ if ('onhashchange' in window) {
 <span id="L142" class="LineNr">142 </span>  <span class="PreProc">var</span> p1-ah/<span class="muRegEdx">edx</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p1
 <span id="L143" class="LineNr">143 </span>  <span class="PreProc">var</span> p2-ah/<span class="muRegEbx">ebx</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p2
 <span id="L144" class="LineNr">144 </span>  <span class="Delimiter">{</span>
-<span id="L145" class="LineNr">145 </span>    <span class="PreProc">var</span> p0?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L448'>handle-equal?</a> *p0-ah, *cursor-ah
+<span id="L145" class="LineNr">145 </span>    <span class="PreProc">var</span> p0?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L460'>handle-equal?</a> *p0-ah, *cursor-ah
 <span id="L146" class="LineNr">146 </span>    compare p0?, <span class="Constant">0</span>/false
 <span id="L147" class="LineNr">147 </span>    <span class="PreProc">break-if-=</span>
 <span id="L148" class="LineNr">148 </span>    copy-object p1-ah, cursor-ah
 <span id="L149" class="LineNr">149 </span>    <span class="PreProc">return</span>
 <span id="L150" class="LineNr">150 </span>  <span class="Delimiter">}</span>
 <span id="L151" class="LineNr">151 </span>  <span class="Delimiter">{</span>
-<span id="L152" class="LineNr">152 </span>    <span class="PreProc">var</span> p1?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L448'>handle-equal?</a> *p1-ah, *cursor-ah
+<span id="L152" class="LineNr">152 </span>    <span class="PreProc">var</span> p1?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L460'>handle-equal?</a> *p1-ah, *cursor-ah
 <span id="L153" class="LineNr">153 </span>    compare p1?, <span class="Constant">0</span>/false
 <span id="L154" class="LineNr">154 </span>    <span class="PreProc">break-if-=</span>
 <span id="L155" class="LineNr">155 </span>    copy-object p2-ah, cursor-ah
 <span id="L156" class="LineNr">156 </span>    <span class="PreProc">return</span>
 <span id="L157" class="LineNr">157 </span>  <span class="Delimiter">}</span>
 <span id="L158" class="LineNr">158 </span>  <span class="Delimiter">{</span>
-<span id="L159" class="LineNr">159 </span>    <span class="PreProc">var</span> p2?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L448'>handle-equal?</a> *p2-ah, *cursor-ah
+<span id="L159" class="LineNr">159 </span>    <span class="PreProc">var</span> p2?/eax: boolean <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L460'>handle-equal?</a> *p2-ah, *cursor-ah
 <span id="L160" class="LineNr">160 </span>    compare p2?, <span class="Constant">0</span>/false
 <span id="L161" class="LineNr">161 </span>    <span class="PreProc">break-if-=</span>
 <span id="L162" class="LineNr">162 </span>    copy-object p0-ah, cursor-ah
@@ -231,7 +231,7 @@ if ('onhashchange' in window) {
 <span id="L168" class="LineNr">168 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='ex11.mu.html#L168'>cursor-left</a></span> _self: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Delimiter">{</span>
 <span id="L169" class="LineNr">169 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L170" class="LineNr">170 </span>  <span class="PreProc">var</span> cursor-ah/<span class="muRegEsi">esi</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
-<span id="L171" class="LineNr">171 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *cursor-ah
+<span id="L171" class="LineNr">171 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *cursor-ah
 <span id="L172" class="LineNr">172 </span>  <span class="PreProc">var</span> cursor-x/eax: (addr int) <span class="Special">&lt;-</span> get <a href='ex11.mu.html#L77'>cursor</a>, x
 <span id="L173" class="LineNr">173 </span>  compare *cursor-x, <span class="Constant">0x20</span>
 <span id="L174" class="LineNr">174 </span>  <span class="Delimiter">{</span>
@@ -243,7 +243,7 @@ if ('onhashchange' in window) {
 <span id="L180" class="LineNr">180 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='ex11.mu.html#L180'>cursor-right</a></span> _self: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Delimiter">{</span>
 <span id="L181" class="LineNr">181 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L182" class="LineNr">182 </span>  <span class="PreProc">var</span> cursor-ah/<span class="muRegEsi">esi</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
-<span id="L183" class="LineNr">183 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *cursor-ah
+<span id="L183" class="LineNr">183 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *cursor-ah
 <span id="L184" class="LineNr">184 </span>  <span class="PreProc">var</span> cursor-x/eax: (addr int) <span class="Special">&lt;-</span> get <a href='ex11.mu.html#L77'>cursor</a>, x
 <span id="L185" class="LineNr">185 </span>  compare *cursor-x, <span class="Constant">0x3f0</span>
 <span id="L186" class="LineNr">186 </span>  <span class="Delimiter">{</span>
@@ -255,7 +255,7 @@ if ('onhashchange' in window) {
 <span id="L192" class="LineNr">192 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='ex11.mu.html#L192'>cursor-up</a></span> _self: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Delimiter">{</span>
 <span id="L193" class="LineNr">193 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L194" class="LineNr">194 </span>  <span class="PreProc">var</span> cursor-ah/<span class="muRegEsi">esi</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
-<span id="L195" class="LineNr">195 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *cursor-ah
+<span id="L195" class="LineNr">195 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *cursor-ah
 <span id="L196" class="LineNr">196 </span>  <span class="PreProc">var</span> cursor-y/eax: (addr int) <span class="Special">&lt;-</span> get <a href='ex11.mu.html#L77'>cursor</a>, y
 <span id="L197" class="LineNr">197 </span>  compare *cursor-y, <span class="Constant">0x20</span>
 <span id="L198" class="LineNr">198 </span>  <span class="Delimiter">{</span>
@@ -267,7 +267,7 @@ if ('onhashchange' in window) {
 <span id="L204" class="LineNr">204 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='ex11.mu.html#L204'>cursor-down</a></span> _self: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Delimiter">{</span>
 <span id="L205" class="LineNr">205 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L206" class="LineNr">206 </span>  <span class="PreProc">var</span> cursor-ah/<span class="muRegEsi">esi</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
-<span id="L207" class="LineNr">207 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *cursor-ah
+<span id="L207" class="LineNr">207 </span>  <span class="PreProc">var</span> <a href='ex11.mu.html#L77'>cursor</a>/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *cursor-ah
 <span id="L208" class="LineNr">208 </span>  <span class="PreProc">var</span> cursor-y/eax: (addr int) <span class="Special">&lt;-</span> get <a href='ex11.mu.html#L77'>cursor</a>, y
 <span id="L209" class="LineNr">209 </span>  compare *cursor-y, <span class="Constant">0x2f0</span>
 <span id="L210" class="LineNr">210 </span>  <span class="Delimiter">{</span>
@@ -297,15 +297,15 @@ if ('onhashchange' in window) {
 <span id="L234" class="LineNr">234 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='ex11.mu.html#L25'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L235" class="LineNr">235 </span>  <span class="PreProc">var</span> p0-ah/eax: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p0
 <span id="L236" class="LineNr">236 </span>  <a href='../120allocate.subx.html#L43'>allocate</a> p0-ah
-<span id="L237" class="LineNr">237 </span>  <span class="PreProc">var</span> p0/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *p0-ah
+<span id="L237" class="LineNr">237 </span>  <span class="PreProc">var</span> p0/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *p0-ah
 <span id="L238" class="LineNr">238 </span>  <a href='ex11.mu.html#L253'>initialize-point</a> p0, x0 y0
 <span id="L239" class="LineNr">239 </span>  <span class="PreProc">var</span> p1-ah/eax: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p1
 <span id="L240" class="LineNr">240 </span>  <a href='../120allocate.subx.html#L43'>allocate</a> p1-ah
-<span id="L241" class="LineNr">241 </span>  <span class="PreProc">var</span> p1/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *p1-ah
+<span id="L241" class="LineNr">241 </span>  <span class="PreProc">var</span> p1/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *p1-ah
 <span id="L242" class="LineNr">242 </span>  <a href='ex11.mu.html#L253'>initialize-point</a> p1, x1 y1
 <span id="L243" class="LineNr">243 </span>  <span class="PreProc">var</span> p2-ah/eax: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, p2
 <span id="L244" class="LineNr">244 </span>  <a href='../120allocate.subx.html#L43'>allocate</a> p2-ah
-<span id="L245" class="LineNr">245 </span>  <span class="PreProc">var</span> p2/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *p2-ah
+<span id="L245" class="LineNr">245 </span>  <span class="PreProc">var</span> p2/eax: (addr <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *p2-ah
 <span id="L246" class="LineNr">246 </span>  <a href='ex11.mu.html#L253'>initialize-point</a> p2, x2 y2
 <span id="L247" class="LineNr">247 </span>  <span class="muComment"># cursor initially at p0</span>
 <span id="L248" class="LineNr">248 </span>  <span class="PreProc">var</span> cursor-ah/<span class="muRegEdi">edi</span>: (addr handle <a href='ex11.mu.html#L32'>point</a>) <span class="Special">&lt;-</span> get self, <a href='ex11.mu.html#L77'>cursor</a>
diff --git a/html/apps/ex12.mu.html b/html/apps/ex12.mu.html
index b0b3a763..ccaaa9d9 100644
--- a/html/apps/ex12.mu.html
+++ b/html/apps/ex12.mu.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex12.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex13.mu.html b/html/apps/ex13.mu.html
index a5fc7c5e..fbe63285 100644
--- a/html/apps/ex13.mu.html
+++ b/html/apps/ex13.mu.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex13.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
+.Special { color: #ff6060; }
 .LineNr { }
-.muRegEsi { color: #005faf; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEbx { color: #5f00ff; }
+.muRegEsi { color: #005faf; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -72,11 +72,11 @@ if ('onhashchange' in window) {
 <span id="L12" class="LineNr">12 </span>  <span class="PreProc">var</span> img-storage: <a href='../511image.mu.html#L6'>image</a>
 <span id="L13" class="LineNr">13 </span>  <span class="PreProc">var</span> img/<span class="muRegEsi">esi</span>: (addr <a href='../511image.mu.html#L6'>image</a>) <span class="Special">&lt;-</span> address img-storage
 <span id="L14" class="LineNr">14 </span>  <a href='ex13.mu.html#L18'>load-image</a> img, data-disk
-<span id="L15" class="LineNr">15 </span>  <a href='../511image.mu.html#L53'>render-image</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, img, <span class="Constant">0</span>/x, <span class="Constant">0</span>/y, <span class="Constant">0x300</span>/width, <span class="Constant">0x300</span>/height
+<span id="L15" class="LineNr">15 </span>  <a href='../511image.mu.html#L55'>render-image</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, img, <span class="Constant">0</span>/x, <span class="Constant">0</span>/y, <span class="Constant">0x300</span>/width, <span class="Constant">0x300</span>/height
 <span id="L16" class="LineNr">16 </span><span class="Delimiter">}</span>
 <span id="L17" class="LineNr">17 </span>
 <span id="L18" class="LineNr">18 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='ex13.mu.html#L18'>load-image</a></span> self: (addr <a href='../511image.mu.html#L6'>image</a>), data-disk: (addr disk) <span class="Delimiter">{</span>
-<span id="L19" class="LineNr">19 </span>  <span class="PreProc">var</span> s-storage: (stream byte <span class="Constant">0x200000</span>)  <span class="muComment"># 512* 0x1000 sectors</span>
+<span id="L19" class="LineNr">19 </span>  <span class="PreProc">var</span> s-storage: (stream byte <span class="Constant">0x200000</span>)  <span class="muComment"># 512 * 0x1000 sectors</span>
 <span id="L20" class="LineNr">20 </span>  <span class="PreProc">var</span> s/<span class="muRegEbx">ebx</span>: (addr stream byte) <span class="Special">&lt;-</span> address s-storage
 <span id="L21" class="LineNr">21 </span>  <a href='../510disk.mu.html#L1'>load-sectors</a> data-disk, <span class="Constant">0</span>/lba, <span class="Constant">0x1000</span>/sectors, s
 <span id="L22" class="LineNr">22 </span>  <a href='../511image.mu.html#L17'>initialize-image</a> self, s
diff --git a/html/apps/ex2.mu.html b/html/apps/ex2.mu.html
index 6bd96247..01d24f23 100644
--- a/html/apps/ex2.mu.html
+++ b/html/apps/ex2.mu.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex2.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex3.mu.html b/html/apps/ex3.mu.html
index 864032ce..033b09df 100644
--- a/html/apps/ex3.mu.html
+++ b/html/apps/ex3.mu.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex3.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex4.mu.html b/html/apps/ex4.mu.html
index eb7ee20a..9113dde4 100644
--- a/html/apps/ex4.mu.html
+++ b/html/apps/ex4.mu.html
@@ -1,14 +1,14 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex4.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffd7; }
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #ffffd7; }
@@ -17,13 +17,13 @@ a { color:inherit; }
 .PreProc { color: #c000c0; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex5.mu.html b/html/apps/ex5.mu.html
index 5c4ede6e..76d992cf 100644
--- a/html/apps/ex5.mu.html
+++ b/html/apps/ex5.mu.html
@@ -1,30 +1,30 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex5.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex6.mu.html b/html/apps/ex6.mu.html
index aa159ad5..3d9ae0a2 100644
--- a/html/apps/ex6.mu.html
+++ b/html/apps/ex6.mu.html
@@ -1,31 +1,31 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex6.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -79,15 +79,15 @@ if ('onhashchange' in window) {
 <span id="L20" class="LineNr">20 </span>  x, y <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L174'>draw-text-wrapping-right-then-down</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;Mu!&quot;</span>,        <span class="Constant">0x10</span>/xmin, <span class="Constant">0x20</span>/ymin, <span class="Constant">0x78</span>/xmax, <span class="Constant">0x50</span>/ymax, x, y, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
 <span id="L21" class="LineNr">21 </span>
 <span id="L22" class="LineNr">22 </span>  <span class="muComment"># drawing at the cursor in multiple directions</span>
-<span id="L23" class="LineNr">23 </span>  <a href='../501draw-text.mu.html#L493'>draw-text-wrapping-down-then-right-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;abc&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
-<span id="L24" class="LineNr">24 </span>  <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;def&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
+<span id="L23" class="LineNr">23 </span>  <a href='../501draw-text.mu.html#L490'>draw-text-wrapping-down-then-right-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;abc&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
+<span id="L24" class="LineNr">24 </span>  <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;def&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
 <span id="L25" class="LineNr">25 </span>
 <span id="L26" class="LineNr">26 </span>  <span class="muComment"># test drawing near the edge</span>
 <span id="L27" class="LineNr">27 </span>  x <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L100'>draw-text-rightward</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;R&quot;</span>, <span class="Constant">0x7f</span>/x, <span class="Constant">0x80</span>/xmax=screen-width, <span class="Constant">0x18</span>/y, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
-<span id="L28" class="LineNr">28 </span>  <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;wrapped from R&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
+<span id="L28" class="LineNr">28 </span>  <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;wrapped from R&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
 <span id="L29" class="LineNr">29 </span>
-<span id="L30" class="LineNr">30 </span>  x <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L399'>draw-text-downward</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;D&quot;</span>, <span class="Constant">0x20</span>/x, <span class="Constant">0x2f</span>/y, <span class="Constant">0x30</span>/ymax=screen-height, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
-<span id="L31" class="LineNr">31 </span>  <a href='../501draw-text.mu.html#L493'>draw-text-wrapping-down-then-right-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;wrapped from D&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
+<span id="L30" class="LineNr">30 </span>  x <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L396'>draw-text-downward</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;D&quot;</span>, <span class="Constant">0x20</span>/x, <span class="Constant">0x2f</span>/y, <span class="Constant">0x30</span>/ymax=screen-height, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
+<span id="L31" class="LineNr">31 </span>  <a href='../501draw-text.mu.html#L490'>draw-text-wrapping-down-then-right-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;wrapped from D&quot;</span>, <span class="Constant">0xa</span>/fg, <span class="Constant">0</span>/bg
 <span id="L32" class="LineNr">32 </span><span class="Delimiter">}</span>
 </pre>
 </body>
diff --git a/html/apps/ex7.mu.html b/html/apps/ex7.mu.html
index 2c99ddf5..416ced89 100644
--- a/html/apps/ex7.mu.html
+++ b/html/apps/ex7.mu.html
@@ -1,30 +1,30 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex7.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex8.mu.html b/html/apps/ex8.mu.html
index d218205a..1e920f16 100644
--- a/html/apps/ex8.mu.html
+++ b/html/apps/ex8.mu.html
@@ -1,30 +1,30 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex8.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
+.Special { color: #ff6060; }
 .LineNr { }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/ex9.mu.html b/html/apps/ex9.mu.html
index 6fa4649b..0c6e5028 100644
--- a/html/apps/ex9.mu.html
+++ b/html/apps/ex9.mu.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/ex9.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
 .Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
+.muRegEdi { color: #00af00; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/hest-life.mu.html b/html/apps/hest-life.mu.html
index 2fb30163..f6a7de88 100644
--- a/html/apps/hest-life.mu.html
+++ b/html/apps/hest-life.mu.html
@@ -1,36 +1,36 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/hest-life.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.CommentedCode { color: #8a8a8a; }
-.muRegEcx { color: #870000; }
+.muRegEbx { color: #5f00ff; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
+.Constant { color: #008787; }
+.CommentedCode { color: #8a8a8a; }
 .muRegEsi { color: #005faf; }
 .muRegEdi { color: #00af00; }
-.Constant { color: #008787; }
-.muFunction { color: #af5f00; text-decoration: underline; }
-.muRegEbx { color: #5f00ff; }
+.muRegEcx { color: #870000; }
 .Delimiter { color: #c000c0; }
+.muFunction { color: #af5f00; text-decoration: underline; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -106,7 +106,7 @@ if ('onhashchange' in window) {
 <span id="L42" class="LineNr">  42 </span>      <a href='../500fake-screen.mu.html#L588'>convert-graphemes-to-pixels</a> second-screen
 <span id="L43" class="LineNr">  43 </span>      <a href='../500fake-screen.mu.html#L548'>copy-pixels</a> second-screen, <a href='../500fake-screen.mu.html#L14'>screen</a>
 <span id="L44" class="LineNr">  44 </span>    <span class="Delimiter">}</span>
-<span id="L45" class="LineNr">  45 </span>    <a href='hest-life.mu.html#L1019'>linger</a> env
+<span id="L45" class="LineNr">  45 </span>    <a href='hest-life.mu.html#L1019'>linger</a>
 <span id="L46" class="LineNr">  46 </span>    <span class="PreProc">loop</span>
 <span id="L47" class="LineNr">  47 </span>  <span class="Delimiter">}</span>
 <span id="L48" class="LineNr">  48 </span><span class="Delimiter">}</span>
@@ -147,7 +147,7 @@ if ('onhashchange' in window) {
 <span id="L83" class="LineNr">  83 </span>  <span class="muComment"># clock</span>
 <span id="L84" class="LineNr">  84 </span>  <span class="PreProc">var</span> tick-a/eax: (addr int) <span class="Special">&lt;-</span> get self, tick
 <span id="L85" class="LineNr">  85 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x78</span>/x, <span class="Constant">0</span>/y
-<span id="L86" class="LineNr">  86 </span>  <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, *tick-a, <span class="Constant">7</span>/fg <span class="Constant">0</span>/bg
+<span id="L86" class="LineNr">  86 </span>  <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, *tick-a, <span class="Constant">7</span>/fg <span class="Constant">0</span>/bg
 <span id="L87" class="LineNr">  87 </span><span class="Delimiter">}</span>
 <span id="L88" class="LineNr">  88 </span>
 <span id="L89" class="LineNr">  89 </span><span class="muComment"># Lots of hardcoded constants for now.</span>
@@ -181,7 +181,7 @@ if ('onhashchange' in window) {
 <span id="L117" class="LineNr"> 117 </span>  <span class="muComment"># sum node</span>
 <span id="L118" class="LineNr"> 118 </span>  <a href='../507line.mu.html#L86'>draw-rect</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x170</span>/xsmin <span class="Constant">0x140</span>/ysmin,  <span class="Constant">0x190</span>/xsmax <span class="Constant">0x160</span>/ysmax, <span class="Constant">0x40</span>/color
 <span id="L119" class="LineNr"> 119 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x2d</span>/scol, <span class="Constant">0x13</span>/srow
-<span id="L120" class="LineNr"> 120 </span>  <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;+&quot;</span>, <span class="Constant">0xf</span>/color, <span class="Constant">0</span>/bg
+<span id="L120" class="LineNr"> 120 </span>  <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;+&quot;</span>, <span class="Constant">0xf</span>/color, <span class="Constant">0</span>/bg
 <span id="L121" class="LineNr"> 121 </span>  <span class="muComment"># conveyors from neighboring inputs to sum node</span>
 <span id="L122" class="LineNr"> 122 </span>  <a href='../509bezier.mu.html#L14'>draw-monotonic-bezier</a> <a href='../500fake-screen.mu.html#L14'>screen</a>,  <span class="Constant">0xa0</span>/x0  <span class="Constant">0x20</span>/y0,  <span class="Constant">0x100</span>/x1 <span class="Constant">0x150</span>/ys,  <span class="Constant">0x180</span>/xs <span class="Constant">0x150</span>/ys,  <span class="Constant">4</span>/color
 <span id="L123" class="LineNr"> 123 </span>  <a href='../509bezier.mu.html#L14'>draw-monotonic-bezier</a> <a href='../500fake-screen.mu.html#L14'>screen</a>,  <span class="Constant">0xa0</span>/x0 <span class="Constant">0x180</span>/y0,   <span class="Constant">0xc0</span>/x1 <span class="Constant">0x150</span>/ys,  <span class="Constant">0x180</span>/xs <span class="Constant">0x150</span>/ys,  <span class="Constant">4</span>/color
@@ -194,7 +194,7 @@ if ('onhashchange' in window) {
 <span id="L130" class="LineNr"> 130 </span>  <span class="muComment"># filter node</span>
 <span id="L131" class="LineNr"> 131 </span>  <a href='../507line.mu.html#L86'>draw-rect</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x200</span>/xfmin <span class="Constant">0x1c0</span>/yfmin, <span class="Constant">0x220</span>/xfmax <span class="Constant">0x1e0</span>/yfmax, <span class="Constant">0x31</span>/color
 <span id="L132" class="LineNr"> 132 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x40</span>/fcol, <span class="Constant">0x1b</span>/frow
-<span id="L133" class="LineNr"> 133 </span>  <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;?&quot;</span>, <span class="Constant">0xf</span>/color, <span class="Constant">0</span>/bg
+<span id="L133" class="LineNr"> 133 </span>  <a href='../501draw-text.mu.html#L276'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">&quot;?&quot;</span>, <span class="Constant">0xf</span>/color, <span class="Constant">0</span>/bg
 <span id="L134" class="LineNr"> 134 </span>  <span class="muComment"># conveyor from sum node to filter node</span>
 <span id="L135" class="LineNr"> 135 </span>  <a href='../507line.mu.html#L1'>draw-line</a> <a href='../500fake-screen.mu.html#L14'>screen</a> <span class="Constant">0x180</span>/xs, <span class="Constant">0x150</span>/ys, <span class="Constant">0x210</span>/xf, <span class="Constant">0x1d0</span>/yf, <span class="Constant">0xa2</span>/color
 <span id="L136" class="LineNr"> 136 </span>  <span class="muComment"># cell outputs at corners</span>
@@ -253,7 +253,7 @@ if ('onhashchange' in window) {
 <span id="L189" class="LineNr"> 189 </span>    <a href='hest-life.mu.html#L588'>draw-linear-point</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, u, <span class="Constant">0x180</span>/xs, <span class="Constant">0x150</span>/ys, <span class="Constant">0x210</span>/xf, <span class="Constant">0x1d0</span>/yf, <span class="Constant">7</span>/color, <span class="Constant">4</span>/radius
 <span id="L190" class="LineNr"> 190 </span>    <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x3a</span>/scol, <span class="Constant">0x18</span>/srow
 <span id="L191" class="LineNr"> 191 </span>    <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='hest-life.mu.html#L953'>num-live-neighbors</a> self, <span class="Constant">0x80</span>/curx, <span class="Constant">0x60</span>/cury
-<span id="L192" class="LineNr"> 192 </span>    <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
+<span id="L192" class="LineNr"> 192 </span>    <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
 <span id="L193" class="LineNr"> 193 </span>    <span class="PreProc">return</span>
 <span id="L194" class="LineNr"> 194 </span>  <span class="Delimiter">}</span>
 <span id="L195" class="LineNr"> 195 </span>  <span class="muComment"># final 7 time steps for updating output</span>
@@ -370,16 +370,16 @@ if ('onhashchange' in window) {
 <span id="L306" class="LineNr"> 306 </span>  <span class="muComment"># neighbor counts</span>
 <span id="L307" class="LineNr"> 307 </span>  <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='hest-life.mu.html#L953'>num-live-neighbors</a> self, <span class="Constant">0x80</span>/curx, <span class="Constant">0x60</span>/cury
 <span id="L308" class="LineNr"> 308 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x2d</span>, <span class="Constant">0xe</span>
-<span id="L309" class="LineNr"> 309 </span>  <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
+<span id="L309" class="LineNr"> 309 </span>  <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
 <span id="L310" class="LineNr"> 310 </span>  <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='hest-life.mu.html#L953'>num-live-neighbors</a> self, <span class="Constant">0x81</span>/curx, <span class="Constant">0x60</span>/cury
 <span id="L311" class="LineNr"> 311 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x52</span>, <span class="Constant">0xe</span>
-<span id="L312" class="LineNr"> 312 </span>  <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
+<span id="L312" class="LineNr"> 312 </span>  <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
 <span id="L313" class="LineNr"> 313 </span>  <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='hest-life.mu.html#L953'>num-live-neighbors</a> self, <span class="Constant">0x80</span>/curx, <span class="Constant">0x61</span>/cury
 <span id="L314" class="LineNr"> 314 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x2d</span>, <span class="Constant">0x20</span>
-<span id="L315" class="LineNr"> 315 </span>  <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
+<span id="L315" class="LineNr"> 315 </span>  <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
 <span id="L316" class="LineNr"> 316 </span>  <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='hest-life.mu.html#L953'>num-live-neighbors</a> self, <span class="Constant">0x81</span>/curx, <span class="Constant">0x61</span>/cury
 <span id="L317" class="LineNr"> 317 </span>  <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">0x52</span>, <span class="Constant">0x20</span>
-<span id="L318" class="LineNr"> 318 </span>  <a href='../501draw-text.mu.html#L387'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
+<span id="L318" class="LineNr"> 318 </span>  <a href='../501draw-text.mu.html#L384'>draw-int32-decimal-wrapping-right-then-down-from-cursor-over-full-screen</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, n, <span class="Constant">0xf</span>/fg <span class="Constant">0</span>/bg
 <span id="L319" class="LineNr"> 319 </span>  <span class="muComment"># cell 0: conveyors from neighboring inputs to sum node</span>
 <span id="L320" class="LineNr"> 320 </span>  <a href='../509bezier.mu.html#L14'>draw-monotonic-bezier</a> <a href='../500fake-screen.mu.html#L14'>screen</a>,  <span class="Constant">0xc0</span>/x0  <span class="Constant">0x40</span>/y0,  <span class="Constant">0x100</span>/x1  <span class="Constant">0xd0</span>/ys, <span class="Constant">0x150</span>/xs  <span class="Constant">0xd0</span>/ys,  <span class="Constant">4</span>/color
 <span id="L321" class="LineNr"> 321 </span>  <a href='../509bezier.mu.html#L14'>draw-monotonic-bezier</a> <a href='../500fake-screen.mu.html#L14'>screen</a>,  <span class="Constant">0xc0</span>/x0  <span class="Constant">0xe8</span>/y0,   <span class="Constant">0xc0</span>/x1  <span class="Constant">0xd0</span>/ys, <span class="Constant">0x150</span>/xs  <span class="Constant">0xd0</span>/ys,  <span class="Constant">4</span>/color
@@ -787,7 +787,7 @@ if ('onhashchange' in window) {
 <span id="L723" class="LineNr"> 723 </span>  copy-to *play?, <span class="Constant">1</span>/true
 <span id="L724" class="LineNr"> 724 </span>  <span class="PreProc">var</span> data-ah/eax: (addr handle array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> get self, data
 <span id="L725" class="LineNr"> 725 </span>  populate data-ah, <span class="Constant">0x100</span>
-<span id="L726" class="LineNr"> 726 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L726" class="LineNr"> 726 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L727" class="LineNr"> 727 </span>  <span class="PreProc">var</span> y/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L728" class="LineNr"> 728 </span>  <span class="Delimiter">{</span>
 <span id="L729" class="LineNr"> 729 </span>    compare y, <span class="Constant">0xc0</span>
@@ -811,13 +811,13 @@ if ('onhashchange' in window) {
 <span id="L747" class="LineNr"> 747 </span>  copy-to *tick, <span class="Constant">0</span>
 <span id="L748" class="LineNr"> 748 </span>  <span class="muComment"># don't touch zoom or play settings</span>
 <span id="L749" class="LineNr"> 749 </span>  <span class="PreProc">var</span> data-ah/eax: (addr handle array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> get self, data
-<span id="L750" class="LineNr"> 750 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L750" class="LineNr"> 750 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L751" class="LineNr"> 751 </span>  <span class="PreProc">var</span> y/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L752" class="LineNr"> 752 </span>  <span class="Delimiter">{</span>
 <span id="L753" class="LineNr"> 753 </span>    compare y, <span class="Constant">0xc0</span>
 <span id="L754" class="LineNr"> 754 </span>    <span class="PreProc">break-if-&gt;=</span>
 <span id="L755" class="LineNr"> 755 </span>    <span class="PreProc">var</span> row-ah/eax: (addr handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index data, y
-<span id="L756" class="LineNr"> 756 </span>    <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *row-ah
+<span id="L756" class="LineNr"> 756 </span>    <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *row-ah
 <span id="L757" class="LineNr"> 757 </span>    <span class="PreProc">var</span> x/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L758" class="LineNr"> 758 </span>    <span class="Delimiter">{</span>
 <span id="L759" class="LineNr"> 759 </span>      compare x, <span class="Constant">0x100</span>
@@ -841,10 +841,10 @@ if ('onhashchange' in window) {
 <span id="L777" class="LineNr"> 777 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='hest-life.mu.html#L777'>set</a></span> _self: (addr <a href='hest-life.mu.html#L50'>environment</a>), _x: int, _y: int, _val: boolean <span class="Delimiter">{</span>
 <span id="L778" class="LineNr"> 778 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='hest-life.mu.html#L50'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L779" class="LineNr"> 779 </span>  <span class="PreProc">var</span> data-ah/eax: (addr handle array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> get self, data
-<span id="L780" class="LineNr"> 780 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L780" class="LineNr"> 780 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L781" class="LineNr"> 781 </span>  <span class="PreProc">var</span> y/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy _y
 <span id="L782" class="LineNr"> 782 </span>  <span class="PreProc">var</span> row-ah/eax: (addr handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index data, y
-<span id="L783" class="LineNr"> 783 </span>  <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *row-ah
+<span id="L783" class="LineNr"> 783 </span>  <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *row-ah
 <span id="L784" class="LineNr"> 784 </span>  <span class="PreProc">var</span> x/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy _x
 <span id="L785" class="LineNr"> 785 </span>  <span class="PreProc">var</span> <a href='hest-life.mu.html#L58'>cell</a>/eax: (addr <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index row, x
 <span id="L786" class="LineNr"> 786 </span>  <span class="PreProc">var</span> dest/eax: (addr boolean) <span class="Special">&lt;-</span> get <a href='hest-life.mu.html#L58'>cell</a>, next
@@ -878,9 +878,9 @@ if ('onhashchange' in window) {
 <span id="L814" class="LineNr"> 814 </span>    <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L815" class="LineNr"> 815 </span>  <span class="Delimiter">}</span>
 <span id="L816" class="LineNr"> 816 </span>  <span class="PreProc">var</span> data-ah/eax: (addr handle array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> get self, data
-<span id="L817" class="LineNr"> 817 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L817" class="LineNr"> 817 </span>  <span class="PreProc">var</span> data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L818" class="LineNr"> 818 </span>  <span class="PreProc">var</span> row-ah/eax: (addr handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index data, y
-<span id="L819" class="LineNr"> 819 </span>  <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *row-ah
+<span id="L819" class="LineNr"> 819 </span>  <span class="PreProc">var</span> row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *row-ah
 <span id="L820" class="LineNr"> 820 </span>  <span class="PreProc">var</span> <a href='hest-life.mu.html#L58'>cell</a>/eax: (addr <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index row, x
 <span id="L821" class="LineNr"> 821 </span>  <span class="PreProc">var</span> src/eax: (addr boolean) <span class="Special">&lt;-</span> get <a href='hest-life.mu.html#L58'>cell</a>, curr
 <span id="L822" class="LineNr"> 822 </span>  <span class="PreProc">return</span> *src
@@ -901,14 +901,14 @@ if ('onhashchange' in window) {
 <span id="L837" class="LineNr"> 837 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='hest-life.mu.html#L837'>flush</a></span>  _self: (addr <a href='hest-life.mu.html#L50'>environment</a>) <span class="Delimiter">{</span>
 <span id="L838" class="LineNr"> 838 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='hest-life.mu.html#L50'>environment</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L839" class="LineNr"> 839 </span>  <span class="PreProc">var</span> data-ah/eax: (addr handle array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> get self, data
-<span id="L840" class="LineNr"> 840 </span>  <span class="PreProc">var</span> _data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L840" class="LineNr"> 840 </span>  <span class="PreProc">var</span> _data/eax: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L841" class="LineNr"> 841 </span>  <span class="PreProc">var</span> data/<span class="muRegEsi">esi</span>: (addr array handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> copy _data
 <span id="L842" class="LineNr"> 842 </span>  <span class="PreProc">var</span> y/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L843" class="LineNr"> 843 </span>  <span class="Delimiter">{</span>
 <span id="L844" class="LineNr"> 844 </span>    compare y, <span class="Constant">0xc0</span>/height
 <span id="L845" class="LineNr"> 845 </span>    <span class="PreProc">break-if-&gt;=</span>
 <span id="L846" class="LineNr"> 846 </span>    <span class="PreProc">var</span> row-ah/eax: (addr handle array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> index data, y
-<span id="L847" class="LineNr"> 847 </span>    <span class="PreProc">var</span> _row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *row-ah
+<span id="L847" class="LineNr"> 847 </span>    <span class="PreProc">var</span> _row/eax: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *row-ah
 <span id="L848" class="LineNr"> 848 </span>    <span class="PreProc">var</span> row/<span class="muRegEbx">ebx</span>: (addr array <a href='hest-life.mu.html#L58'>cell</a>) <span class="Special">&lt;-</span> copy _row
 <span id="L849" class="LineNr"> 849 </span>    <span class="PreProc">var</span> x/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L850" class="LineNr"> 850 </span>    <span class="Delimiter">{</span>
@@ -1080,17 +1080,16 @@ if ('onhashchange' in window) {
 <span id="L1016" class="LineNr">1016 </span>  <span class="PreProc">return</span> result
 <span id="L1017" class="LineNr">1017 </span><span class="Delimiter">}</span>
 <span id="L1018" class="LineNr">1018 </span>
-<span id="L1019" class="LineNr">1019 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='hest-life.mu.html#L1019'>linger</a></span> _self: (addr <a href='hest-life.mu.html#L50'>environment</a>) <span class="Delimiter">{</span>
-<span id="L1020" class="LineNr">1020 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='hest-life.mu.html#L50'>environment</a>) <span class="Special">&lt;-</span> copy _self
-<span id="L1021" class="LineNr">1021 </span>  <span class="PreProc">var</span> i/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
-<span id="L1022" class="LineNr">1022 </span>  <span class="Delimiter">{</span>
-<span id="L1023" class="LineNr">1023 </span>    compare i, <span class="Constant">0x10000000</span>  <span class="muComment"># Kartik's Linux with -enable-kvm</span>
-<span id="L1024" class="LineNr">1024 </span><span class="CommentedCode">#?     compare i, 0x8000000  # Kartik's Mac with -accel tcg</span>
-<span id="L1025" class="LineNr">1025 </span>    <span class="PreProc">break-if-&gt;=</span>
-<span id="L1026" class="LineNr">1026 </span>    i <span class="Special">&lt;-</span> increment
-<span id="L1027" class="LineNr">1027 </span>    <span class="PreProc">loop</span>
-<span id="L1028" class="LineNr">1028 </span>  <span class="Delimiter">}</span>
-<span id="L1029" class="LineNr">1029 </span><span class="Delimiter">}</span>
+<span id="L1019" class="LineNr">1019 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='hest-life.mu.html#L1019'>linger</a></span> <span class="Delimiter">{</span>
+<span id="L1020" class="LineNr">1020 </span>  <span class="PreProc">var</span> i/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
+<span id="L1021" class="LineNr">1021 </span>  <span class="Delimiter">{</span>
+<span id="L1022" class="LineNr">1022 </span>    compare i, <span class="Constant">0x10000000</span>  <span class="muComment"># Kartik's Linux with -accel kvm</span>
+<span id="L1023" class="LineNr">1023 </span><span class="CommentedCode">#?     compare i, 0x8000000  # Kartik's Mac with -accel tcg</span>
+<span id="L1024" class="LineNr">1024 </span>    <span class="PreProc">break-if-&gt;=</span>
+<span id="L1025" class="LineNr">1025 </span>    i <span class="Special">&lt;-</span> increment
+<span id="L1026" class="LineNr">1026 </span>    <span class="PreProc">loop</span>
+<span id="L1027" class="LineNr">1027 </span>  <span class="Delimiter">}</span>
+<span id="L1028" class="LineNr">1028 </span><span class="Delimiter">}</span>
 </pre>
 </body>
 </html>
diff --git a/html/apps/life.mu.html b/html/apps/life.mu.html
index cc262c2d..af4a479a 100644
--- a/html/apps/life.mu.html
+++ b/html/apps/life.mu.html
@@ -1,36 +1,36 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/life.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
+.muRegEdi { color: #00af00; }
+.muRegEcx { color: #870000; }
+.Delimiter { color: #c000c0; }
 .muFunction { color: #af5f00; text-decoration: underline; }
 .CommentedCode { color: #8a8a8a; }
-.Delimiter { color: #c000c0; }
 .muComment { color: #005faf; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -81,18 +81,18 @@ if ('onhashchange' in window) {
 <span id="L17" class="LineNr"> 17 </span>    <span class="PreProc">break-if-&gt;=</span>
 <span id="L18" class="LineNr"> 18 </span>    <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L19" class="LineNr"> 19 </span>  <span class="Delimiter">}</span>
-<span id="L20" class="LineNr"> 20 </span>  compare x, <span class="Constant">0x100</span>/width
+<span id="L20" class="LineNr"> 20 </span>  compare x, <span class="Constant">0x80</span>/width
 <span id="L21" class="LineNr"> 21 </span>  <span class="Delimiter">{</span>
 <span id="L22" class="LineNr"> 22 </span>    <span class="PreProc">break-if-&lt;</span>
 <span id="L23" class="LineNr"> 23 </span>    <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L24" class="LineNr"> 24 </span>  <span class="Delimiter">}</span>
-<span id="L25" class="LineNr"> 25 </span>  compare y, <span class="Constant">0xc0</span>/height
+<span id="L25" class="LineNr"> 25 </span>  compare y, <span class="Constant">0x60</span>/height
 <span id="L26" class="LineNr"> 26 </span>  <span class="Delimiter">{</span>
 <span id="L27" class="LineNr"> 27 </span>    <span class="PreProc">break-if-&lt;</span>
 <span id="L28" class="LineNr"> 28 </span>    <span class="PreProc">return</span> <span class="Constant">0</span>/false
 <span id="L29" class="LineNr"> 29 </span>  <span class="Delimiter">}</span>
 <span id="L30" class="LineNr"> 30 </span>  <span class="PreProc">var</span> idx/eax: int <span class="Special">&lt;-</span> copy y
-<span id="L31" class="LineNr"> 31 </span>  idx <span class="Special">&lt;-</span> shift-left <span class="Constant">8</span>/log2width
+<span id="L31" class="LineNr"> 31 </span>  idx <span class="Special">&lt;-</span> shift-left <span class="Constant">7</span>/log2width
 <span id="L32" class="LineNr"> 32 </span>  idx <span class="Special">&lt;-</span> add x
 <span id="L33" class="LineNr"> 33 </span>  <span class="PreProc">var</span> grid/<span class="muRegEsi">esi</span>: (addr array boolean) <span class="Special">&lt;-</span> copy _grid
 <span id="L34" class="LineNr"> 34 </span>  <span class="PreProc">var</span> result/eax: (addr boolean) <span class="Special">&lt;-</span> index grid, idx
@@ -102,7 +102,7 @@ if ('onhashchange' in window) {
 <span id="L38" class="LineNr"> 38 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='life.mu.html#L38'>set-state</a></span> _grid: (addr array boolean), x: int, y: int, val: boolean <span class="Delimiter">{</span>
 <span id="L39" class="LineNr"> 39 </span>  <span class="muComment"># don't bother checking bounds</span>
 <span id="L40" class="LineNr"> 40 </span>  <span class="PreProc">var</span> idx/eax: int <span class="Special">&lt;-</span> copy y
-<span id="L41" class="LineNr"> 41 </span>  idx <span class="Special">&lt;-</span> shift-left <span class="Constant">8</span>/log2width
+<span id="L41" class="LineNr"> 41 </span>  idx <span class="Special">&lt;-</span> shift-left <span class="Constant">7</span>/log2width
 <span id="L42" class="LineNr"> 42 </span>  idx <span class="Special">&lt;-</span> add x
 <span id="L43" class="LineNr"> 43 </span>  <span class="PreProc">var</span> grid/<span class="muRegEsi">esi</span>: (addr array boolean) <span class="Special">&lt;-</span> copy _grid
 <span id="L44" class="LineNr"> 44 </span>  <span class="PreProc">var</span> result/eax: (addr boolean) <span class="Special">&lt;-</span> index grid, idx
@@ -178,11 +178,11 @@ if ('onhashchange' in window) {
 <span id="L114" class="LineNr">114 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='life.mu.html#L114'>step</a></span> old-grid: (addr array boolean), new-grid: (addr array boolean) <span class="Delimiter">{</span>
 <span id="L115" class="LineNr">115 </span>  <span class="PreProc">var</span> y/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L116" class="LineNr">116 </span>  <span class="Delimiter">{</span>
-<span id="L117" class="LineNr">117 </span>    compare y, <span class="Constant">0xc0</span>/height
+<span id="L117" class="LineNr">117 </span>    compare y, <span class="Constant">0x60</span>/height
 <span id="L118" class="LineNr">118 </span>    <span class="PreProc">break-if-&gt;=</span>
 <span id="L119" class="LineNr">119 </span>    <span class="PreProc">var</span> x/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
 <span id="L120" class="LineNr">120 </span>    <span class="Delimiter">{</span>
-<span id="L121" class="LineNr">121 </span>      compare x, <span class="Constant">0x100</span>/width
+<span id="L121" class="LineNr">121 </span>      compare x, <span class="Constant">0x80</span>/width
 <span id="L122" class="LineNr">122 </span>      <span class="PreProc">break-if-&gt;=</span>
 <span id="L123" class="LineNr">123 </span>      <span class="PreProc">var</span> n/eax: int <span class="Special">&lt;-</span> <a href='life.mu.html#L49'>num-live-neighbors</a> old-grid, x, y
 <span id="L124" class="LineNr">124 </span>      <span class="muComment"># if neighbors &lt; 2, die of loneliness</span>
@@ -221,9 +221,9 @@ if ('onhashchange' in window) {
 <span id="L157" class="LineNr">157 </span><span class="muComment"># color a square of size 'side' starting at x*side, y*side</span>
 <span id="L158" class="LineNr">158 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='life.mu.html#L158'>render-square</a></span> _x: int, _y: int, color: int <span class="Delimiter">{</span>
 <span id="L159" class="LineNr">159 </span>  <span class="PreProc">var</span> y/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy _y
-<span id="L160" class="LineNr">160 </span>  y <span class="Special">&lt;-</span> shift-left <span class="Constant">2</span>/log2side
+<span id="L160" class="LineNr">160 </span>  y <span class="Special">&lt;-</span> shift-left <span class="Constant">3</span>/log2side
 <span id="L161" class="LineNr">161 </span>  <span class="PreProc">var</span> side/<span class="muRegEbx">ebx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">1</span>
-<span id="L162" class="LineNr">162 </span>  side <span class="Special">&lt;-</span> shift-left <span class="Constant">2</span>/log2side
+<span id="L162" class="LineNr">162 </span>  side <span class="Special">&lt;-</span> shift-left <span class="Constant">3</span>/log2side
 <span id="L163" class="LineNr">163 </span>  <span class="PreProc">var</span> ymax/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy y
 <span id="L164" class="LineNr">164 </span>  ymax <span class="Special">&lt;-</span> add side
 <span id="L165" class="LineNr">165 </span>  <span class="Delimiter">{</span>
@@ -231,7 +231,7 @@ if ('onhashchange' in window) {
 <span id="L167" class="LineNr">167 </span>    <span class="PreProc">break-if-&gt;=</span>
 <span id="L168" class="LineNr">168 </span>    <span class="Delimiter">{</span>
 <span id="L169" class="LineNr">169 </span>      <span class="PreProc">var</span> x/eax: int <span class="Special">&lt;-</span> copy _x
-<span id="L170" class="LineNr">170 </span>      x <span class="Special">&lt;-</span> shift-left <span class="Constant">2</span>/log2side
+<span id="L170" class="LineNr">170 </span>      x <span class="Special">&lt;-</span> shift-left <span class="Constant">3</span>/log2side
 <span id="L171" class="LineNr">171 </span>      <span class="PreProc">var</span> xmax/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy x
 <span id="L172" class="LineNr">172 </span>      xmax <span class="Special">&lt;-</span> add side
 <span id="L173" class="LineNr">173 </span>      <span class="Delimiter">{</span>
@@ -260,12 +260,12 @@ if ('onhashchange' in window) {
 <span id="L196" class="LineNr">196 </span>      compare <a href='life.mu.html#L8'>state</a>, <span class="Constant">0</span>/false
 <span id="L197" class="LineNr">197 </span>      <span class="Delimiter">{</span>
 <span id="L198" class="LineNr">198 </span>        <span class="PreProc">break-if-=</span>
-<span id="L199" class="LineNr">199 </span>        <a href='life.mu.html#L158'>render-square</a> x, y, <span class="Constant">3</span>/cyan
+<span id="L199" class="LineNr">199 </span>        <a href='life.mu.html#L158'>render-square</a> x, y, <span class="Constant">0</span>/black
 <span id="L200" class="LineNr">200 </span>      <span class="Delimiter">}</span>
 <span id="L201" class="LineNr">201 </span>      compare <a href='life.mu.html#L8'>state</a>, <span class="Constant">0</span>/false
 <span id="L202" class="LineNr">202 </span>      <span class="Delimiter">{</span>
 <span id="L203" class="LineNr">203 </span>        <span class="PreProc">break-if-!=</span>
-<span id="L204" class="LineNr">204 </span>        <a href='life.mu.html#L158'>render-square</a> x, y, <span class="Constant">0</span>/black
+<span id="L204" class="LineNr">204 </span>        <a href='life.mu.html#L158'>render-square</a> x, y, <span class="Constant">3</span>/cyan
 <span id="L205" class="LineNr">205 </span>      <span class="Delimiter">}</span>
 <span id="L206" class="LineNr">206 </span>      x <span class="Special">&lt;-</span> increment
 <span id="L207" class="LineNr">207 </span>      <span class="PreProc">loop</span>
@@ -284,20 +284,20 @@ if ('onhashchange' in window) {
 <span id="L220" class="LineNr">220 </span>  <span class="muComment"># allocate on the heap</span>
 <span id="L221" class="LineNr">221 </span>  <span class="PreProc">var</span> grid1-storage: (handle array boolean)
 <span id="L222" class="LineNr">222 </span>  <span class="PreProc">var</span> grid1-ah/eax: (addr handle array boolean) <span class="Special">&lt;-</span> address grid1-storage
-<span id="L223" class="LineNr">223 </span>  populate grid1-ah, <span class="Constant">0xc000</span>  <span class="muComment"># width * height</span>
-<span id="L224" class="LineNr">224 </span>  <span class="PreProc">var</span> _grid1/eax: (addr array boolean) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *grid1-ah
+<span id="L223" class="LineNr">223 </span>  populate grid1-ah, <span class="Constant">0x3000</span>  <span class="muComment"># width * height</span>
+<span id="L224" class="LineNr">224 </span>  <span class="PreProc">var</span> _grid1/eax: (addr array boolean) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *grid1-ah
 <span id="L225" class="LineNr">225 </span>  <span class="PreProc">var</span> grid1/<span class="muRegEsi">esi</span>: (addr array boolean) <span class="Special">&lt;-</span> copy _grid1
 <span id="L226" class="LineNr">226 </span>  <span class="PreProc">var</span> grid2-storage: (handle array boolean)
 <span id="L227" class="LineNr">227 </span>  <span class="PreProc">var</span> grid2-ah/eax: (addr handle array boolean) <span class="Special">&lt;-</span> address grid2-storage
-<span id="L228" class="LineNr">228 </span>  populate grid2-ah, <span class="Constant">0xc000</span>  <span class="muComment"># width * height</span>
-<span id="L229" class="LineNr">229 </span>  <span class="PreProc">var</span> _grid2/eax: (addr array boolean) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *grid2-ah
+<span id="L228" class="LineNr">228 </span>  populate grid2-ah, <span class="Constant">0x3000</span>  <span class="muComment"># width * height</span>
+<span id="L229" class="LineNr">229 </span>  <span class="PreProc">var</span> _grid2/eax: (addr array boolean) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *grid2-ah
 <span id="L230" class="LineNr">230 </span>  <span class="PreProc">var</span> grid2/<span class="muRegEdi">edi</span>: (addr array boolean) <span class="Special">&lt;-</span> copy _grid2
 <span id="L231" class="LineNr">231 </span>  <span class="muComment"># initialize grid1</span>
-<span id="L232" class="LineNr">232 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x80</span>, <span class="Constant">0x5f</span>, <span class="Constant">1</span>/live
-<span id="L233" class="LineNr">233 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x81</span>, <span class="Constant">0x5f</span>, <span class="Constant">1</span>/live
-<span id="L234" class="LineNr">234 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x7f</span>, <span class="Constant">0x60</span>, <span class="Constant">1</span>/live
-<span id="L235" class="LineNr">235 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x80</span>, <span class="Constant">0x60</span>, <span class="Constant">1</span>/live
-<span id="L236" class="LineNr">236 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x80</span>, <span class="Constant">0x61</span>, <span class="Constant">1</span>/live
+<span id="L232" class="LineNr">232 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x40</span>, <span class="Constant">0x2f</span>, <span class="Constant">1</span>/live
+<span id="L233" class="LineNr">233 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x41</span>, <span class="Constant">0x2f</span>, <span class="Constant">1</span>/live
+<span id="L234" class="LineNr">234 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x3f</span>, <span class="Constant">0x30</span>, <span class="Constant">1</span>/live
+<span id="L235" class="LineNr">235 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x40</span>, <span class="Constant">0x30</span>, <span class="Constant">1</span>/live
+<span id="L236" class="LineNr">236 </span>  <a href='life.mu.html#L38'>set-state</a> grid1, <span class="Constant">0x40</span>, <span class="Constant">0x31</span>, <span class="Constant">1</span>/live
 <span id="L237" class="LineNr">237 </span>  <span class="muComment"># render grid1</span>
 <span id="L238" class="LineNr">238 </span>  <a href='life.mu.html#L186'>render</a> grid1
 <span id="L239" class="LineNr">239 </span>  <span class="Delimiter">{</span>
@@ -308,12 +308,25 @@ if ('onhashchange' in window) {
 <span id="L244" class="LineNr">244 </span>    <span class="muComment"># iter: grid1 -&gt; grid2</span>
 <span id="L245" class="LineNr">245 </span>    <a href='life.mu.html#L114'>step</a> grid1, grid2
 <span id="L246" class="LineNr">246 </span>    <a href='life.mu.html#L186'>render</a> grid2
-<span id="L247" class="LineNr">247 </span>    <span class="muComment"># iter: grid2 -&gt; grid1</span>
-<span id="L248" class="LineNr">248 </span>    <a href='life.mu.html#L114'>step</a> grid2, grid1
-<span id="L249" class="LineNr">249 </span>    <a href='life.mu.html#L186'>render</a> grid1
-<span id="L250" class="LineNr">250 </span>    <span class="PreProc">loop</span>
-<span id="L251" class="LineNr">251 </span>  <span class="Delimiter">}</span>
-<span id="L252" class="LineNr">252 </span><span class="Delimiter">}</span>
+<span id="L247" class="LineNr">247 </span><span class="CommentedCode">#?     linger</span>
+<span id="L248" class="LineNr">248 </span>    <span class="muComment"># iter: grid2 -&gt; grid1</span>
+<span id="L249" class="LineNr">249 </span>    <a href='life.mu.html#L114'>step</a> grid2, grid1
+<span id="L250" class="LineNr">250 </span>    <a href='life.mu.html#L186'>render</a> grid1
+<span id="L251" class="LineNr">251 </span><span class="CommentedCode">#?     linger</span>
+<span id="L252" class="LineNr">252 </span>    <span class="PreProc">loop</span>
+<span id="L253" class="LineNr">253 </span>  <span class="Delimiter">}</span>
+<span id="L254" class="LineNr">254 </span><span class="Delimiter">}</span>
+<span id="L255" class="LineNr">255 </span>
+<span id="L256" class="LineNr">256 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='life.mu.html#L256'>linger</a></span> <span class="Delimiter">{</span>
+<span id="L257" class="LineNr">257 </span>  <span class="PreProc">var</span> i/<span class="muRegEcx">ecx</span>: int <span class="Special">&lt;-</span> copy <span class="Constant">0</span>
+<span id="L258" class="LineNr">258 </span>  <span class="Delimiter">{</span>
+<span id="L259" class="LineNr">259 </span>    compare i, <span class="Constant">0x10000000</span>  <span class="muComment"># Kartik's Linux with -accel kvm</span>
+<span id="L260" class="LineNr">260 </span><span class="CommentedCode">#?     compare i, 0x8000000  # Kartik's Mac with -accel tcg</span>
+<span id="L261" class="LineNr">261 </span>    <span class="PreProc">break-if-&gt;=</span>
+<span id="L262" class="LineNr">262 </span>    i <span class="Special">&lt;-</span> increment
+<span id="L263" class="LineNr">263 </span>    <span class="PreProc">loop</span>
+<span id="L264" class="LineNr">264 </span>  <span class="Delimiter">}</span>
+<span id="L265" class="LineNr">265 </span><span class="Delimiter">}</span>
 </pre>
 </body>
 </html>
diff --git a/html/apps/mandelbrot-fixed.mu.html b/html/apps/mandelbrot-fixed.mu.html
index 24f7ddc7..6264bde1 100644
--- a/html/apps/mandelbrot-fixed.mu.html
+++ b/html/apps/mandelbrot-fixed.mu.html
@@ -1,36 +1,36 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/mandelbrot-fixed.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
+.muRegEbx { color: #5f00ff; }
 .Constant { color: #008787; }
+.muRegEdi { color: #00af00; }
+.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>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/mandelbrot-silhouette.mu.html b/html/apps/mandelbrot-silhouette.mu.html
index 867d96b7..94125193 100644
--- a/html/apps/mandelbrot-silhouette.mu.html
+++ b/html/apps/mandelbrot-silhouette.mu.html
@@ -1,34 +1,34 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/mandelbrot-silhouette.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
 .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; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/mandelbrot.mu.html b/html/apps/mandelbrot.mu.html
index 4f25d91b..6d5d6990 100644
--- a/html/apps/mandelbrot.mu.html
+++ b/html/apps/mandelbrot.mu.html
@@ -1,35 +1,35 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/mandelbrot.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEbx { color: #5f00ff; }
-.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; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
diff --git a/html/apps/rpn.mu.html b/html/apps/rpn.mu.html
index a81eb74e..eeec5a89 100644
--- a/html/apps/rpn.mu.html
+++ b/html/apps/rpn.mu.html
@@ -1,34 +1,34 @@
-<!DOCTYPE html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<meta charset="UTF-8">
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - apps/rpn.mu</title>
-<meta name="Generator" content="Vim/8.2">
-<meta name="plugin-version" content="vim8.1_v2">
+<meta name="Generator" content="Vim/8.1">
+<meta name="plugin-version" content="vim8.1_v1">
 <meta name="syntax" content="none">
-<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=,use_input_for_pc=fallback">
+<meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
 <meta name="colorscheme" content="minimal-light">
-<style>
+<style type="text/css">
 <!--
 pre { white-space: pre-wrap; 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; }
 .PreProc { color: #c000c0; }
-.muRegEcx { color: #870000; }
 .muRegEdx { color: #af5f00; }
+.Special { color: #ff6060; }
 .LineNr { }
 .muRegEsi { color: #005faf; }
-.muRegEdi { color: #00af00; }
 .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; }
-.Special { color: #ff6060; }
 -->
 </style>
 
-<script>
+<script type='text/javascript'>
 <!--
 
 /* function to open any folds containing a jumped-to line before jumping to it */
@@ -108,7 +108,7 @@ if ('onhashchange' in window) {
 <span id="L46" class="LineNr"> 46 </span>    <span class="PreProc">var</span> out/eax: int <span class="Special">&lt;-</span> <a href='rpn.mu.html#L62'>simplify</a> in
 <span id="L47" class="LineNr"> 47 </span>    <span class="muComment"># print</span>
 <span id="L48" class="LineNr"> 48 </span>    y <span class="Special">&lt;-</span> increment
-<span id="L49" class="LineNr"> 49 </span>    out, y <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L340'>draw-int32-decimal-wrapping-right-then-down</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, out, <span class="Constant">0</span>/xmin, y, <span class="Constant">0x80</span>/xmax, <span class="Constant">0x30</span>/ymax, <span class="Constant">0</span>/x, y, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
+<span id="L49" class="LineNr"> 49 </span>    out, y <span class="Special">&lt;-</span> <a href='../501draw-text.mu.html#L337'>draw-int32-decimal-wrapping-right-then-down</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, out, <span class="Constant">0</span>/xmin, y, <span class="Constant">0x80</span>/xmax, <span class="Constant">0x30</span>/ymax, <span class="Constant">0</span>/x, y, <span class="Constant">7</span>/fg, <span class="Constant">0</span>/bg
 <span id="L50" class="LineNr"> 50 </span>    <span class="muComment"># newline</span>
 <span id="L51" class="LineNr"> 51 </span>    y <span class="Special">&lt;-</span> increment
 <span id="L52" class="LineNr"> 52 </span>    <span class="muComment">#</span>
@@ -187,7 +187,7 @@ if ('onhashchange' in window) {
 <span id="L125" class="LineNr">125 </span>  <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='rpn.mu.html#L57'>int-stack</a>) <span class="Special">&lt;-</span> copy _self
 <span id="L126" class="LineNr">126 </span>  <span class="PreProc">var</span> top-addr/<span class="muRegEcx">ecx</span>: (addr int) <span class="Special">&lt;-</span> get self, top
 <span id="L127" class="LineNr">127 </span>  <span class="PreProc">var</span> data-ah/<span class="muRegEdx">edx</span>: (addr handle array int) <span class="Special">&lt;-</span> get self, data
-<span id="L128" class="LineNr">128 </span>  <span class="PreProc">var</span> data/eax: (addr array int) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L128" class="LineNr">128 </span>  <span class="PreProc">var</span> data/eax: (addr array int) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L129" class="LineNr">129 </span>  <span class="PreProc">var</span> top/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy *top-addr
 <span id="L130" class="LineNr">130 </span>  <span class="PreProc">var</span> dest-addr/<span class="muRegEdx">edx</span>: (addr int) <span class="Special">&lt;-</span> index data, top
 <span id="L131" class="LineNr">131 </span>  <span class="PreProc">var</span> val/eax: int <span class="Special">&lt;-</span> copy _val
@@ -205,7 +205,7 @@ if ('onhashchange' in window) {
 <span id="L143" class="LineNr">143 </span>  <span class="Delimiter">}</span>
 <span id="L144" class="LineNr">144 </span>  subtract-from *top-addr, <span class="Constant">1</span>
 <span id="L145" class="LineNr">145 </span>  <span class="PreProc">var</span> data-ah/<span class="muRegEdx">edx</span>: (addr handle array int) <span class="Special">&lt;-</span> get self, data
-<span id="L146" class="LineNr">146 </span>  <span class="PreProc">var</span> data/eax: (addr array int) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah
+<span id="L146" class="LineNr">146 </span>  <span class="PreProc">var</span> data/eax: (addr array int) <span class="Special">&lt;-</span> <a href='../120allocate.subx.html#L235'>lookup</a> *data-ah
 <span id="L147" class="LineNr">147 </span>  <span class="PreProc">var</span> top/<span class="muRegEdx">edx</span>: int <span class="Special">&lt;-</span> copy *top-addr
 <span id="L148" class="LineNr">148 </span>  <span class="PreProc">var</span> result-addr/eax: (addr int) <span class="Special">&lt;-</span> index data, top
 <span id="L149" class="LineNr">149 </span>  <span class="PreProc">var</span> val/eax: int <span class="Special">&lt;-</span> copy *result-addr