about summary refs log tree commit diff stats
path: root/html/subx/apps/hex.subx.html
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-12-30 00:02:42 -0800
committerKartik Agaram <vc@akkartik.com>2018-12-30 00:02:42 -0800
commit08a0eed699b8ea07d37163aba610c8e04feee003 (patch)
treeaab05fd9b23ca4f5cfc6492ade82896f3ba5e4bb /html/subx/apps/hex.subx.html
parentac07e589b3e912c704c2011d543f18b16712ff15 (diff)
downloadmu-08a0eed699b8ea07d37163aba610c8e04feee003.tar.gz
4891
Couple more tweaks to html rendering:
a) SubX definitions no longer link redundantly to themselves. This long-standing
issue turns out to be tractable to solve for SubX files since the syntax
is so simple.
b) Fix links to SubX definitions in other directories. I forgot that I
have to always generate tags from the directory of the file being linkified.
c) Fix link colors. Before we lost all syntax highlighting for functions
and Globals. Now they maintain their colors, just add an underline.
Diffstat (limited to 'html/subx/apps/hex.subx.html')
-rw-r--r--html/subx/apps/hex.subx.html543
1 files changed, 272 insertions, 271 deletions
diff --git a/html/subx/apps/hex.subx.html b/html/subx/apps/hex.subx.html
index 11b7ac78..cfa2e3cd 100644
--- a/html/subx/apps/hex.subx.html
+++ b/html/subx/apps/hex.subx.html
@@ -12,6 +12,7 @@
 <!--
 pre { font-family: monospace; color: #000000; background-color: #c6c6c6; }
 body { font-size:12pt; font-family: monospace; color: #000000; background-color: #c6c6c6; }
+a { color:inherit; }
 * { font-size:12pt; font-size: 1em; }
 .subxComment { color: #005faf; }
 .subxS2Comment { color: #8a8a8a; }
@@ -96,7 +97,7 @@ if ('onhashchange' in window) {
 <span id="L34" class="LineNr">  34 </span>    68/push  <span class="Constant">&quot;test&quot;</span>/imm32
 <span id="L35" class="LineNr">  35 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L36" class="LineNr">  36 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L37" class="LineNr">  37 </span>    e8/call  <a href='052kernel_string_equal.subx.html#L31'>kernel-string-equal</a>/disp32
+<span id="L37" class="LineNr">  37 </span>    e8/call  <a href='../052kernel_string_equal.subx.html#L31'>kernel-string-equal</a>/disp32
 <span id="L38" class="LineNr">  38 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L39" class="LineNr">  39 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L40" class="LineNr">  40 </span>    <span class="subxS1Comment"># . check result</span>
@@ -110,7 +111,7 @@ if ('onhashchange' in window) {
 <span id="L48" class="LineNr">  48 </span><span class="CommentedCode">#?     e8/call test-scan-next-byte-aborts-on-invalid-byte/disp32</span>
 <span id="L49" class="LineNr">  49 </span><span class="CommentedCode">#?     e8/call test-convert-next-octet/disp32</span>
 <span id="L50" class="LineNr">  50 </span>    e8/call  run-tests/disp32
-<span id="L51" class="LineNr">  51 </span>    8b/copy                         0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/EBX   <span class="SpecialChar"><a href='051test.subx.html#L87'>Num-test-failures</a></span>/disp32          <span class="subxComment"># copy *Num-test-failures to EBX</span>
+<span id="L51" class="LineNr">  51 </span>    8b/copy                         0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/EBX   <span class="SpecialChar"><a href='../051test.subx.html#L87'>Num-test-failures</a></span>/disp32          <span class="subxComment"># copy *Num-test-failures to EBX</span>
 <span id="L52" class="LineNr">  52 </span>    eb/jump  $main:end/disp8
 <span id="L53" class="LineNr">  53 </span><span class="Constant">$run-main</span>:
 <span id="L54" class="LineNr">  54 </span>    <span class="subxH1Comment"># - otherwise convert stdin</span>
@@ -123,11 +124,11 @@ if ('onhashchange' in window) {
 <span id="L61" class="LineNr">  61 </span>    <span class="subxComment"># return convert(Stdin, 1/stdout, 2/stderr, ed)</span>
 <span id="L62" class="LineNr">  62 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L63" class="LineNr">  63 </span>    50/push-EAX/ed
-<span id="L64" class="LineNr">  64 </span>    68/push  <span class="SpecialChar"><a href='065error-byte.subx.html#L97'>Stderr</a></span>/imm32
-<span id="L65" class="LineNr">  65 </span>    68/push  <span class="SpecialChar"><a href='062write-byte.subx.html#L10'>Stdout</a></span>/imm32
-<span id="L66" class="LineNr">  66 </span>    68/push  <span class="SpecialChar"><a href='059read-byte.subx.html#L14'>Stdin</a></span>/imm32
+<span id="L64" class="LineNr">  64 </span>    68/push  <span class="SpecialChar"><a href='../065error-byte.subx.html#L97'>Stderr</a></span>/imm32
+<span id="L65" class="LineNr">  65 </span>    68/push  <span class="SpecialChar"><a href='../062write-byte.subx.html#L10'>Stdout</a></span>/imm32
+<span id="L66" class="LineNr">  66 </span>    68/push  <span class="SpecialChar"><a href='../059read-byte.subx.html#L14'>Stdin</a></span>/imm32
 <span id="L67" class="LineNr">  67 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L68" class="LineNr">  68 </span>    e8/call  convert/disp32
+<span id="L68" class="LineNr">  68 </span>    e8/call  <a href='hex.subx.html#L78'>convert</a>/disp32
 <span id="L69" class="LineNr">  69 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L70" class="LineNr">  70 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to ESP</span>
 <span id="L71" class="LineNr">  71 </span>    <span class="subxS1Comment"># . syscall(exit, 0)</span>
@@ -137,7 +138,7 @@ if ('onhashchange' in window) {
 <span id="L75" class="LineNr">  75 </span>    cd/syscall  0x80/imm8
 <span id="L76" class="LineNr">  76 </span>
 <span id="L77" class="LineNr">  77 </span><span class="subxComment"># the main entry point</span>
-<span id="L78" class="LineNr">  78 </span><span class="subxFunction">convert</span>:  <span class="subxComment"># in : (address buffered-file), out : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; &lt;void&gt;</span>
+<span id="L78" class="LineNr">  78 </span><span class="subxFunction"><a href='hex.subx.html#L78'>convert</a></span>:  <span class="subxComment"># in : (address buffered-file), out : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; &lt;void&gt;</span>
 <span id="L79" class="LineNr">  79 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L80" class="LineNr">  80 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L81" class="LineNr">  81 </span>    <span class="subxComment">#     EAX = convert-next-octet(in, err, ed)</span>
@@ -157,7 +158,7 @@ if ('onhashchange' in window) {
 <span id="L95" class="LineNr">  95 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+16)</span>
 <span id="L96" class="LineNr">  96 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L97" class="LineNr">  97 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L98" class="LineNr">  98 </span>    e8/call  convert-next-octet/disp32
+<span id="L98" class="LineNr">  98 </span>    e8/call  <a href='hex.subx.html#L136'>convert-next-octet</a>/disp32
 <span id="L99" class="LineNr">  99 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
 <span id="L100" class="LineNr"> 100 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L101" class="LineNr"> 101 </span>    <span class="subxComment"># if EAX == 0xffffffff break</span>
@@ -168,7 +169,7 @@ if ('onhashchange' in window) {
 <span id="L106" class="LineNr"> 106 </span>    50/push-EAX
 <span id="L107" class="LineNr"> 107 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L108" class="LineNr"> 108 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L109" class="LineNr"> 109 </span>    e8/call  <a href='062write-byte.subx.html#L38'>write-byte</a>/disp32
+<span id="L109" class="LineNr"> 109 </span>    e8/call  <a href='../062write-byte.subx.html#L38'>write-byte</a>/disp32
 <span id="L110" class="LineNr"> 110 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L111" class="LineNr"> 111 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L112" class="LineNr"> 112 </span>    <span class="subxComment"># loop</span>
@@ -178,7 +179,7 @@ if ('onhashchange' in window) {
 <span id="L116" class="LineNr"> 116 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L117" class="LineNr"> 117 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L118" class="LineNr"> 118 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L119" class="LineNr"> 119 </span>    e8/call  <a href='062write-byte.subx.html#L84'>flush</a>/disp32
+<span id="L119" class="LineNr"> 119 </span>    e8/call  <a href='../062write-byte.subx.html#L84'>flush</a>/disp32
 <span id="L120" class="LineNr"> 120 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L121" class="LineNr"> 121 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L122" class="LineNr"> 122 </span><span class="Constant">$convert:end</span>:
@@ -195,7 +196,7 @@ if ('onhashchange' in window) {
 <span id="L133" class="LineNr"> 133 </span><span class="subxComment"># raise an error and abort on all other unexpected bytes</span>
 <span id="L134" class="LineNr"> 134 </span><span class="subxComment"># return in EAX an _octet_ containing the binary value of the two hex characters</span>
 <span id="L135" class="LineNr"> 135 </span><span class="subxComment"># return 0xffffffff on end of file</span>
-<span id="L136" class="LineNr"> 136 </span><span class="subxFunction">convert-next-octet</span>:  <span class="subxComment"># in : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; byte-or-eof/EAX</span>
+<span id="L136" class="LineNr"> 136 </span><span class="subxFunction"><a href='hex.subx.html#L136'>convert-next-octet</a></span>:  <span class="subxComment"># in : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; byte-or-eof/EAX</span>
 <span id="L137" class="LineNr"> 137 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L138" class="LineNr"> 138 </span>    <span class="subxComment">#   EAX = scan-next-byte(in, err, ed)</span>
 <span id="L139" class="LineNr"> 139 </span>    <span class="subxComment">#   if (EAX == 0xffffffff) return</span>
@@ -217,14 +218,14 @@ if ('onhashchange' in window) {
 <span id="L155" class="LineNr"> 155 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L156" class="LineNr"> 156 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L157" class="LineNr"> 157 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L158" class="LineNr"> 158 </span>    e8/call  scan-next-byte/disp32
+<span id="L158" class="LineNr"> 158 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L159" class="LineNr"> 159 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L160" class="LineNr"> 160 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L161" class="LineNr"> 161 </span>    <span class="subxComment"># if (EAX == 0xffffffff) return</span>
 <span id="L162" class="LineNr"> 162 </span>    81          7/subop/compare     3/mod/direct    0/rm32/EAX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xffffffff/imm32  <span class="subxComment"># compare EAX</span>
 <span id="L163" class="LineNr"> 163 </span>    74/jump-if-equal  $convert-next-octet:end/disp8
 <span id="L164" class="LineNr"> 164 </span>    <span class="subxComment"># EAX = parse-hex-digit(EAX)</span>
-<span id="L165" class="LineNr"> 165 </span>    e8/call parse-hex-digit/disp32
+<span id="L165" class="LineNr"> 165 </span>    e8/call <a href='hex.subx.html#L1576'>parse-hex-digit</a>/disp32
 <span id="L166" class="LineNr"> 166 </span>    <span class="subxComment"># ECX = EAX</span>
 <span id="L167" class="LineNr"> 167 </span>    89/copy                         3/mod/direct    1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/EAX  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy EAX to ECX</span>
 <span id="L168" class="LineNr"> 168 </span>    <span class="subxComment"># EAX = scan-next-byte(in, err, ed)</span>
@@ -233,12 +234,12 @@ if ('onhashchange' in window) {
 <span id="L171" class="LineNr"> 171 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L172" class="LineNr"> 172 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L173" class="LineNr"> 173 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L174" class="LineNr"> 174 </span>    e8/call  scan-next-byte/disp32
+<span id="L174" class="LineNr"> 174 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L175" class="LineNr"> 175 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L176" class="LineNr"> 176 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L177" class="LineNr"> 177 </span>    <span class="subxComment"># if (EAX == 0xffffffff) error(ed, err, &quot;partial byte found.&quot;)</span>
 <span id="L178" class="LineNr"> 178 </span>    81          7/subop/compare     3/mod/direct    0/rm32/EAX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xffffffff/imm32  <span class="subxComment"># compare EAX</span>
-<span id="L179" class="LineNr"> 179 </span>    75/jump-if-not-equal  $convert-next-octet:convert/disp8
+<span id="L179" class="LineNr"> 179 </span>    75/jump-if-not-equal  $convert-next-octet:<a href='hex.subx.html#L78'>convert</a>/disp8
 <span id="L180" class="LineNr"> 180 </span>    <span class="subxS1Comment"># . error-byte(ed, err, msg, '.')  # reusing error-byte to avoid creating _yet_ another helper</span>
 <span id="L181" class="LineNr"> 181 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L182" class="LineNr"> 182 </span>    68/push  0x2e/imm32/period/dummy
@@ -246,10 +247,10 @@ if ('onhashchange' in window) {
 <span id="L184" class="LineNr"> 184 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L185" class="LineNr"> 185 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+16)</span>
 <span id="L186" class="LineNr"> 186 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L187" class="LineNr"> 187 </span>    e8/call  <a href='065error-byte.subx.html#L30'>error-byte</a>/disp32  <span class="subxComment"># never returns</span>
-<span id="L188" class="LineNr"> 188 </span><span class="Constant">$convert-next-octet:convert</span>:
+<span id="L187" class="LineNr"> 187 </span>    e8/call  <a href='../065error-byte.subx.html#L30'>error-byte</a>/disp32  <span class="subxComment"># never returns</span>
+<span id="L188" class="LineNr"> 188 </span><span class="Constant">$convert-next-octet:<a href='hex.subx.html#L78'>convert</a></span>:
 <span id="L189" class="LineNr"> 189 </span>    <span class="subxComment"># EAX = parse-hex-digit(EAX)</span>
-<span id="L190" class="LineNr"> 190 </span>    e8/call parse-hex-digit/disp32
+<span id="L190" class="LineNr"> 190 </span>    e8/call <a href='hex.subx.html#L1576'>parse-hex-digit</a>/disp32
 <span id="L191" class="LineNr"> 191 </span>    <span class="subxComment"># EAX = (ECX &lt;&lt; 4) | EAX</span>
 <span id="L192" class="LineNr"> 192 </span>    <span class="subxS1Comment"># . ECX &lt;&lt;= 4</span>
 <span id="L193" class="LineNr"> 193 </span>    c1/shift    4/subop/left        3/mod/direct    1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm8            <span class="subxComment"># shift ECX left by 4 bits</span>
@@ -263,7 +264,7 @@ if ('onhashchange' in window) {
 <span id="L201" class="LineNr"> 201 </span>    5d/pop-to-EBP
 <span id="L202" class="LineNr"> 202 </span>    c3/return
 <span id="L203" class="LineNr"> 203 </span>
-<span id="L204" class="LineNr"> 204 </span><span class="subxTest">test-convert-next-octet</span>:
+<span id="L204" class="LineNr"> 204 </span><span class="subxTest"><a href='hex.subx.html#L204'>test-convert-next-octet</a></span>:
 <span id="L205" class="LineNr"> 205 </span>    <span class="subxH1Comment"># - check that the first two bytes of the input are assembled into the resulting octet</span>
 <span id="L206" class="LineNr"> 206 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L207" class="LineNr"> 207 </span>    55/push-EBP
@@ -271,43 +272,43 @@ if ('onhashchange' in window) {
 <span id="L209" class="LineNr"> 209 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L210" class="LineNr"> 210 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L211" class="LineNr"> 211 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L212" class="LineNr"> 212 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L212" class="LineNr"> 212 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L213" class="LineNr"> 213 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L214" class="LineNr"> 214 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L214" class="LineNr"> 214 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L215" class="LineNr"> 215 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L216" class="LineNr"> 216 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L217" class="LineNr"> 217 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L218" class="LineNr"> 218 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L219" class="LineNr"> 219 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L219" class="LineNr"> 219 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L220" class="LineNr"> 220 </span>    05/add-to-EAX  4/imm32
 <span id="L221" class="LineNr"> 221 </span>    50/push-EAX
 <span id="L222" class="LineNr"> 222 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L223" class="LineNr"> 223 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L223" class="LineNr"> 223 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L224" class="LineNr"> 224 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L225" class="LineNr"> 225 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L226" class="LineNr"> 226 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L227" class="LineNr"> 227 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L228" class="LineNr"> 228 </span>    68/push  _test-error-stream/imm32
+<span id="L228" class="LineNr"> 228 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L229" class="LineNr"> 229 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L230" class="LineNr"> 230 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L230" class="LineNr"> 230 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L231" class="LineNr"> 231 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L232" class="LineNr"> 232 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L233" class="LineNr"> 233 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L234" class="LineNr"> 234 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L235" class="LineNr"> 235 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L235" class="LineNr"> 235 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L236" class="LineNr"> 236 </span>    05/add-to-EAX  4/imm32
 <span id="L237" class="LineNr"> 237 </span>    50/push-EAX
 <span id="L238" class="LineNr"> 238 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L239" class="LineNr"> 239 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L239" class="LineNr"> 239 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L240" class="LineNr"> 240 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L241" class="LineNr"> 241 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L242" class="LineNr"> 242 </span>    <span class="subxComment"># initialize '_test-stream' to &quot;abc&quot;</span>
 <span id="L243" class="LineNr"> 243 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;abc&quot;)</span>
 <span id="L244" class="LineNr"> 244 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L245" class="LineNr"> 245 </span>    68/push  <span class="Constant">&quot;abc&quot;</span>/imm32
-<span id="L246" class="LineNr"> 246 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L246" class="LineNr"> 246 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L247" class="LineNr"> 247 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L248" class="LineNr"> 248 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L248" class="LineNr"> 248 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L249" class="LineNr"> 249 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L250" class="LineNr"> 250 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L251" class="LineNr"> 251 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'convert-next-octet' below</span>
@@ -319,16 +320,16 @@ if ('onhashchange' in window) {
 <span id="L257" class="LineNr"> 257 </span>    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
 <span id="L258" class="LineNr"> 258 </span>    51/push-ECX/ed
 <span id="L259" class="LineNr"> 259 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L260" class="LineNr"> 260 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L260" class="LineNr"> 260 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L261" class="LineNr"> 261 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L262" class="LineNr"> 262 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L263" class="LineNr"> 263 </span>    <span class="subxComment"># EAX = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L264" class="LineNr"> 264 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L265" class="LineNr"> 265 </span>    51/push-ECX/ed
-<span id="L266" class="LineNr"> 266 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L267" class="LineNr"> 267 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L266" class="LineNr"> 266 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L267" class="LineNr"> 267 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L268" class="LineNr"> 268 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L269" class="LineNr"> 269 </span>    e8/call  convert-next-octet/disp32
+<span id="L269" class="LineNr"> 269 </span>    e8/call  <a href='hex.subx.html#L136'>convert-next-octet</a>/disp32
 <span id="L270" class="LineNr"> 270 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L271" class="LineNr"> 271 </span>    <span class="subxComment"># pop args to convert-next-octet</span>
 <span id="L272" class="LineNr"> 272 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -338,12 +339,12 @@ if ('onhashchange' in window) {
 <span id="L276" class="LineNr"> 276 </span>    <span class="subxComment"># check that convert-next-octet didn't abort</span>
 <span id="L277" class="LineNr"> 277 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L278" class="LineNr"> 278 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L279" class="LineNr"> 279 </span>    68/push  <span class="Constant">&quot;F - test-convert-next-octet: unexpected abort&quot;</span>/imm32
+<span id="L279" class="LineNr"> 279 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L204'>test-convert-next-octet</a>: unexpected abort&quot;</span>/imm32
 <span id="L280" class="LineNr"> 280 </span>    68/push  0/imm32
 <span id="L281" class="LineNr"> 281 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L282" class="LineNr"> 282 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L283" class="LineNr"> 283 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L284" class="LineNr"> 284 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L284" class="LineNr"> 284 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L285" class="LineNr"> 285 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L286" class="LineNr"> 286 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L287" class="LineNr"> 287 </span>    <span class="subxComment"># return if abort</span>
@@ -355,7 +356,7 @@ if ('onhashchange' in window) {
 <span id="L293" class="LineNr"> 293 </span>    68/push  0xab/imm32/ab
 <span id="L294" class="LineNr"> 294 </span>    50/push-EAX
 <span id="L295" class="LineNr"> 295 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L296" class="LineNr"> 296 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L296" class="LineNr"> 296 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L297" class="LineNr"> 297 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L298" class="LineNr"> 298 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L299" class="LineNr"> 299 </span><span class="Constant">$test-convert-next-octet:end</span>:
@@ -365,7 +366,7 @@ if ('onhashchange' in window) {
 <span id="L303" class="LineNr"> 303 </span>    5d/pop-to-EBP
 <span id="L304" class="LineNr"> 304 </span>    c3/return
 <span id="L305" class="LineNr"> 305 </span>
-<span id="L306" class="LineNr"> 306 </span><span class="subxTest">test-convert-next-octet-handles-eof</span>:
+<span id="L306" class="LineNr"> 306 </span><span class="subxTest"><a href='hex.subx.html#L306'>test-convert-next-octet-handles-eof</a></span>:
 <span id="L307" class="LineNr"> 307 </span>    <span class="subxH1Comment"># - check that eof returns the sentinel octet</span>
 <span id="L308" class="LineNr"> 308 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L309" class="LineNr"> 309 </span>    55/push-EBP
@@ -373,34 +374,34 @@ if ('onhashchange' in window) {
 <span id="L311" class="LineNr"> 311 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L312" class="LineNr"> 312 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L313" class="LineNr"> 313 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L314" class="LineNr"> 314 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L314" class="LineNr"> 314 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L315" class="LineNr"> 315 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L316" class="LineNr"> 316 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L316" class="LineNr"> 316 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L317" class="LineNr"> 317 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L318" class="LineNr"> 318 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L319" class="LineNr"> 319 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L320" class="LineNr"> 320 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L321" class="LineNr"> 321 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L321" class="LineNr"> 321 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L322" class="LineNr"> 322 </span>    05/add-to-EAX  4/imm32
 <span id="L323" class="LineNr"> 323 </span>    50/push-EAX
 <span id="L324" class="LineNr"> 324 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L325" class="LineNr"> 325 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L325" class="LineNr"> 325 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L326" class="LineNr"> 326 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L327" class="LineNr"> 327 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L328" class="LineNr"> 328 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L329" class="LineNr"> 329 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L330" class="LineNr"> 330 </span>    68/push  _test-error-stream/imm32
+<span id="L330" class="LineNr"> 330 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L331" class="LineNr"> 331 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L332" class="LineNr"> 332 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L332" class="LineNr"> 332 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L333" class="LineNr"> 333 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L334" class="LineNr"> 334 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L335" class="LineNr"> 335 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L336" class="LineNr"> 336 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L337" class="LineNr"> 337 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L337" class="LineNr"> 337 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L338" class="LineNr"> 338 </span>    05/add-to-EAX  4/imm32
 <span id="L339" class="LineNr"> 339 </span>    50/push-EAX
 <span id="L340" class="LineNr"> 340 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L341" class="LineNr"> 341 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L341" class="LineNr"> 341 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L342" class="LineNr"> 342 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L343" class="LineNr"> 343 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L344" class="LineNr"> 344 </span>    <span class="subxComment"># don't initialize '_test-stream'</span>
@@ -413,16 +414,16 @@ if ('onhashchange' in window) {
 <span id="L351" class="LineNr"> 351 </span>    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
 <span id="L352" class="LineNr"> 352 </span>    51/push-ECX/ed
 <span id="L353" class="LineNr"> 353 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L354" class="LineNr"> 354 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L354" class="LineNr"> 354 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L355" class="LineNr"> 355 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L356" class="LineNr"> 356 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L357" class="LineNr"> 357 </span>    <span class="subxComment"># EAX = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L358" class="LineNr"> 358 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L359" class="LineNr"> 359 </span>    51/push-ECX/ed
-<span id="L360" class="LineNr"> 360 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L361" class="LineNr"> 361 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L360" class="LineNr"> 360 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L361" class="LineNr"> 361 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L362" class="LineNr"> 362 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L363" class="LineNr"> 363 </span>    e8/call  convert-next-octet/disp32
+<span id="L363" class="LineNr"> 363 </span>    e8/call  <a href='hex.subx.html#L136'>convert-next-octet</a>/disp32
 <span id="L364" class="LineNr"> 364 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L365" class="LineNr"> 365 </span>    <span class="subxComment"># pop args to convert-next-octet</span>
 <span id="L366" class="LineNr"> 366 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -432,12 +433,12 @@ if ('onhashchange' in window) {
 <span id="L370" class="LineNr"> 370 </span>    <span class="subxComment"># check that convert-next-octet didn't abort</span>
 <span id="L371" class="LineNr"> 371 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L372" class="LineNr"> 372 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L373" class="LineNr"> 373 </span>    68/push  <span class="Constant">&quot;F - test-convert-next-octet: unexpected abort&quot;</span>/imm32
+<span id="L373" class="LineNr"> 373 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L204'>test-convert-next-octet</a>: unexpected abort&quot;</span>/imm32
 <span id="L374" class="LineNr"> 374 </span>    68/push  0/imm32
 <span id="L375" class="LineNr"> 375 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L376" class="LineNr"> 376 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L377" class="LineNr"> 377 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L378" class="LineNr"> 378 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L378" class="LineNr"> 378 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L379" class="LineNr"> 379 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L380" class="LineNr"> 380 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L381" class="LineNr"> 381 </span>    <span class="subxComment"># return if abort</span>
@@ -449,7 +450,7 @@ if ('onhashchange' in window) {
 <span id="L387" class="LineNr"> 387 </span>    68/push  0xffffffff/imm32/eof
 <span id="L388" class="LineNr"> 388 </span>    50/push-EAX
 <span id="L389" class="LineNr"> 389 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L390" class="LineNr"> 390 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L390" class="LineNr"> 390 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L391" class="LineNr"> 391 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L392" class="LineNr"> 392 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L393" class="LineNr"> 393 </span><span class="Constant">$test-convert-next-octet-handles-eof:end</span>:
@@ -459,7 +460,7 @@ if ('onhashchange' in window) {
 <span id="L397" class="LineNr"> 397 </span>    5d/pop-to-EBP
 <span id="L398" class="LineNr"> 398 </span>    c3/return
 <span id="L399" class="LineNr"> 399 </span>
-<span id="L400" class="LineNr"> 400 </span><span class="subxTest">test-convert-next-octet-aborts-on-single-hex-byte</span>:
+<span id="L400" class="LineNr"> 400 </span><span class="subxTest"><a href='hex.subx.html#L400'>test-convert-next-octet-aborts-on-single-hex-byte</a></span>:
 <span id="L401" class="LineNr"> 401 </span>    <span class="subxH1Comment"># - check that a single unaccompanied hex byte aborts</span>
 <span id="L402" class="LineNr"> 402 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L403" class="LineNr"> 403 </span>    55/push-EBP
@@ -467,43 +468,43 @@ if ('onhashchange' in window) {
 <span id="L405" class="LineNr"> 405 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L406" class="LineNr"> 406 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L407" class="LineNr"> 407 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L408" class="LineNr"> 408 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L408" class="LineNr"> 408 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L409" class="LineNr"> 409 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L410" class="LineNr"> 410 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L410" class="LineNr"> 410 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L411" class="LineNr"> 411 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L412" class="LineNr"> 412 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L413" class="LineNr"> 413 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L414" class="LineNr"> 414 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L415" class="LineNr"> 415 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L415" class="LineNr"> 415 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L416" class="LineNr"> 416 </span>    05/add-to-EAX  4/imm32
 <span id="L417" class="LineNr"> 417 </span>    50/push-EAX
 <span id="L418" class="LineNr"> 418 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L419" class="LineNr"> 419 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L419" class="LineNr"> 419 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L420" class="LineNr"> 420 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L421" class="LineNr"> 421 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L422" class="LineNr"> 422 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L423" class="LineNr"> 423 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L424" class="LineNr"> 424 </span>    68/push  _test-error-stream/imm32
+<span id="L424" class="LineNr"> 424 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L425" class="LineNr"> 425 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L426" class="LineNr"> 426 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L426" class="LineNr"> 426 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L427" class="LineNr"> 427 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L428" class="LineNr"> 428 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L429" class="LineNr"> 429 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L430" class="LineNr"> 430 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L431" class="LineNr"> 431 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L431" class="LineNr"> 431 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L432" class="LineNr"> 432 </span>    05/add-to-EAX  4/imm32
 <span id="L433" class="LineNr"> 433 </span>    50/push-EAX
 <span id="L434" class="LineNr"> 434 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L435" class="LineNr"> 435 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L435" class="LineNr"> 435 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L436" class="LineNr"> 436 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L437" class="LineNr"> 437 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L438" class="LineNr"> 438 </span>    <span class="subxComment"># initialize '_test-stream' to &quot;a&quot;</span>
 <span id="L439" class="LineNr"> 439 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;a&quot;)</span>
 <span id="L440" class="LineNr"> 440 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L441" class="LineNr"> 441 </span>    68/push  <span class="Constant">&quot;a&quot;</span>/imm32
-<span id="L442" class="LineNr"> 442 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L442" class="LineNr"> 442 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L443" class="LineNr"> 443 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L444" class="LineNr"> 444 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L444" class="LineNr"> 444 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L445" class="LineNr"> 445 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L446" class="LineNr"> 446 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L447" class="LineNr"> 447 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'convert-next-octet' below</span>
@@ -515,16 +516,16 @@ if ('onhashchange' in window) {
 <span id="L453" class="LineNr"> 453 </span>    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
 <span id="L454" class="LineNr"> 454 </span>    51/push-ECX/ed
 <span id="L455" class="LineNr"> 455 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L456" class="LineNr"> 456 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L456" class="LineNr"> 456 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L457" class="LineNr"> 457 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L458" class="LineNr"> 458 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L459" class="LineNr"> 459 </span>    <span class="subxComment"># EAX = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L460" class="LineNr"> 460 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L461" class="LineNr"> 461 </span>    51/push-ECX/ed
-<span id="L462" class="LineNr"> 462 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L463" class="LineNr"> 463 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L462" class="LineNr"> 462 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L463" class="LineNr"> 463 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L464" class="LineNr"> 464 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L465" class="LineNr"> 465 </span>    e8/call  convert-next-octet/disp32
+<span id="L465" class="LineNr"> 465 </span>    e8/call  <a href='hex.subx.html#L136'>convert-next-octet</a>/disp32
 <span id="L466" class="LineNr"> 466 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L467" class="LineNr"> 467 </span>    <span class="subxComment"># pop args to convert-next-octet</span>
 <span id="L468" class="LineNr"> 468 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -534,12 +535,12 @@ if ('onhashchange' in window) {
 <span id="L472" class="LineNr"> 472 </span>    <span class="subxComment"># check that convert-next-octet aborted</span>
 <span id="L473" class="LineNr"> 473 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 2, msg)</span>
 <span id="L474" class="LineNr"> 474 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L475" class="LineNr"> 475 </span>    68/push  <span class="Constant">&quot;F - test-convert-next-octet-aborts-on-single-hex-byte: unexpected abort&quot;</span>/imm32
+<span id="L475" class="LineNr"> 475 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L400'>test-convert-next-octet-aborts-on-single-hex-byte</a>: unexpected abort&quot;</span>/imm32
 <span id="L476" class="LineNr"> 476 </span>    68/push  2/imm32
 <span id="L477" class="LineNr"> 477 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L478" class="LineNr"> 478 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L479" class="LineNr"> 479 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L480" class="LineNr"> 480 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L480" class="LineNr"> 480 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L481" class="LineNr"> 481 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L482" class="LineNr"> 482 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L483" class="LineNr"> 483 </span><span class="Constant">$test-convert-next-octet-aborts-on-single-hex-byte:end</span>:
@@ -553,7 +554,7 @@ if ('onhashchange' in window) {
 <span id="L491" class="LineNr"> 491 </span><span class="subxComment"># return 0xffffffff if file ends without finding a hex byte</span>
 <span id="L492" class="LineNr"> 492 </span><span class="subxComment"># on '#' skip all bytes until newline</span>
 <span id="L493" class="LineNr"> 493 </span><span class="subxComment"># abort on any other byte</span>
-<span id="L494" class="LineNr"> 494 </span><span class="subxFunction">scan-next-byte</span>:  <span class="subxComment"># in : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; byte-or-eof/EAX</span>
+<span id="L494" class="LineNr"> 494 </span><span class="subxFunction"><a href='hex.subx.html#L494'>scan-next-byte</a></span>:  <span class="subxComment"># in : (address buffered-file), err : (address buffered-file), ed : (address exit-descriptor) -&gt; byte-or-eof/EAX</span>
 <span id="L495" class="LineNr"> 495 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L496" class="LineNr"> 496 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L497" class="LineNr"> 497 </span>    <span class="subxComment">#     EAX = read-byte(in)</span>
@@ -572,7 +573,7 @@ if ('onhashchange' in window) {
 <span id="L510" class="LineNr"> 510 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L511" class="LineNr"> 511 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L512" class="LineNr"> 512 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L513" class="LineNr"> 513 </span>    e8/call  <a href='059read-byte.subx.html#L45'>read-byte</a>/disp32
+<span id="L513" class="LineNr"> 513 </span>    e8/call  <a href='../059read-byte.subx.html#L45'>read-byte</a>/disp32
 <span id="L514" class="LineNr"> 514 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L515" class="LineNr"> 515 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L516" class="LineNr"> 516 </span>    <span class="subxComment"># if (EAX == 0xffffffff) return EAX</span>
@@ -585,7 +586,7 @@ if ('onhashchange' in window) {
 <span id="L523" class="LineNr"> 523 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L524" class="LineNr"> 524 </span>    50/push-EAX
 <span id="L525" class="LineNr"> 525 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L526" class="LineNr"> 526 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L526" class="LineNr"> 526 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L527" class="LineNr"> 527 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L528" class="LineNr"> 528 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L529" class="LineNr"> 529 </span>    <span class="subxS1Comment"># . compare with 'false'</span>
@@ -612,7 +613,7 @@ if ('onhashchange' in window) {
 <span id="L550" class="LineNr"> 550 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L551" class="LineNr"> 551 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L552" class="LineNr"> 552 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L553" class="LineNr"> 553 </span>    e8/call  skip-until-newline/disp32
+<span id="L553" class="LineNr"> 553 </span>    e8/call  <a href='hex.subx.html#L1588'>skip-until-newline</a>/disp32
 <span id="L554" class="LineNr"> 554 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L555" class="LineNr"> 555 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L556" class="LineNr"> 556 </span>    eb/jump  $scan-next-byte:loop/disp8
@@ -624,7 +625,7 @@ if ('onhashchange' in window) {
 <span id="L562" class="LineNr"> 562 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+12)</span>
 <span id="L563" class="LineNr"> 563 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+16)</span>
 <span id="L564" class="LineNr"> 564 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L565" class="LineNr"> 565 </span>    e8/call  <a href='065error-byte.subx.html#L30'>error-byte</a>/disp32  <span class="subxComment"># never returns</span>
+<span id="L565" class="LineNr"> 565 </span>    e8/call  <a href='../065error-byte.subx.html#L30'>error-byte</a>/disp32  <span class="subxComment"># never returns</span>
 <span id="L566" class="LineNr"> 566 </span><span class="Constant">$scan-next-byte:end</span>:
 <span id="L567" class="LineNr"> 567 </span>    <span class="subxS1Comment"># . restore registers</span>
 <span id="L568" class="LineNr"> 568 </span>    <span class="subxS1Comment"># . epilog</span>
@@ -632,7 +633,7 @@ if ('onhashchange' in window) {
 <span id="L570" class="LineNr"> 570 </span>    5d/pop-to-EBP
 <span id="L571" class="LineNr"> 571 </span>    c3/return
 <span id="L572" class="LineNr"> 572 </span>
-<span id="L573" class="LineNr"> 573 </span><span class="subxTest">test-scan-next-byte</span>:
+<span id="L573" class="LineNr"> 573 </span><span class="subxTest"><a href='hex.subx.html#L573'>test-scan-next-byte</a></span>:
 <span id="L574" class="LineNr"> 574 </span>    <span class="subxH1Comment"># - check that the first byte of the input is returned</span>
 <span id="L575" class="LineNr"> 575 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L576" class="LineNr"> 576 </span>    55/push-EBP
@@ -640,43 +641,43 @@ if ('onhashchange' in window) {
 <span id="L578" class="LineNr"> 578 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L579" class="LineNr"> 579 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L580" class="LineNr"> 580 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L581" class="LineNr"> 581 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L581" class="LineNr"> 581 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L582" class="LineNr"> 582 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L583" class="LineNr"> 583 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L583" class="LineNr"> 583 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L584" class="LineNr"> 584 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L585" class="LineNr"> 585 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L586" class="LineNr"> 586 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L587" class="LineNr"> 587 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L588" class="LineNr"> 588 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L588" class="LineNr"> 588 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L589" class="LineNr"> 589 </span>    05/add-to-EAX  4/imm32
 <span id="L590" class="LineNr"> 590 </span>    50/push-EAX
 <span id="L591" class="LineNr"> 591 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L592" class="LineNr"> 592 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L592" class="LineNr"> 592 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L593" class="LineNr"> 593 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L594" class="LineNr"> 594 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L595" class="LineNr"> 595 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L596" class="LineNr"> 596 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L597" class="LineNr"> 597 </span>    68/push  _test-error-stream/imm32
+<span id="L597" class="LineNr"> 597 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L598" class="LineNr"> 598 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L599" class="LineNr"> 599 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L599" class="LineNr"> 599 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L600" class="LineNr"> 600 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L601" class="LineNr"> 601 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L602" class="LineNr"> 602 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L603" class="LineNr"> 603 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L604" class="LineNr"> 604 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L604" class="LineNr"> 604 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L605" class="LineNr"> 605 </span>    05/add-to-EAX  4/imm32
 <span id="L606" class="LineNr"> 606 </span>    50/push-EAX
 <span id="L607" class="LineNr"> 607 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L608" class="LineNr"> 608 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L608" class="LineNr"> 608 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L609" class="LineNr"> 609 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L610" class="LineNr"> 610 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L611" class="LineNr"> 611 </span>    <span class="subxComment"># initialize '_test-stream' to &quot;abc&quot;</span>
 <span id="L612" class="LineNr"> 612 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;abc&quot;)</span>
 <span id="L613" class="LineNr"> 613 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L614" class="LineNr"> 614 </span>    68/push  <span class="Constant">&quot;abc&quot;</span>/imm32
-<span id="L615" class="LineNr"> 615 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L615" class="LineNr"> 615 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L616" class="LineNr"> 616 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L617" class="LineNr"> 617 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L617" class="LineNr"> 617 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L618" class="LineNr"> 618 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L619" class="LineNr"> 619 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L620" class="LineNr"> 620 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -688,16 +689,16 @@ if ('onhashchange' in window) {
 <span id="L626" class="LineNr"> 626 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L627" class="LineNr"> 627 </span>    51/push-ECX/ed
 <span id="L628" class="LineNr"> 628 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L629" class="LineNr"> 629 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L629" class="LineNr"> 629 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L630" class="LineNr"> 630 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L631" class="LineNr"> 631 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L632" class="LineNr"> 632 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L633" class="LineNr"> 633 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L634" class="LineNr"> 634 </span>    51/push-ECX/ed
-<span id="L635" class="LineNr"> 635 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L636" class="LineNr"> 636 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L635" class="LineNr"> 635 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L636" class="LineNr"> 636 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L637" class="LineNr"> 637 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L638" class="LineNr"> 638 </span>    e8/call  scan-next-byte/disp32
+<span id="L638" class="LineNr"> 638 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L639" class="LineNr"> 639 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L640" class="LineNr"> 640 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L641" class="LineNr"> 641 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -707,12 +708,12 @@ if ('onhashchange' in window) {
 <span id="L645" class="LineNr"> 645 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L646" class="LineNr"> 646 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L647" class="LineNr"> 647 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L648" class="LineNr"> 648 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte: unexpected abort&quot;</span>/imm32
+<span id="L648" class="LineNr"> 648 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L573'>test-scan-next-byte</a>: unexpected abort&quot;</span>/imm32
 <span id="L649" class="LineNr"> 649 </span>    68/push  0/imm32
 <span id="L650" class="LineNr"> 650 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L651" class="LineNr"> 651 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L652" class="LineNr"> 652 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L653" class="LineNr"> 653 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L653" class="LineNr"> 653 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L654" class="LineNr"> 654 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L655" class="LineNr"> 655 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L656" class="LineNr"> 656 </span>    <span class="subxComment"># return if abort</span>
@@ -724,7 +725,7 @@ if ('onhashchange' in window) {
 <span id="L662" class="LineNr"> 662 </span>    68/push  0x61/imm32/a
 <span id="L663" class="LineNr"> 663 </span>    50/push-EAX
 <span id="L664" class="LineNr"> 664 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L665" class="LineNr"> 665 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L665" class="LineNr"> 665 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L666" class="LineNr"> 666 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L667" class="LineNr"> 667 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L668" class="LineNr"> 668 </span><span class="Constant">$test-scan-next-byte:end</span>:
@@ -734,7 +735,7 @@ if ('onhashchange' in window) {
 <span id="L672" class="LineNr"> 672 </span>    5d/pop-to-EBP
 <span id="L673" class="LineNr"> 673 </span>    c3/return
 <span id="L674" class="LineNr"> 674 </span>
-<span id="L675" class="LineNr"> 675 </span><span class="subxTest">test-scan-next-byte-skips-whitespace</span>:
+<span id="L675" class="LineNr"> 675 </span><span class="subxTest"><a href='hex.subx.html#L675'>test-scan-next-byte-skips-whitespace</a></span>:
 <span id="L676" class="LineNr"> 676 </span>    <span class="subxH1Comment"># - check that the first byte after whitespace is returned</span>
 <span id="L677" class="LineNr"> 677 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L678" class="LineNr"> 678 </span>    55/push-EBP
@@ -742,43 +743,43 @@ if ('onhashchange' in window) {
 <span id="L680" class="LineNr"> 680 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L681" class="LineNr"> 681 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L682" class="LineNr"> 682 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L683" class="LineNr"> 683 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L683" class="LineNr"> 683 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L684" class="LineNr"> 684 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L685" class="LineNr"> 685 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L685" class="LineNr"> 685 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L686" class="LineNr"> 686 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L687" class="LineNr"> 687 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L688" class="LineNr"> 688 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L689" class="LineNr"> 689 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L690" class="LineNr"> 690 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L690" class="LineNr"> 690 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L691" class="LineNr"> 691 </span>    05/add-to-EAX  4/imm32
 <span id="L692" class="LineNr"> 692 </span>    50/push-EAX
 <span id="L693" class="LineNr"> 693 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L694" class="LineNr"> 694 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L694" class="LineNr"> 694 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L695" class="LineNr"> 695 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L696" class="LineNr"> 696 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L697" class="LineNr"> 697 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L698" class="LineNr"> 698 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L699" class="LineNr"> 699 </span>    68/push  _test-error-stream/imm32
+<span id="L699" class="LineNr"> 699 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L700" class="LineNr"> 700 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L701" class="LineNr"> 701 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L701" class="LineNr"> 701 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L702" class="LineNr"> 702 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L703" class="LineNr"> 703 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L704" class="LineNr"> 704 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L705" class="LineNr"> 705 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L706" class="LineNr"> 706 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L706" class="LineNr"> 706 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L707" class="LineNr"> 707 </span>    05/add-to-EAX  4/imm32
 <span id="L708" class="LineNr"> 708 </span>    50/push-EAX
 <span id="L709" class="LineNr"> 709 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L710" class="LineNr"> 710 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L710" class="LineNr"> 710 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L711" class="LineNr"> 711 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L712" class="LineNr"> 712 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L713" class="LineNr"> 713 </span>    <span class="subxComment"># initialize '_test-stream' to input with leading whitespace</span>
 <span id="L714" class="LineNr"> 714 </span>    <span class="subxS1Comment"># . write(_test-stream, text)</span>
 <span id="L715" class="LineNr"> 715 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L716" class="LineNr"> 716 </span>    68/push  <span class="Constant">&quot;  abc&quot;</span>/imm32
-<span id="L717" class="LineNr"> 717 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L717" class="LineNr"> 717 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L718" class="LineNr"> 718 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L719" class="LineNr"> 719 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L719" class="LineNr"> 719 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L720" class="LineNr"> 720 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L721" class="LineNr"> 721 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L722" class="LineNr"> 722 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -790,16 +791,16 @@ if ('onhashchange' in window) {
 <span id="L728" class="LineNr"> 728 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L729" class="LineNr"> 729 </span>    51/push-ECX/ed
 <span id="L730" class="LineNr"> 730 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L731" class="LineNr"> 731 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L731" class="LineNr"> 731 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L732" class="LineNr"> 732 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L733" class="LineNr"> 733 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L734" class="LineNr"> 734 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L735" class="LineNr"> 735 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L736" class="LineNr"> 736 </span>    51/push-ECX/ed
-<span id="L737" class="LineNr"> 737 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L738" class="LineNr"> 738 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L737" class="LineNr"> 737 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L738" class="LineNr"> 738 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L739" class="LineNr"> 739 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L740" class="LineNr"> 740 </span>    e8/call  scan-next-byte/disp32
+<span id="L740" class="LineNr"> 740 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L741" class="LineNr"> 741 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L742" class="LineNr"> 742 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L743" class="LineNr"> 743 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -809,12 +810,12 @@ if ('onhashchange' in window) {
 <span id="L747" class="LineNr"> 747 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L748" class="LineNr"> 748 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L749" class="LineNr"> 749 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L750" class="LineNr"> 750 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-skips-whitespace: unexpected abort&quot;</span>/imm32
+<span id="L750" class="LineNr"> 750 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L675'>test-scan-next-byte-skips-whitespace</a>: unexpected abort&quot;</span>/imm32
 <span id="L751" class="LineNr"> 751 </span>    68/push  0/imm32
 <span id="L752" class="LineNr"> 752 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L753" class="LineNr"> 753 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L754" class="LineNr"> 754 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L755" class="LineNr"> 755 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L755" class="LineNr"> 755 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L756" class="LineNr"> 756 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L757" class="LineNr"> 757 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L758" class="LineNr"> 758 </span>    <span class="subxComment"># return if abort</span>
@@ -826,7 +827,7 @@ if ('onhashchange' in window) {
 <span id="L764" class="LineNr"> 764 </span>    68/push  0x61/imm32/a
 <span id="L765" class="LineNr"> 765 </span>    50/push-EAX
 <span id="L766" class="LineNr"> 766 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L767" class="LineNr"> 767 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L767" class="LineNr"> 767 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L768" class="LineNr"> 768 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L769" class="LineNr"> 769 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L770" class="LineNr"> 770 </span><span class="Constant">$test-scan-next-byte-skips-whitespace:end</span>:
@@ -836,7 +837,7 @@ if ('onhashchange' in window) {
 <span id="L774" class="LineNr"> 774 </span>    5d/pop-to-EBP
 <span id="L775" class="LineNr"> 775 </span>    c3/return
 <span id="L776" class="LineNr"> 776 </span>
-<span id="L777" class="LineNr"> 777 </span><span class="subxTest">test-scan-next-byte-skips-comment</span>:
+<span id="L777" class="LineNr"> 777 </span><span class="subxTest"><a href='hex.subx.html#L777'>test-scan-next-byte-skips-comment</a></span>:
 <span id="L778" class="LineNr"> 778 </span>    <span class="subxH1Comment"># - check that the first byte after a comment (and newline) is returned</span>
 <span id="L779" class="LineNr"> 779 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L780" class="LineNr"> 780 </span>    55/push-EBP
@@ -844,59 +845,59 @@ if ('onhashchange' in window) {
 <span id="L782" class="LineNr"> 782 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L783" class="LineNr"> 783 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L784" class="LineNr"> 784 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L785" class="LineNr"> 785 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L785" class="LineNr"> 785 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L786" class="LineNr"> 786 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L787" class="LineNr"> 787 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L787" class="LineNr"> 787 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L788" class="LineNr"> 788 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L789" class="LineNr"> 789 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L790" class="LineNr"> 790 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L791" class="LineNr"> 791 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L792" class="LineNr"> 792 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L792" class="LineNr"> 792 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L793" class="LineNr"> 793 </span>    05/add-to-EAX  4/imm32
 <span id="L794" class="LineNr"> 794 </span>    50/push-EAX
 <span id="L795" class="LineNr"> 795 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L796" class="LineNr"> 796 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L796" class="LineNr"> 796 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L797" class="LineNr"> 797 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L798" class="LineNr"> 798 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L799" class="LineNr"> 799 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L800" class="LineNr"> 800 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L801" class="LineNr"> 801 </span>    68/push  _test-error-stream/imm32
+<span id="L801" class="LineNr"> 801 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L802" class="LineNr"> 802 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L803" class="LineNr"> 803 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L803" class="LineNr"> 803 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L804" class="LineNr"> 804 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L805" class="LineNr"> 805 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L806" class="LineNr"> 806 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L807" class="LineNr"> 807 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L808" class="LineNr"> 808 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L808" class="LineNr"> 808 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L809" class="LineNr"> 809 </span>    05/add-to-EAX  4/imm32
 <span id="L810" class="LineNr"> 810 </span>    50/push-EAX
 <span id="L811" class="LineNr"> 811 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L812" class="LineNr"> 812 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L812" class="LineNr"> 812 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L813" class="LineNr"> 813 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L814" class="LineNr"> 814 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L815" class="LineNr"> 815 </span>    <span class="subxComment"># initialize '_test-stream' to input with leading comment</span>
 <span id="L816" class="LineNr"> 816 </span>    <span class="subxS1Comment"># . write(_test-stream, comment)</span>
 <span id="L817" class="LineNr"> 817 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L818" class="LineNr"> 818 </span>    68/push  <span class="Constant">&quot;#x&quot;</span>/imm32
-<span id="L819" class="LineNr"> 819 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L819" class="LineNr"> 819 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L820" class="LineNr"> 820 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L821" class="LineNr"> 821 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L821" class="LineNr"> 821 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L822" class="LineNr"> 822 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L823" class="LineNr"> 823 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L824" class="LineNr"> 824 </span>    <span class="subxS1Comment"># . write(_test-stream, Newline)</span>
 <span id="L825" class="LineNr"> 825 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L826" class="LineNr"> 826 </span>    68/push  <span class="SpecialChar"><a href='051test.subx.html#L81'>Newline</a></span>/imm32
-<span id="L827" class="LineNr"> 827 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L826" class="LineNr"> 826 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L81'>Newline</a></span>/imm32
+<span id="L827" class="LineNr"> 827 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L828" class="LineNr"> 828 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L829" class="LineNr"> 829 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L829" class="LineNr"> 829 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L830" class="LineNr"> 830 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L831" class="LineNr"> 831 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L832" class="LineNr"> 832 </span>    <span class="subxS1Comment"># . write(_test-stream, real text)</span>
 <span id="L833" class="LineNr"> 833 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L834" class="LineNr"> 834 </span>    68/push  <span class="Constant">&quot;ab&quot;</span>/imm32
-<span id="L835" class="LineNr"> 835 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L835" class="LineNr"> 835 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L836" class="LineNr"> 836 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L837" class="LineNr"> 837 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L837" class="LineNr"> 837 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L838" class="LineNr"> 838 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L839" class="LineNr"> 839 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L840" class="LineNr"> 840 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -908,16 +909,16 @@ if ('onhashchange' in window) {
 <span id="L846" class="LineNr"> 846 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L847" class="LineNr"> 847 </span>    51/push-ECX/ed
 <span id="L848" class="LineNr"> 848 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L849" class="LineNr"> 849 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L849" class="LineNr"> 849 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L850" class="LineNr"> 850 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L851" class="LineNr"> 851 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L852" class="LineNr"> 852 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L853" class="LineNr"> 853 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L854" class="LineNr"> 854 </span>    51/push-ECX/ed
-<span id="L855" class="LineNr"> 855 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L856" class="LineNr"> 856 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L855" class="LineNr"> 855 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L856" class="LineNr"> 856 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L857" class="LineNr"> 857 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L858" class="LineNr"> 858 </span>    e8/call  scan-next-byte/disp32
+<span id="L858" class="LineNr"> 858 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L859" class="LineNr"> 859 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L860" class="LineNr"> 860 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L861" class="LineNr"> 861 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -927,12 +928,12 @@ if ('onhashchange' in window) {
 <span id="L865" class="LineNr"> 865 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L866" class="LineNr"> 866 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L867" class="LineNr"> 867 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L868" class="LineNr"> 868 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-skips-comment: unexpected abort&quot;</span>/imm32
+<span id="L868" class="LineNr"> 868 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L777'>test-scan-next-byte-skips-comment</a>: unexpected abort&quot;</span>/imm32
 <span id="L869" class="LineNr"> 869 </span>    68/push  0/imm32
 <span id="L870" class="LineNr"> 870 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L871" class="LineNr"> 871 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L872" class="LineNr"> 872 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L873" class="LineNr"> 873 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L873" class="LineNr"> 873 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L874" class="LineNr"> 874 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L875" class="LineNr"> 875 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L876" class="LineNr"> 876 </span>    <span class="subxComment"># return if abort</span>
@@ -944,7 +945,7 @@ if ('onhashchange' in window) {
 <span id="L882" class="LineNr"> 882 </span>    68/push  0x61/imm32/a
 <span id="L883" class="LineNr"> 883 </span>    50/push-EAX
 <span id="L884" class="LineNr"> 884 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L885" class="LineNr"> 885 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L885" class="LineNr"> 885 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L886" class="LineNr"> 886 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L887" class="LineNr"> 887 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L888" class="LineNr"> 888 </span><span class="Constant">$test-scan-next-byte-skips-comment:end</span>:
@@ -954,7 +955,7 @@ if ('onhashchange' in window) {
 <span id="L892" class="LineNr"> 892 </span>    5d/pop-to-EBP
 <span id="L893" class="LineNr"> 893 </span>    c3/return
 <span id="L894" class="LineNr"> 894 </span>
-<span id="L895" class="LineNr"> 895 </span><span class="subxTest">test-scan-next-byte-skips-comment-and-whitespace</span>:
+<span id="L895" class="LineNr"> 895 </span><span class="subxTest"><a href='hex.subx.html#L895'>test-scan-next-byte-skips-comment-and-whitespace</a></span>:
 <span id="L896" class="LineNr"> 896 </span>    <span class="subxH1Comment"># - check that the first byte after a comment and any further whitespace is returned</span>
 <span id="L897" class="LineNr"> 897 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L898" class="LineNr"> 898 </span>    55/push-EBP
@@ -962,59 +963,59 @@ if ('onhashchange' in window) {
 <span id="L900" class="LineNr"> 900 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L901" class="LineNr"> 901 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L902" class="LineNr"> 902 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L903" class="LineNr"> 903 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L903" class="LineNr"> 903 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L904" class="LineNr"> 904 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L905" class="LineNr"> 905 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L905" class="LineNr"> 905 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L906" class="LineNr"> 906 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L907" class="LineNr"> 907 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L908" class="LineNr"> 908 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L909" class="LineNr"> 909 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L910" class="LineNr"> 910 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L910" class="LineNr"> 910 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L911" class="LineNr"> 911 </span>    05/add-to-EAX  4/imm32
 <span id="L912" class="LineNr"> 912 </span>    50/push-EAX
 <span id="L913" class="LineNr"> 913 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L914" class="LineNr"> 914 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L914" class="LineNr"> 914 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L915" class="LineNr"> 915 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L916" class="LineNr"> 916 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L917" class="LineNr"> 917 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L918" class="LineNr"> 918 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L919" class="LineNr"> 919 </span>    68/push  _test-error-stream/imm32
+<span id="L919" class="LineNr"> 919 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L920" class="LineNr"> 920 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L921" class="LineNr"> 921 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L921" class="LineNr"> 921 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L922" class="LineNr"> 922 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L923" class="LineNr"> 923 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L924" class="LineNr"> 924 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L925" class="LineNr"> 925 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L926" class="LineNr"> 926 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L926" class="LineNr"> 926 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L927" class="LineNr"> 927 </span>    05/add-to-EAX  4/imm32
 <span id="L928" class="LineNr"> 928 </span>    50/push-EAX
 <span id="L929" class="LineNr"> 929 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L930" class="LineNr"> 930 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L930" class="LineNr"> 930 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L931" class="LineNr"> 931 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L932" class="LineNr"> 932 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L933" class="LineNr"> 933 </span>    <span class="subxComment"># initialize '_test-stream' to input with leading comment and more whitespace after newline</span>
 <span id="L934" class="LineNr"> 934 </span>    <span class="subxS1Comment"># . write(_test-stream, comment)</span>
 <span id="L935" class="LineNr"> 935 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L936" class="LineNr"> 936 </span>    68/push  <span class="Constant">&quot;#x&quot;</span>/imm32
-<span id="L937" class="LineNr"> 937 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L937" class="LineNr"> 937 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L938" class="LineNr"> 938 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L939" class="LineNr"> 939 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L939" class="LineNr"> 939 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L940" class="LineNr"> 940 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L941" class="LineNr"> 941 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L942" class="LineNr"> 942 </span>    <span class="subxS1Comment"># . write(_test-stream, Newline)</span>
 <span id="L943" class="LineNr"> 943 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L944" class="LineNr"> 944 </span>    68/push  <span class="SpecialChar"><a href='051test.subx.html#L81'>Newline</a></span>/imm32
-<span id="L945" class="LineNr"> 945 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L944" class="LineNr"> 944 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L81'>Newline</a></span>/imm32
+<span id="L945" class="LineNr"> 945 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L946" class="LineNr"> 946 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L947" class="LineNr"> 947 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L947" class="LineNr"> 947 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L948" class="LineNr"> 948 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L949" class="LineNr"> 949 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L950" class="LineNr"> 950 </span>    <span class="subxS1Comment"># . write(_test-stream, real text)</span>
 <span id="L951" class="LineNr"> 951 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L952" class="LineNr"> 952 </span>    68/push  <span class="Constant">&quot; ab&quot;</span>/imm32
-<span id="L953" class="LineNr"> 953 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L953" class="LineNr"> 953 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L954" class="LineNr"> 954 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L955" class="LineNr"> 955 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L955" class="LineNr"> 955 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L956" class="LineNr"> 956 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L957" class="LineNr"> 957 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L958" class="LineNr"> 958 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -1026,16 +1027,16 @@ if ('onhashchange' in window) {
 <span id="L964" class="LineNr"> 964 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L965" class="LineNr"> 965 </span>    51/push-ECX/ed
 <span id="L966" class="LineNr"> 966 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L967" class="LineNr"> 967 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L967" class="LineNr"> 967 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L968" class="LineNr"> 968 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L969" class="LineNr"> 969 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L970" class="LineNr"> 970 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L971" class="LineNr"> 971 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L972" class="LineNr"> 972 </span>    51/push-ECX/ed
-<span id="L973" class="LineNr"> 973 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L974" class="LineNr"> 974 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L973" class="LineNr"> 973 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L974" class="LineNr"> 974 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L975" class="LineNr"> 975 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L976" class="LineNr"> 976 </span>    e8/call  scan-next-byte/disp32
+<span id="L976" class="LineNr"> 976 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L977" class="LineNr"> 977 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L978" class="LineNr"> 978 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L979" class="LineNr"> 979 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -1045,12 +1046,12 @@ if ('onhashchange' in window) {
 <span id="L983" class="LineNr"> 983 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L984" class="LineNr"> 984 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L985" class="LineNr"> 985 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L986" class="LineNr"> 986 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-skips-comment-and-whitespace: unexpected abort&quot;</span>/imm32
+<span id="L986" class="LineNr"> 986 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L895'>test-scan-next-byte-skips-comment-and-whitespace</a>: unexpected abort&quot;</span>/imm32
 <span id="L987" class="LineNr"> 987 </span>    68/push  0/imm32
 <span id="L988" class="LineNr"> 988 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L989" class="LineNr"> 989 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L990" class="LineNr"> 990 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L991" class="LineNr"> 991 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L991" class="LineNr"> 991 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L992" class="LineNr"> 992 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L993" class="LineNr"> 993 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L994" class="LineNr"> 994 </span>    <span class="subxComment"># return if abort</span>
@@ -1062,7 +1063,7 @@ if ('onhashchange' in window) {
 <span id="L1000" class="LineNr">1000 </span>    68/push  0x61/imm32/a
 <span id="L1001" class="LineNr">1001 </span>    50/push-EAX
 <span id="L1002" class="LineNr">1002 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1003" class="LineNr">1003 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1003" class="LineNr">1003 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1004" class="LineNr">1004 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1005" class="LineNr">1005 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1006" class="LineNr">1006 </span><span class="Constant">$test-scan-next-byte-skips-comment-and-whitespace:end</span>:
@@ -1072,7 +1073,7 @@ if ('onhashchange' in window) {
 <span id="L1010" class="LineNr">1010 </span>    5d/pop-to-EBP
 <span id="L1011" class="LineNr">1011 </span>    c3/return
 <span id="L1012" class="LineNr">1012 </span>
-<span id="L1013" class="LineNr">1013 </span><span class="subxTest">test-scan-next-byte-skips-whitespace-and-comment</span>:
+<span id="L1013" class="LineNr">1013 </span><span class="subxTest"><a href='hex.subx.html#L1013'>test-scan-next-byte-skips-whitespace-and-comment</a></span>:
 <span id="L1014" class="LineNr">1014 </span>    <span class="subxH1Comment"># - check that the first byte after any whitespace and comments is returned</span>
 <span id="L1015" class="LineNr">1015 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L1016" class="LineNr">1016 </span>    55/push-EBP
@@ -1080,59 +1081,59 @@ if ('onhashchange' in window) {
 <span id="L1018" class="LineNr">1018 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L1019" class="LineNr">1019 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L1020" class="LineNr">1020 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1021" class="LineNr">1021 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1021" class="LineNr">1021 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1022" class="LineNr">1022 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1023" class="LineNr">1023 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1023" class="LineNr">1023 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1024" class="LineNr">1024 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1025" class="LineNr">1025 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1026" class="LineNr">1026 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L1027" class="LineNr">1027 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1028" class="LineNr">1028 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1028" class="LineNr">1028 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1029" class="LineNr">1029 </span>    05/add-to-EAX  4/imm32
 <span id="L1030" class="LineNr">1030 </span>    50/push-EAX
 <span id="L1031" class="LineNr">1031 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1032" class="LineNr">1032 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1032" class="LineNr">1032 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1033" class="LineNr">1033 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1034" class="LineNr">1034 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1035" class="LineNr">1035 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L1036" class="LineNr">1036 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1037" class="LineNr">1037 </span>    68/push  _test-error-stream/imm32
+<span id="L1037" class="LineNr">1037 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L1038" class="LineNr">1038 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1039" class="LineNr">1039 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1039" class="LineNr">1039 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1040" class="LineNr">1040 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1041" class="LineNr">1041 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1042" class="LineNr">1042 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L1043" class="LineNr">1043 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1044" class="LineNr">1044 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L1044" class="LineNr">1044 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L1045" class="LineNr">1045 </span>    05/add-to-EAX  4/imm32
 <span id="L1046" class="LineNr">1046 </span>    50/push-EAX
 <span id="L1047" class="LineNr">1047 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1048" class="LineNr">1048 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1048" class="LineNr">1048 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1049" class="LineNr">1049 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1050" class="LineNr">1050 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1051" class="LineNr">1051 </span>    <span class="subxComment"># initialize '_test-stream' to input with leading whitespace and comment</span>
 <span id="L1052" class="LineNr">1052 </span>    <span class="subxS1Comment"># . write(_test-stream, comment)</span>
 <span id="L1053" class="LineNr">1053 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1054" class="LineNr">1054 </span>    68/push  <span class="Constant">&quot; #x&quot;</span>/imm32
-<span id="L1055" class="LineNr">1055 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1055" class="LineNr">1055 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1056" class="LineNr">1056 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1057" class="LineNr">1057 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1057" class="LineNr">1057 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1058" class="LineNr">1058 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1059" class="LineNr">1059 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1060" class="LineNr">1060 </span>    <span class="subxS1Comment"># . write(_test-stream, Newline)</span>
 <span id="L1061" class="LineNr">1061 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1062" class="LineNr">1062 </span>    68/push  <span class="SpecialChar"><a href='051test.subx.html#L81'>Newline</a></span>/imm32
-<span id="L1063" class="LineNr">1063 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1062" class="LineNr">1062 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L81'>Newline</a></span>/imm32
+<span id="L1063" class="LineNr">1063 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1064" class="LineNr">1064 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1065" class="LineNr">1065 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1065" class="LineNr">1065 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1066" class="LineNr">1066 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1067" class="LineNr">1067 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1068" class="LineNr">1068 </span>    <span class="subxS1Comment"># . write(_test-stream, real text)</span>
 <span id="L1069" class="LineNr">1069 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1070" class="LineNr">1070 </span>    68/push  <span class="Constant">&quot;ab&quot;</span>/imm32
-<span id="L1071" class="LineNr">1071 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1071" class="LineNr">1071 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1072" class="LineNr">1072 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1073" class="LineNr">1073 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1073" class="LineNr">1073 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1074" class="LineNr">1074 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1075" class="LineNr">1075 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1076" class="LineNr">1076 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -1144,16 +1145,16 @@ if ('onhashchange' in window) {
 <span id="L1082" class="LineNr">1082 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L1083" class="LineNr">1083 </span>    51/push-ECX/ed
 <span id="L1084" class="LineNr">1084 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1085" class="LineNr">1085 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L1085" class="LineNr">1085 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L1086" class="LineNr">1086 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1087" class="LineNr">1087 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1088" class="LineNr">1088 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L1089" class="LineNr">1089 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1090" class="LineNr">1090 </span>    51/push-ECX/ed
-<span id="L1091" class="LineNr">1091 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L1092" class="LineNr">1092 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1091" class="LineNr">1091 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L1092" class="LineNr">1092 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1093" class="LineNr">1093 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1094" class="LineNr">1094 </span>    e8/call  scan-next-byte/disp32
+<span id="L1094" class="LineNr">1094 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L1095" class="LineNr">1095 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L1096" class="LineNr">1096 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L1097" class="LineNr">1097 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -1163,12 +1164,12 @@ if ('onhashchange' in window) {
 <span id="L1101" class="LineNr">1101 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L1102" class="LineNr">1102 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L1103" class="LineNr">1103 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1104" class="LineNr">1104 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-skips-whitespace-and-comment: unexpected abort&quot;</span>/imm32
+<span id="L1104" class="LineNr">1104 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L1013'>test-scan-next-byte-skips-whitespace-and-comment</a>: unexpected abort&quot;</span>/imm32
 <span id="L1105" class="LineNr">1105 </span>    68/push  0/imm32
 <span id="L1106" class="LineNr">1106 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L1107" class="LineNr">1107 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L1108" class="LineNr">1108 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1109" class="LineNr">1109 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1109" class="LineNr">1109 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1110" class="LineNr">1110 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1111" class="LineNr">1111 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1112" class="LineNr">1112 </span>    <span class="subxComment"># return if abort</span>
@@ -1180,7 +1181,7 @@ if ('onhashchange' in window) {
 <span id="L1118" class="LineNr">1118 </span>    68/push  0x61/imm32/a
 <span id="L1119" class="LineNr">1119 </span>    50/push-EAX
 <span id="L1120" class="LineNr">1120 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1121" class="LineNr">1121 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1121" class="LineNr">1121 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1122" class="LineNr">1122 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1123" class="LineNr">1123 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1124" class="LineNr">1124 </span><span class="Constant">$test-scan-next-byte-skips-whitespace-and-comment:end</span>:
@@ -1190,7 +1191,7 @@ if ('onhashchange' in window) {
 <span id="L1128" class="LineNr">1128 </span>    5d/pop-to-EBP
 <span id="L1129" class="LineNr">1129 </span>    c3/return
 <span id="L1130" class="LineNr">1130 </span>
-<span id="L1131" class="LineNr">1131 </span><span class="subxTest">test-scan-next-byte-reads-final-byte</span>:
+<span id="L1131" class="LineNr">1131 </span><span class="subxTest"><a href='hex.subx.html#L1131'>test-scan-next-byte-reads-final-byte</a></span>:
 <span id="L1132" class="LineNr">1132 </span>    <span class="subxH1Comment"># - check that the final byte in input is returned</span>
 <span id="L1133" class="LineNr">1133 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L1134" class="LineNr">1134 </span>    55/push-EBP
@@ -1198,43 +1199,43 @@ if ('onhashchange' in window) {
 <span id="L1136" class="LineNr">1136 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L1137" class="LineNr">1137 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L1138" class="LineNr">1138 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1139" class="LineNr">1139 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1139" class="LineNr">1139 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1140" class="LineNr">1140 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1141" class="LineNr">1141 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1141" class="LineNr">1141 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1142" class="LineNr">1142 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1143" class="LineNr">1143 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1144" class="LineNr">1144 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L1145" class="LineNr">1145 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1146" class="LineNr">1146 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1146" class="LineNr">1146 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1147" class="LineNr">1147 </span>    05/add-to-EAX  4/imm32
 <span id="L1148" class="LineNr">1148 </span>    50/push-EAX
 <span id="L1149" class="LineNr">1149 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1150" class="LineNr">1150 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1150" class="LineNr">1150 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1151" class="LineNr">1151 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1152" class="LineNr">1152 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1153" class="LineNr">1153 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L1154" class="LineNr">1154 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1155" class="LineNr">1155 </span>    68/push  _test-error-stream/imm32
+<span id="L1155" class="LineNr">1155 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L1156" class="LineNr">1156 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1157" class="LineNr">1157 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1157" class="LineNr">1157 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1158" class="LineNr">1158 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1159" class="LineNr">1159 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1160" class="LineNr">1160 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L1161" class="LineNr">1161 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1162" class="LineNr">1162 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L1162" class="LineNr">1162 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L1163" class="LineNr">1163 </span>    05/add-to-EAX  4/imm32
 <span id="L1164" class="LineNr">1164 </span>    50/push-EAX
 <span id="L1165" class="LineNr">1165 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1166" class="LineNr">1166 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1166" class="LineNr">1166 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1167" class="LineNr">1167 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1168" class="LineNr">1168 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1169" class="LineNr">1169 </span>    <span class="subxComment"># initialize '_test-stream' to input with single character</span>
 <span id="L1170" class="LineNr">1170 </span>    <span class="subxS1Comment"># . write(_test-stream, character)</span>
 <span id="L1171" class="LineNr">1171 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1172" class="LineNr">1172 </span>    68/push  <span class="Constant">&quot;a&quot;</span>/imm32
-<span id="L1173" class="LineNr">1173 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1173" class="LineNr">1173 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1174" class="LineNr">1174 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1175" class="LineNr">1175 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1175" class="LineNr">1175 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1176" class="LineNr">1176 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1177" class="LineNr">1177 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1178" class="LineNr">1178 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -1246,16 +1247,16 @@ if ('onhashchange' in window) {
 <span id="L1184" class="LineNr">1184 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L1185" class="LineNr">1185 </span>    51/push-ECX/ed
 <span id="L1186" class="LineNr">1186 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1187" class="LineNr">1187 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L1187" class="LineNr">1187 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L1188" class="LineNr">1188 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1189" class="LineNr">1189 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1190" class="LineNr">1190 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L1191" class="LineNr">1191 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1192" class="LineNr">1192 </span>    51/push-ECX/ed
-<span id="L1193" class="LineNr">1193 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L1194" class="LineNr">1194 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1193" class="LineNr">1193 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L1194" class="LineNr">1194 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1195" class="LineNr">1195 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1196" class="LineNr">1196 </span>    e8/call  scan-next-byte/disp32
+<span id="L1196" class="LineNr">1196 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L1197" class="LineNr">1197 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L1198" class="LineNr">1198 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L1199" class="LineNr">1199 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -1265,12 +1266,12 @@ if ('onhashchange' in window) {
 <span id="L1203" class="LineNr">1203 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L1204" class="LineNr">1204 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L1205" class="LineNr">1205 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1206" class="LineNr">1206 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-reads-final-byte: unexpected abort&quot;</span>/imm32
+<span id="L1206" class="LineNr">1206 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L1131'>test-scan-next-byte-reads-final-byte</a>: unexpected abort&quot;</span>/imm32
 <span id="L1207" class="LineNr">1207 </span>    68/push  0/imm32
 <span id="L1208" class="LineNr">1208 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L1209" class="LineNr">1209 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L1210" class="LineNr">1210 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1211" class="LineNr">1211 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1211" class="LineNr">1211 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1212" class="LineNr">1212 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1213" class="LineNr">1213 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1214" class="LineNr">1214 </span>    <span class="subxComment"># return if abort</span>
@@ -1282,7 +1283,7 @@ if ('onhashchange' in window) {
 <span id="L1220" class="LineNr">1220 </span>    68/push  0x61/imm32/a
 <span id="L1221" class="LineNr">1221 </span>    50/push-EAX
 <span id="L1222" class="LineNr">1222 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1223" class="LineNr">1223 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1223" class="LineNr">1223 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1224" class="LineNr">1224 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1225" class="LineNr">1225 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1226" class="LineNr">1226 </span><span class="Constant">$test-scan-next-byte-reads-final-byte:end</span>:
@@ -1292,7 +1293,7 @@ if ('onhashchange' in window) {
 <span id="L1230" class="LineNr">1230 </span>    5d/pop-to-EBP
 <span id="L1231" class="LineNr">1231 </span>    c3/return
 <span id="L1232" class="LineNr">1232 </span>
-<span id="L1233" class="LineNr">1233 </span><span class="subxTest">test-scan-next-byte-handles-eof</span>:
+<span id="L1233" class="LineNr">1233 </span><span class="subxTest"><a href='hex.subx.html#L1233'>test-scan-next-byte-handles-eof</a></span>:
 <span id="L1234" class="LineNr">1234 </span>    <span class="subxH1Comment"># - check that the right sentinel value is returned when there's no data remaining to be read</span>
 <span id="L1235" class="LineNr">1235 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L1236" class="LineNr">1236 </span>    55/push-EBP
@@ -1300,34 +1301,34 @@ if ('onhashchange' in window) {
 <span id="L1238" class="LineNr">1238 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L1239" class="LineNr">1239 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L1240" class="LineNr">1240 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1241" class="LineNr">1241 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1241" class="LineNr">1241 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1242" class="LineNr">1242 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1243" class="LineNr">1243 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1243" class="LineNr">1243 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1244" class="LineNr">1244 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1245" class="LineNr">1245 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1246" class="LineNr">1246 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L1247" class="LineNr">1247 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1248" class="LineNr">1248 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1248" class="LineNr">1248 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1249" class="LineNr">1249 </span>    05/add-to-EAX  4/imm32
 <span id="L1250" class="LineNr">1250 </span>    50/push-EAX
 <span id="L1251" class="LineNr">1251 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1252" class="LineNr">1252 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1252" class="LineNr">1252 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1253" class="LineNr">1253 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1254" class="LineNr">1254 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1255" class="LineNr">1255 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L1256" class="LineNr">1256 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1257" class="LineNr">1257 </span>    68/push  _test-error-stream/imm32
+<span id="L1257" class="LineNr">1257 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L1258" class="LineNr">1258 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1259" class="LineNr">1259 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1259" class="LineNr">1259 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1260" class="LineNr">1260 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1261" class="LineNr">1261 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1262" class="LineNr">1262 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L1263" class="LineNr">1263 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1264" class="LineNr">1264 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L1264" class="LineNr">1264 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L1265" class="LineNr">1265 </span>    05/add-to-EAX  4/imm32
 <span id="L1266" class="LineNr">1266 </span>    50/push-EAX
 <span id="L1267" class="LineNr">1267 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1268" class="LineNr">1268 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1268" class="LineNr">1268 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1269" class="LineNr">1269 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1270" class="LineNr">1270 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1271" class="LineNr">1271 </span>    <span class="subxComment"># leave '_test-stream' empty</span>
@@ -1340,16 +1341,16 @@ if ('onhashchange' in window) {
 <span id="L1278" class="LineNr">1278 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L1279" class="LineNr">1279 </span>    51/push-ECX/ed
 <span id="L1280" class="LineNr">1280 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1281" class="LineNr">1281 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L1281" class="LineNr">1281 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L1282" class="LineNr">1282 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1283" class="LineNr">1283 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1284" class="LineNr">1284 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L1285" class="LineNr">1285 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1286" class="LineNr">1286 </span>    51/push-ECX/ed
-<span id="L1287" class="LineNr">1287 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L1288" class="LineNr">1288 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1287" class="LineNr">1287 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L1288" class="LineNr">1288 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1289" class="LineNr">1289 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1290" class="LineNr">1290 </span>    e8/call  scan-next-byte/disp32
+<span id="L1290" class="LineNr">1290 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L1291" class="LineNr">1291 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L1292" class="LineNr">1292 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L1293" class="LineNr">1293 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -1359,12 +1360,12 @@ if ('onhashchange' in window) {
 <span id="L1297" class="LineNr">1297 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L1298" class="LineNr">1298 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L1299" class="LineNr">1299 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1300" class="LineNr">1300 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-handles-eof: unexpected abort&quot;</span>/imm32
+<span id="L1300" class="LineNr">1300 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L1233'>test-scan-next-byte-handles-eof</a>: unexpected abort&quot;</span>/imm32
 <span id="L1301" class="LineNr">1301 </span>    68/push  0/imm32
 <span id="L1302" class="LineNr">1302 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L1303" class="LineNr">1303 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L1304" class="LineNr">1304 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1305" class="LineNr">1305 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1305" class="LineNr">1305 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1306" class="LineNr">1306 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1307" class="LineNr">1307 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1308" class="LineNr">1308 </span>    <span class="subxComment"># return if abort</span>
@@ -1376,7 +1377,7 @@ if ('onhashchange' in window) {
 <span id="L1314" class="LineNr">1314 </span>    68/push  0xffffffff/imm32/eof
 <span id="L1315" class="LineNr">1315 </span>    50/push-EAX
 <span id="L1316" class="LineNr">1316 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1317" class="LineNr">1317 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1317" class="LineNr">1317 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1318" class="LineNr">1318 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1319" class="LineNr">1319 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1320" class="LineNr">1320 </span><span class="Constant">$test-scan-next-byte-handles-eof:end</span>:
@@ -1386,7 +1387,7 @@ if ('onhashchange' in window) {
 <span id="L1324" class="LineNr">1324 </span>    5d/pop-to-EBP
 <span id="L1325" class="LineNr">1325 </span>    c3/return
 <span id="L1326" class="LineNr">1326 </span>
-<span id="L1327" class="LineNr">1327 </span><span class="subxTest">test-scan-next-byte-aborts-on-invalid-byte</span>:
+<span id="L1327" class="LineNr">1327 </span><span class="subxTest"><a href='hex.subx.html#L1327'>test-scan-next-byte-aborts-on-invalid-byte</a></span>:
 <span id="L1328" class="LineNr">1328 </span>    <span class="subxH1Comment"># - check that the a bad byte immediately aborts</span>
 <span id="L1329" class="LineNr">1329 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L1330" class="LineNr">1330 </span>    55/push-EBP
@@ -1394,43 +1395,43 @@ if ('onhashchange' in window) {
 <span id="L1332" class="LineNr">1332 </span>    <span class="subxComment"># clear all streams</span>
 <span id="L1333" class="LineNr">1333 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L1334" class="LineNr">1334 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1335" class="LineNr">1335 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1335" class="LineNr">1335 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1336" class="LineNr">1336 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1337" class="LineNr">1337 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1337" class="LineNr">1337 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1338" class="LineNr">1338 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1339" class="LineNr">1339 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1340" class="LineNr">1340 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L1341" class="LineNr">1341 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1342" class="LineNr">1342 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1342" class="LineNr">1342 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1343" class="LineNr">1343 </span>    05/add-to-EAX  4/imm32
 <span id="L1344" class="LineNr">1344 </span>    50/push-EAX
 <span id="L1345" class="LineNr">1345 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1346" class="LineNr">1346 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1346" class="LineNr">1346 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1347" class="LineNr">1347 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1348" class="LineNr">1348 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1349" class="LineNr">1349 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-stream)</span>
 <span id="L1350" class="LineNr">1350 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1351" class="LineNr">1351 </span>    68/push  _test-error-stream/imm32
+<span id="L1351" class="LineNr">1351 </span>    68/push  <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L1352" class="LineNr">1352 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1353" class="LineNr">1353 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1353" class="LineNr">1353 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1354" class="LineNr">1354 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1355" class="LineNr">1355 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1356" class="LineNr">1356 </span>    <span class="subxS1Comment"># . clear-stream(_test-error-buffered-file+4)</span>
 <span id="L1357" class="LineNr">1357 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1358" class="LineNr">1358 </span>    b8/copy-to-EAX  _test-error-buffered-file/imm32
+<span id="L1358" class="LineNr">1358 </span>    b8/copy-to-EAX  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
 <span id="L1359" class="LineNr">1359 </span>    05/add-to-EAX  4/imm32
 <span id="L1360" class="LineNr">1360 </span>    50/push-EAX
 <span id="L1361" class="LineNr">1361 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1362" class="LineNr">1362 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1362" class="LineNr">1362 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1363" class="LineNr">1363 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1364" class="LineNr">1364 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1365" class="LineNr">1365 </span>    <span class="subxComment"># initialize '_test-stream' to &quot;x&quot;</span>
 <span id="L1366" class="LineNr">1366 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;x&quot;)</span>
 <span id="L1367" class="LineNr">1367 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1368" class="LineNr">1368 </span>    68/push  <span class="Constant">&quot;x&quot;</span>/imm32
-<span id="L1369" class="LineNr">1369 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1369" class="LineNr">1369 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1370" class="LineNr">1370 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1371" class="LineNr">1371 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1371" class="LineNr">1371 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1372" class="LineNr">1372 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1373" class="LineNr">1373 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1374" class="LineNr">1374 </span>    <span class="subxComment"># initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below</span>
@@ -1442,16 +1443,16 @@ if ('onhashchange' in window) {
 <span id="L1380" class="LineNr">1380 </span>    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
 <span id="L1381" class="LineNr">1381 </span>    51/push-ECX/ed
 <span id="L1382" class="LineNr">1382 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1383" class="LineNr">1383 </span>    e8/call  <a href='057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
+<span id="L1383" class="LineNr">1383 </span>    e8/call  <a href='../057stop.subx.html#L51'>tailor-exit-descriptor</a>/disp32
 <span id="L1384" class="LineNr">1384 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1385" class="LineNr">1385 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1386" class="LineNr">1386 </span>    <span class="subxComment"># EAX = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)</span>
 <span id="L1387" class="LineNr">1387 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1388" class="LineNr">1388 </span>    51/push-ECX/ed
-<span id="L1389" class="LineNr">1389 </span>    68/push  _test-error-buffered-file/imm32
-<span id="L1390" class="LineNr">1390 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1389" class="LineNr">1389 </span>    68/push  <a href='hex.subx.html#L1700'>_test-error-buffered-file</a>/imm32
+<span id="L1390" class="LineNr">1390 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1391" class="LineNr">1391 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1392" class="LineNr">1392 </span>    e8/call  scan-next-byte/disp32
+<span id="L1392" class="LineNr">1392 </span>    e8/call  <a href='hex.subx.html#L494'>scan-next-byte</a>/disp32
 <span id="L1393" class="LineNr">1393 </span>    <span class="subxComment"># registers except ESP may be clobbered at this point</span>
 <span id="L1394" class="LineNr">1394 </span>    <span class="subxComment"># pop args to scan-next-byte</span>
 <span id="L1395" class="LineNr">1395 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
@@ -1466,7 +1467,7 @@ if ('onhashchange' in window) {
 <span id="L1404" class="LineNr">1404 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L1405" class="LineNr">1405 </span>    ff          6/subop/push        1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ECX+4)</span>
 <span id="L1406" class="LineNr">1406 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1407" class="LineNr">1407 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1407" class="LineNr">1407 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1408" class="LineNr">1408 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1409" class="LineNr">1409 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1410" class="LineNr">1410 </span><span class="Constant">$test-scan-next-byte-aborts-on-invalid-byte:end</span>:
@@ -1476,7 +1477,7 @@ if ('onhashchange' in window) {
 <span id="L1414" class="LineNr">1414 </span>    5d/pop-to-EBP
 <span id="L1415" class="LineNr">1415 </span>    c3/return
 <span id="L1416" class="LineNr">1416 </span>
-<span id="L1417" class="LineNr">1417 </span><span class="subxFunction">is-hex-lowercase-byte?</span>:  <span class="subxComment"># c : byte -&gt; bool/EAX</span>
+<span id="L1417" class="LineNr">1417 </span><span class="subxFunction"><a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a></span>:  <span class="subxComment"># c : byte -&gt; bool/EAX</span>
 <span id="L1418" class="LineNr">1418 </span>    <span class="subxS1Comment"># . prolog</span>
 <span id="L1419" class="LineNr">1419 </span>    55/push-EBP
 <span id="L1420" class="LineNr">1420 </span>    89/copy                         3/mod/direct    5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/ESP  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ESP to EBP</span>
@@ -1508,12 +1509,12 @@ if ('onhashchange' in window) {
 <span id="L1446" class="LineNr">1446 </span>    5d/pop-to-EBP
 <span id="L1447" class="LineNr">1447 </span>    c3/return
 <span id="L1448" class="LineNr">1448 </span>
-<span id="L1449" class="LineNr">1449 </span><span class="subxTest">test-hex-below-0</span>:
+<span id="L1449" class="LineNr">1449 </span><span class="subxTest"><a href='hex.subx.html#L1449'>test-hex-below-0</a></span>:
 <span id="L1450" class="LineNr">1450 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x2f)</span>
 <span id="L1451" class="LineNr">1451 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1452" class="LineNr">1452 </span>    68/push  0x2f/imm32
 <span id="L1453" class="LineNr">1453 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1454" class="LineNr">1454 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1454" class="LineNr">1454 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1455" class="LineNr">1455 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1456" class="LineNr">1456 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1457" class="LineNr">1457 </span>    <span class="subxComment"># check-ints-equal(EAX, 0, msg)</span>
@@ -1522,17 +1523,17 @@ if ('onhashchange' in window) {
 <span id="L1460" class="LineNr">1460 </span>    68/push  0/imm32/false
 <span id="L1461" class="LineNr">1461 </span>    50/push-EAX
 <span id="L1462" class="LineNr">1462 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1463" class="LineNr">1463 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1463" class="LineNr">1463 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1464" class="LineNr">1464 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1465" class="LineNr">1465 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1466" class="LineNr">1466 </span>    c3/return
 <span id="L1467" class="LineNr">1467 </span>
-<span id="L1468" class="LineNr">1468 </span><span class="subxTest">test-hex-0-to-9</span>:
+<span id="L1468" class="LineNr">1468 </span><span class="subxTest"><a href='hex.subx.html#L1468'>test-hex-0-to-9</a></span>:
 <span id="L1469" class="LineNr">1469 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x30)</span>
 <span id="L1470" class="LineNr">1470 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1471" class="LineNr">1471 </span>    68/push  0x30/imm32
 <span id="L1472" class="LineNr">1472 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1473" class="LineNr">1473 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1473" class="LineNr">1473 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1474" class="LineNr">1474 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1475" class="LineNr">1475 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1476" class="LineNr">1476 </span>    <span class="subxComment"># check-ints-equal(EAX, 1, msg)</span>
@@ -1541,14 +1542,14 @@ if ('onhashchange' in window) {
 <span id="L1479" class="LineNr">1479 </span>    68/push  1/imm32/true
 <span id="L1480" class="LineNr">1480 </span>    50/push-EAX
 <span id="L1481" class="LineNr">1481 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1482" class="LineNr">1482 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1482" class="LineNr">1482 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1483" class="LineNr">1483 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1484" class="LineNr">1484 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1485" class="LineNr">1485 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x39)</span>
 <span id="L1486" class="LineNr">1486 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1487" class="LineNr">1487 </span>    68/push  0x39/imm32
 <span id="L1488" class="LineNr">1488 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1489" class="LineNr">1489 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1489" class="LineNr">1489 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1490" class="LineNr">1490 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1491" class="LineNr">1491 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1492" class="LineNr">1492 </span>    <span class="subxComment"># check-ints-equal(EAX, 1, msg)</span>
@@ -1557,17 +1558,17 @@ if ('onhashchange' in window) {
 <span id="L1495" class="LineNr">1495 </span>    68/push  1/imm32/true
 <span id="L1496" class="LineNr">1496 </span>    50/push-EAX
 <span id="L1497" class="LineNr">1497 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1498" class="LineNr">1498 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1498" class="LineNr">1498 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1499" class="LineNr">1499 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1500" class="LineNr">1500 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1501" class="LineNr">1501 </span>    c3/return
 <span id="L1502" class="LineNr">1502 </span>
-<span id="L1503" class="LineNr">1503 </span><span class="subxTest">test-hex-above-9-to-a</span>:
+<span id="L1503" class="LineNr">1503 </span><span class="subxTest"><a href='hex.subx.html#L1503'>test-hex-above-9-to-a</a></span>:
 <span id="L1504" class="LineNr">1504 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x3a)</span>
 <span id="L1505" class="LineNr">1505 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1506" class="LineNr">1506 </span>    68/push  0x3a/imm32
 <span id="L1507" class="LineNr">1507 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1508" class="LineNr">1508 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1508" class="LineNr">1508 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1509" class="LineNr">1509 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1510" class="LineNr">1510 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1511" class="LineNr">1511 </span>    <span class="subxComment"># check-ints-equal(EAX, 0, msg)</span>
@@ -1576,17 +1577,17 @@ if ('onhashchange' in window) {
 <span id="L1514" class="LineNr">1514 </span>    68/push  0/imm32/false
 <span id="L1515" class="LineNr">1515 </span>    50/push-EAX
 <span id="L1516" class="LineNr">1516 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1517" class="LineNr">1517 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1517" class="LineNr">1517 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1518" class="LineNr">1518 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1519" class="LineNr">1519 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1520" class="LineNr">1520 </span>    c3/return
 <span id="L1521" class="LineNr">1521 </span>
-<span id="L1522" class="LineNr">1522 </span><span class="subxTest">test-hex-a-to-f</span>:
+<span id="L1522" class="LineNr">1522 </span><span class="subxTest"><a href='hex.subx.html#L1522'>test-hex-a-to-f</a></span>:
 <span id="L1523" class="LineNr">1523 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x61)</span>
 <span id="L1524" class="LineNr">1524 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1525" class="LineNr">1525 </span>    68/push  0x61/imm32
 <span id="L1526" class="LineNr">1526 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1527" class="LineNr">1527 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1527" class="LineNr">1527 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1528" class="LineNr">1528 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1529" class="LineNr">1529 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1530" class="LineNr">1530 </span>    <span class="subxComment"># check-ints-equal(EAX, 1, msg)</span>
@@ -1595,14 +1596,14 @@ if ('onhashchange' in window) {
 <span id="L1533" class="LineNr">1533 </span>    68/push  1/imm32/true
 <span id="L1534" class="LineNr">1534 </span>    50/push-EAX
 <span id="L1535" class="LineNr">1535 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1536" class="LineNr">1536 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1536" class="LineNr">1536 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1537" class="LineNr">1537 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1538" class="LineNr">1538 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1539" class="LineNr">1539 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x66)</span>
 <span id="L1540" class="LineNr">1540 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1541" class="LineNr">1541 </span>    68/push  0x66/imm32
 <span id="L1542" class="LineNr">1542 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1543" class="LineNr">1543 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1543" class="LineNr">1543 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1544" class="LineNr">1544 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1545" class="LineNr">1545 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1546" class="LineNr">1546 </span>    <span class="subxComment"># check-ints-equal(EAX, 1, msg)</span>
@@ -1611,17 +1612,17 @@ if ('onhashchange' in window) {
 <span id="L1549" class="LineNr">1549 </span>    68/push  1/imm32/true
 <span id="L1550" class="LineNr">1550 </span>    50/push-EAX
 <span id="L1551" class="LineNr">1551 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1552" class="LineNr">1552 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1552" class="LineNr">1552 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1553" class="LineNr">1553 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1554" class="LineNr">1554 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1555" class="LineNr">1555 </span>    c3/return
 <span id="L1556" class="LineNr">1556 </span>
-<span id="L1557" class="LineNr">1557 </span><span class="subxTest">test-hex-above-f</span>:
+<span id="L1557" class="LineNr">1557 </span><span class="subxTest"><a href='hex.subx.html#L1557'>test-hex-above-f</a></span>:
 <span id="L1558" class="LineNr">1558 </span>    <span class="subxComment"># is-hex-lowercase-byte?(0x67)</span>
 <span id="L1559" class="LineNr">1559 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1560" class="LineNr">1560 </span>    68/push  0x67/imm32
 <span id="L1561" class="LineNr">1561 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1562" class="LineNr">1562 </span>    e8/call  is-hex-lowercase-byte?/disp32
+<span id="L1562" class="LineNr">1562 </span>    e8/call  <a href='hex.subx.html#L1417'>is-hex-lowercase-byte?</a>/disp32
 <span id="L1563" class="LineNr">1563 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1564" class="LineNr">1564 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1565" class="LineNr">1565 </span>    <span class="subxComment"># check-ints-equal(EAX, 0, msg)</span>
@@ -1630,12 +1631,12 @@ if ('onhashchange' in window) {
 <span id="L1568" class="LineNr">1568 </span>    68/push  0/imm32/false
 <span id="L1569" class="LineNr">1569 </span>    50/push-EAX
 <span id="L1570" class="LineNr">1570 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1571" class="LineNr">1571 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1571" class="LineNr">1571 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1572" class="LineNr">1572 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1573" class="LineNr">1573 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1574" class="LineNr">1574 </span>    c3/return
 <span id="L1575" class="LineNr">1575 </span>
-<span id="L1576" class="LineNr">1576 </span><span class="subxFunction">parse-hex-digit</span>:  <span class="subxComment"># in/EAX : byte -&gt; out/EAX : num</span>
+<span id="L1576" class="LineNr">1576 </span><span class="subxFunction"><a href='hex.subx.html#L1576'>parse-hex-digit</a></span>:  <span class="subxComment"># in/EAX : byte -&gt; out/EAX : num</span>
 <span id="L1577" class="LineNr">1577 </span>    <span class="subxComment"># no error checking; accepts argument in EAX</span>
 <span id="L1578" class="LineNr">1578 </span>    <span class="subxComment"># if EAX &lt;= '9' return EAX - '0'</span>
 <span id="L1579" class="LineNr">1579 </span>    3d/compare-EAX  0x39/imm32/9
@@ -1647,7 +1648,7 @@ if ('onhashchange' in window) {
 <span id="L1585" class="LineNr">1585 </span>    2d/subtract-from-EAX  0x57/imm32/a-10
 <span id="L1586" class="LineNr">1586 </span>    c3/return
 <span id="L1587" class="LineNr">1587 </span>
-<span id="L1588" class="LineNr">1588 </span><span class="subxFunction">skip-until-newline</span>:  <span class="subxComment"># in : (address buffered-file) -&gt; &lt;void&gt;</span>
+<span id="L1588" class="LineNr">1588 </span><span class="subxFunction"><a href='hex.subx.html#L1588'>skip-until-newline</a></span>:  <span class="subxComment"># in : (address buffered-file) -&gt; &lt;void&gt;</span>
 <span id="L1589" class="LineNr">1589 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L1590" class="LineNr">1590 </span>    <span class="subxComment">#   push EAX</span>
 <span id="L1591" class="LineNr">1591 </span>    <span class="subxComment">#   repeatedly:</span>
@@ -1665,7 +1666,7 @@ if ('onhashchange' in window) {
 <span id="L1603" class="LineNr">1603 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1604" class="LineNr">1604 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EBP+8)</span>
 <span id="L1605" class="LineNr">1605 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1606" class="LineNr">1606 </span>    e8/call  <a href='059read-byte.subx.html#L45'>read-byte</a>/disp32
+<span id="L1606" class="LineNr">1606 </span>    e8/call  <a href='../059read-byte.subx.html#L45'>read-byte</a>/disp32
 <span id="L1607" class="LineNr">1607 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1608" class="LineNr">1608 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1609" class="LineNr">1609 </span>    <span class="subxS1Comment"># . if EAX == 0xffffffff break</span>
@@ -1682,65 +1683,65 @@ if ('onhashchange' in window) {
 <span id="L1620" class="LineNr">1620 </span>    5d/pop-to-EBP
 <span id="L1621" class="LineNr">1621 </span>    c3/return
 <span id="L1622" class="LineNr">1622 </span>
-<span id="L1623" class="LineNr">1623 </span><span class="subxTest">test-skip-until-newline</span>:
+<span id="L1623" class="LineNr">1623 </span><span class="subxTest"><a href='hex.subx.html#L1623'>test-skip-until-newline</a></span>:
 <span id="L1624" class="LineNr">1624 </span>    <span class="subxH1Comment"># - check that the read pointer points after the newline</span>
 <span id="L1625" class="LineNr">1625 </span>    <span class="subxComment"># setup</span>
 <span id="L1626" class="LineNr">1626 </span>    <span class="subxS1Comment"># . clear-stream(_test-stream)</span>
 <span id="L1627" class="LineNr">1627 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1628" class="LineNr">1628 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1628" class="LineNr">1628 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1629" class="LineNr">1629 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1630" class="LineNr">1630 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1630" class="LineNr">1630 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1631" class="LineNr">1631 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1632" class="LineNr">1632 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1633" class="LineNr">1633 </span>    <span class="subxS1Comment"># . clear-stream(_test-buffered-file+4)</span>
 <span id="L1634" class="LineNr">1634 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1635" class="LineNr">1635 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1635" class="LineNr">1635 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1636" class="LineNr">1636 </span>    05/add-to-EAX  4/imm32
 <span id="L1637" class="LineNr">1637 </span>    50/push-EAX
 <span id="L1638" class="LineNr">1638 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1639" class="LineNr">1639 </span>    e8/call  <a href='056write.subx.html#L85'>clear-stream</a>/disp32
+<span id="L1639" class="LineNr">1639 </span>    e8/call  <a href='../056write.subx.html#L85'>clear-stream</a>/disp32
 <span id="L1640" class="LineNr">1640 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1641" class="LineNr">1641 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1642" class="LineNr">1642 </span>    <span class="subxComment"># initialize '_test-stream' to &quot;abc\nde&quot;</span>
 <span id="L1643" class="LineNr">1643 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;abc&quot;)</span>
 <span id="L1644" class="LineNr">1644 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1645" class="LineNr">1645 </span>    68/push  <span class="Constant">&quot;abc&quot;</span>/imm32
-<span id="L1646" class="LineNr">1646 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1646" class="LineNr">1646 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1647" class="LineNr">1647 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1648" class="LineNr">1648 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1648" class="LineNr">1648 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1649" class="LineNr">1649 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1650" class="LineNr">1650 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1651" class="LineNr">1651 </span>    <span class="subxS1Comment"># . write(_test-stream, Newline)</span>
 <span id="L1652" class="LineNr">1652 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1653" class="LineNr">1653 </span>    68/push  <span class="SpecialChar"><a href='051test.subx.html#L81'>Newline</a></span>/imm32
-<span id="L1654" class="LineNr">1654 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1653" class="LineNr">1653 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L81'>Newline</a></span>/imm32
+<span id="L1654" class="LineNr">1654 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1655" class="LineNr">1655 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1656" class="LineNr">1656 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1656" class="LineNr">1656 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1657" class="LineNr">1657 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1658" class="LineNr">1658 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1659" class="LineNr">1659 </span>    <span class="subxS1Comment"># . write(_test-stream, &quot;de&quot;)</span>
 <span id="L1660" class="LineNr">1660 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1661" class="LineNr">1661 </span>    68/push  <span class="Constant">&quot;de&quot;</span>/imm32
-<span id="L1662" class="LineNr">1662 </span>    68/push  <a href='056write.subx.html#L193'>_test-stream</a>/imm32
+<span id="L1662" class="LineNr">1662 </span>    68/push  <a href='../056write.subx.html#L193'>_test-stream</a>/imm32
 <span id="L1663" class="LineNr">1663 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1664" class="LineNr">1664 </span>    e8/call  <a href='056write.subx.html#L31'>write</a>/disp32
+<span id="L1664" class="LineNr">1664 </span>    e8/call  <a href='../056write.subx.html#L31'>write</a>/disp32
 <span id="L1665" class="LineNr">1665 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1666" class="LineNr">1666 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1667" class="LineNr">1667 </span>    <span class="subxComment"># skip-until-newline(_test-buffered-file)</span>
 <span id="L1668" class="LineNr">1668 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1669" class="LineNr">1669 </span>    68/push  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1669" class="LineNr">1669 </span>    68/push  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1670" class="LineNr">1670 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1671" class="LineNr">1671 </span>    e8/call  skip-until-newline/disp32
+<span id="L1671" class="LineNr">1671 </span>    e8/call  <a href='hex.subx.html#L1588'>skip-until-newline</a>/disp32
 <span id="L1672" class="LineNr">1672 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1673" class="LineNr">1673 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to ESP</span>
 <span id="L1674" class="LineNr">1674 </span>    <span class="subxComment"># check-ints-equal(_test-buffered-file-&gt;read, 4, msg)</span>
 <span id="L1675" class="LineNr">1675 </span>    <span class="subxS2Comment"># . . push args</span>
 <span id="L1676" class="LineNr">1676 </span>    68/push  <span class="Constant">&quot;F - test-skip-until-newline&quot;</span>/imm32
 <span id="L1677" class="LineNr">1677 </span>    68/push  4/imm32
-<span id="L1678" class="LineNr">1678 </span>    b8/copy-to-EAX  <a href='059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
+<span id="L1678" class="LineNr">1678 </span>    b8/copy-to-EAX  <a href='../059read-byte.subx.html#L290'>_test-buffered-file</a>/imm32
 <span id="L1679" class="LineNr">1679 </span>    ff          6/subop/push        1/mod/*+disp8   0/rm32/EAX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(EAX+8)</span>
 <span id="L1680" class="LineNr">1680 </span>    <span class="subxS2Comment"># . . call</span>
-<span id="L1681" class="LineNr">1681 </span>    e8/call  <a href='051test.subx.html#L24'>check-ints-equal</a>/disp32
+<span id="L1681" class="LineNr">1681 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1682" class="LineNr">1682 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1683" class="LineNr">1683 </span>    81          0/subop/add         3/mod/direct    4/rm32/ESP   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to ESP</span>
 <span id="L1684" class="LineNr">1684 </span>    <span class="subxS1Comment"># . end</span>
@@ -1748,7 +1749,7 @@ if ('onhashchange' in window) {
 <span id="L1686" class="LineNr">1686 </span>
 <span id="L1687" class="LineNr">1687 </span>== data
 <span id="L1688" class="LineNr">1688 </span>
-<span id="L1689" class="LineNr">1689 </span><span class="subxMinorFunction">_test-error-stream</span>:
+<span id="L1689" class="LineNr">1689 </span><span class="subxMinorFunction"><a href='hex.subx.html#L1689'>_test-error-stream</a></span>:
 <span id="L1690" class="LineNr">1690 </span>    <span class="subxComment"># current write index</span>
 <span id="L1691" class="LineNr">1691 </span>    00 00 00 00
 <span id="L1692" class="LineNr">1692 </span>    <span class="subxComment"># current read index</span>
@@ -1759,9 +1760,9 @@ if ('onhashchange' in window) {
 <span id="L1697" class="LineNr">1697 </span>    00 00 00 00 00 00 00 00  <span class="subxComment"># 8 bytes</span>
 <span id="L1698" class="LineNr">1698 </span>
 <span id="L1699" class="LineNr">1699 </span><span class="subxComment"># a test buffered file for _test-stream</span>
-<span id="L1700" class="LineNr">1700 </span><span class="subxMinorFunction">_test-error-buffered-file</span>:
+<span id="L1700" class="LineNr">1700 </span><span class="subxMinorFunction"><a href='hex.subx.html#L1700'>_test-error-buffered-file</a></span>:
 <span id="L1701" class="LineNr">1701 </span>    <span class="subxComment"># file descriptor or (address stream)</span>
-<span id="L1702" class="LineNr">1702 </span>    _test-error-stream/imm32
+<span id="L1702" class="LineNr">1702 </span>    <a href='hex.subx.html#L1689'>_test-error-stream</a>/imm32
 <span id="L1703" class="LineNr">1703 </span>    <span class="subxComment"># current write index</span>
 <span id="L1704" class="LineNr">1704 </span>    00 00 00 00
 <span id="L1705" class="LineNr">1705 </span>    <span class="subxComment"># current read index</span>