about summary refs log tree commit diff stats
path: root/html/subx/apps
diff options
context:
space:
mode:
Diffstat (limited to 'html/subx/apps')
-rw-r--r--html/subx/apps/hex.subx.html68
-rw-r--r--html/subx/apps/pack.subx.html10
2 files changed, 39 insertions, 39 deletions
diff --git a/html/subx/apps/hex.subx.html b/html/subx/apps/hex.subx.html
index 90e08318..94515434 100644
--- a/html/subx/apps/hex.subx.html
+++ b/html/subx/apps/hex.subx.html
@@ -137,7 +137,7 @@ if ('onhashchange' in window) {
 <span id="L74" class="LineNr">  74 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L75" class="LineNr">  75 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L76" class="LineNr">  76 </span>    <span class="subxComment">#     EAX = convert-next-octet(in, err, ed)</span>
-<span id="L77" class="LineNr">  77 </span>    <span class="subxComment">#     if (EAX == 0xffffffff) break  # eof</span>
+<span id="L77" class="LineNr">  77 </span>    <span class="subxComment">#     if (EAX == Eof) break</span>
 <span id="L78" class="LineNr">  78 </span>    <span class="subxComment">#     write-byte(out, AL)</span>
 <span id="L79" class="LineNr">  79 </span>    <span class="subxComment">#   flush(out)</span>
 <span id="L80" class="LineNr">  80 </span>    <span class="subxComment">#</span>
@@ -156,8 +156,8 @@ if ('onhashchange' in window) {
 <span id="L93" class="LineNr">  93 </span>    e8/call  <a href='hex.subx.html#L131'>convert-next-octet</a>/disp32
 <span id="L94" class="LineNr">  94 </span>    <span class="subxS2Comment"># . . discard first 2 args</span>
 <span id="L95" class="LineNr">  95 </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="L96" class="LineNr">  96 </span>    <span class="subxComment"># if (EAX == 0xffffffff) break</span>
-<span id="L97" class="LineNr">  97 </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="L96" class="LineNr">  96 </span>    <span class="subxComment"># if (EAX == Eof) break</span>
+<span id="L97" class="LineNr">  97 </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/Eof  <span class="subxComment"># compare EAX</span>
 <span id="L98" class="LineNr">  98 </span>    74/jump-if-equal  $convert:loop-end/disp8
 <span id="L99" class="LineNr">  99 </span>    <span class="subxComment"># write-byte(out, AL)</span>
 <span id="L100" class="LineNr"> 100 </span>    <span class="subxS2Comment"># . . push args</span>
@@ -190,14 +190,14 @@ if ('onhashchange' in window) {
 <span id="L127" class="LineNr"> 127 </span><span class="subxComment"># on '#' skip bytes until newline</span>
 <span id="L128" class="LineNr"> 128 </span><span class="subxComment"># raise an error and abort on all other unexpected bytes</span>
 <span id="L129" class="LineNr"> 129 </span><span class="subxComment"># return in EAX an _octet_ containing the binary value of the two hex characters</span>
-<span id="L130" class="LineNr"> 130 </span><span class="subxComment"># return 0xffffffff on end of file</span>
-<span id="L131" class="LineNr"> 131 </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="L130" class="LineNr"> 130 </span><span class="subxComment"># return Eof on reaching end of file</span>
+<span id="L131" class="LineNr"> 131 </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="L132" class="LineNr"> 132 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L133" class="LineNr"> 133 </span>    <span class="subxComment">#   EAX = scan-next-byte(in, err, ed)</span>
-<span id="L134" class="LineNr"> 134 </span>    <span class="subxComment">#   if (EAX == 0xffffffff) return</span>
+<span id="L134" class="LineNr"> 134 </span>    <span class="subxComment">#   if (EAX == Eof) return</span>
 <span id="L135" class="LineNr"> 135 </span>    <span class="subxComment">#   ECX = from-hex-char(EAX)</span>
 <span id="L136" class="LineNr"> 136 </span>    <span class="subxComment">#   EAX = scan-next-byte(in, err, ed)</span>
-<span id="L137" class="LineNr"> 137 </span>    <span class="subxComment">#   if (EAX == 0xffffffff) error(&quot;partial byte found.&quot;)</span>
+<span id="L137" class="LineNr"> 137 </span>    <span class="subxComment">#   if (EAX == Eof) error(&quot;partial byte found.&quot;)</span>
 <span id="L138" class="LineNr"> 138 </span>    <span class="subxComment">#   EAX = from-hex-char(EAX)</span>
 <span id="L139" class="LineNr"> 139 </span>    <span class="subxComment">#   EAX = (ECX &lt;&lt; 4) | EAX</span>
 <span id="L140" class="LineNr"> 140 </span>    <span class="subxComment">#   return</span>
@@ -216,8 +216,8 @@ if ('onhashchange' in window) {
 <span id="L153" class="LineNr"> 153 </span>    e8/call  <a href='hex.subx.html#L489'>scan-next-byte</a>/disp32
 <span id="L154" class="LineNr"> 154 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L155" class="LineNr"> 155 </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="L156" class="LineNr"> 156 </span>    <span class="subxComment"># if (EAX == 0xffffffff) return</span>
-<span id="L157" class="LineNr"> 157 </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="L156" class="LineNr"> 156 </span>    <span class="subxComment"># if (EAX == Eof) return</span>
+<span id="L157" class="LineNr"> 157 </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/Eof  <span class="subxComment"># compare EAX</span>
 <span id="L158" class="LineNr"> 158 </span>    74/jump-if-equal  $convert-next-octet:end/disp8
 <span id="L159" class="LineNr"> 159 </span>    <span class="subxComment"># EAX = from-hex-char(EAX)</span>
 <span id="L160" class="LineNr"> 160 </span>    e8/call <a href='../065hex.subx.html#L732'>from-hex-char</a>/disp32
@@ -232,8 +232,8 @@ if ('onhashchange' in window) {
 <span id="L169" class="LineNr"> 169 </span>    e8/call  <a href='hex.subx.html#L489'>scan-next-byte</a>/disp32
 <span id="L170" class="LineNr"> 170 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L171" class="LineNr"> 171 </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="L172" class="LineNr"> 172 </span>    <span class="subxComment"># if (EAX == 0xffffffff) error(ed, err, &quot;partial byte found.&quot;)</span>
-<span id="L173" class="LineNr"> 173 </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="L172" class="LineNr"> 172 </span>    <span class="subxComment"># if (EAX == Eof) error(ed, err, &quot;partial byte found.&quot;)</span>
+<span id="L173" class="LineNr"> 173 </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/Eof  <span class="subxComment"># compare EAX</span>
 <span id="L174" class="LineNr"> 174 </span>    75/jump-if-not-equal  $convert-next-octet:<a href='hex.subx.html#L73'>convert</a>/disp8
 <span id="L175" class="LineNr"> 175 </span>    <span class="subxS1Comment"># . error-byte(ed, err, msg, '.')  # reusing error-byte to avoid creating _yet_ another helper</span>
 <span id="L176" class="LineNr"> 176 </span>    <span class="subxS2Comment"># . . push args</span>
@@ -361,8 +361,8 @@ if ('onhashchange' in window) {
 <span id="L298" class="LineNr"> 298 </span>    5d/pop-to-EBP
 <span id="L299" class="LineNr"> 299 </span>    c3/return
 <span id="L300" class="LineNr"> 300 </span>
-<span id="L301" class="LineNr"> 301 </span><span class="subxTest">test-convert-next-octet-handles-eof</span>:
-<span id="L302" class="LineNr"> 302 </span>    <span class="subxH1Comment"># - check that eof returns the sentinel octet</span>
+<span id="L301" class="LineNr"> 301 </span><span class="subxTest">test-convert-next-octet-handles-Eof</span>:
+<span id="L302" class="LineNr"> 302 </span>    <span class="subxH1Comment"># - check that reaching end of file returns Eof</span>
 <span id="L303" class="LineNr"> 303 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L304" class="LineNr"> 304 </span>    55/push-EBP
 <span id="L305" class="LineNr"> 305 </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>
@@ -438,17 +438,17 @@ if ('onhashchange' in window) {
 <span id="L375" class="LineNr"> 375 </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="L376" class="LineNr"> 376 </span>    <span class="subxComment"># return if abort</span>
 <span id="L377" class="LineNr"> 377 </span>    81          7/subop/compare     1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8         0/imm32           <span class="subxComment"># compare *(ECX+4)</span>
-<span id="L378" class="LineNr"> 378 </span>    75/jump-if-not-equal  $test-convert-next-octet-handles-eof:end/disp8
-<span id="L379" class="LineNr"> 379 </span>    <span class="subxComment"># check-ints-equal(EAX, 0xffffffff, msg)</span>
+<span id="L378" class="LineNr"> 378 </span>    75/jump-if-not-equal  $test-convert-next-octet-handles-Eof:end/disp8
+<span id="L379" class="LineNr"> 379 </span>    <span class="subxComment"># check-ints-equal(EAX, Eof, msg)</span>
 <span id="L380" class="LineNr"> 380 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L381" class="LineNr"> 381 </span>    68/push  <span class="Constant">&quot;F - test-convert-next-octet-handles-eof&quot;</span>/imm32
-<span id="L382" class="LineNr"> 382 </span>    68/push  0xffffffff/imm32/eof
+<span id="L381" class="LineNr"> 381 </span>    68/push  <span class="Constant">&quot;F - test-convert-next-octet-handles-Eof&quot;</span>/imm32
+<span id="L382" class="LineNr"> 382 </span>    68/push  0xffffffff/imm32/Eof
 <span id="L383" class="LineNr"> 383 </span>    50/push-EAX
 <span id="L384" class="LineNr"> 384 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L385" class="LineNr"> 385 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L386" class="LineNr"> 386 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L387" class="LineNr"> 387 </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="L388" class="LineNr"> 388 </span><span class="Constant">$test-convert-next-octet-handles-eof:end</span>:
+<span id="L388" class="LineNr"> 388 </span><span class="Constant">$test-convert-next-octet-handles-Eof:end</span>:
 <span id="L389" class="LineNr"> 389 </span>    <span class="subxS1Comment"># . epilog</span>
 <span id="L390" class="LineNr"> 390 </span>    <span class="subxComment"># don't restore ESP from EBP; manually reclaim locals</span>
 <span id="L391" class="LineNr"> 391 </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>
@@ -546,14 +546,14 @@ if ('onhashchange' in window) {
 <span id="L483" class="LineNr"> 483 </span>    c3/return
 <span id="L484" class="LineNr"> 484 </span>
 <span id="L485" class="LineNr"> 485 </span><span class="subxComment"># read whitespace until a hex byte, and return it</span>
-<span id="L486" class="LineNr"> 486 </span><span class="subxComment"># return 0xffffffff if file ends without finding a hex byte</span>
+<span id="L486" class="LineNr"> 486 </span><span class="subxComment"># return Eof if file ends without finding a hex byte</span>
 <span id="L487" class="LineNr"> 487 </span><span class="subxComment"># on '#' skip all bytes until newline</span>
 <span id="L488" class="LineNr"> 488 </span><span class="subxComment"># abort on any other byte</span>
-<span id="L489" class="LineNr"> 489 </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="L489" class="LineNr"> 489 </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="L490" class="LineNr"> 490 </span>    <span class="subxComment"># pseudocode:</span>
 <span id="L491" class="LineNr"> 491 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L492" class="LineNr"> 492 </span>    <span class="subxComment">#     EAX = read-byte(in)</span>
-<span id="L493" class="LineNr"> 493 </span>    <span class="subxComment">#     if (EAX == 0xffffffff) return EAX</span>
+<span id="L493" class="LineNr"> 493 </span>    <span class="subxComment">#     if (EAX == Eof) return EAX</span>
 <span id="L494" class="LineNr"> 494 </span>    <span class="subxComment">#     if (is-hex-digit?(EAX)) return EAX</span>
 <span id="L495" class="LineNr"> 495 </span>    <span class="subxComment">#     if (EAX == ' ' or '\t' or '\n') continue</span>
 <span id="L496" class="LineNr"> 496 </span>    <span class="subxComment">#     if (EAX == '#') skip-until-newline(in)</span>
@@ -571,8 +571,8 @@ if ('onhashchange' in window) {
 <span id="L508" class="LineNr"> 508 </span>    e8/call  <a href='../061read-byte.subx.html#L44'>read-byte</a>/disp32
 <span id="L509" class="LineNr"> 509 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L510" class="LineNr"> 510 </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="L511" class="LineNr"> 511 </span>    <span class="subxComment"># if (EAX == 0xffffffff) return EAX</span>
-<span id="L512" class="LineNr"> 512 </span>    3d/compare-with-EAX  0xffffffff/imm32
+<span id="L511" class="LineNr"> 511 </span>    <span class="subxComment"># if (EAX == Eof) return EAX</span>
+<span id="L512" class="LineNr"> 512 </span>    3d/compare-with-EAX  0xffffffff/imm32/Eof
 <span id="L513" class="LineNr"> 513 </span>    74/jump-if-equal  $scan-next-byte:end/disp8
 <span id="L514" class="LineNr"> 514 </span>    <span class="subxComment"># if (is-hex-digit?(EAX)) return EAX</span>
 <span id="L515" class="LineNr"> 515 </span>    <span class="subxS1Comment"># . save EAX for now</span>
@@ -1288,7 +1288,7 @@ if ('onhashchange' in window) {
 <span id="L1225" class="LineNr">1225 </span>    5d/pop-to-EBP
 <span id="L1226" class="LineNr">1226 </span>    c3/return
 <span id="L1227" class="LineNr">1227 </span>
-<span id="L1228" class="LineNr">1228 </span><span class="subxTest">test-scan-next-byte-handles-eof</span>:
+<span id="L1228" class="LineNr">1228 </span><span class="subxTest">test-scan-next-byte-handles-Eof</span>:
 <span id="L1229" class="LineNr">1229 </span>    <span class="subxH1Comment"># - check that the right sentinel value is returned when there's no data remaining to be read</span>
 <span id="L1230" class="LineNr">1230 </span>    <span class="subxComment"># This test uses exit-descriptors. Use EBP for setting up local variables.</span>
 <span id="L1231" class="LineNr">1231 </span>    55/push-EBP
@@ -1355,7 +1355,7 @@ if ('onhashchange' in window) {
 <span id="L1292" class="LineNr">1292 </span>    <span class="subxComment"># check that scan-next-byte didn't abort</span>
 <span id="L1293" class="LineNr">1293 </span>    <span class="subxS1Comment"># . check-ints-equal(ed-&gt;value, 0, msg)</span>
 <span id="L1294" class="LineNr">1294 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1295" class="LineNr">1295 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L1228'>test-scan-next-byte-handles-eof</a>: unexpected abort&quot;</span>/imm32
+<span id="L1295" class="LineNr">1295 </span>    68/push  <span class="Constant">&quot;F - <a href='hex.subx.html#L1228'>test-scan-next-byte-handles-Eof</a>: unexpected abort&quot;</span>/imm32
 <span id="L1296" class="LineNr">1296 </span>    68/push  0/imm32
 <span id="L1297" class="LineNr">1297 </span>    <span class="subxS2Comment"># . . push ed-&gt;value</span>
 <span id="L1298" class="LineNr">1298 </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>
@@ -1365,17 +1365,17 @@ if ('onhashchange' in window) {
 <span id="L1302" class="LineNr">1302 </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="L1303" class="LineNr">1303 </span>    <span class="subxComment"># return if abort</span>
 <span id="L1304" class="LineNr">1304 </span>    81          7/subop/compare     1/mod/*+disp8   1/rm32/ECX   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8         0/imm32           <span class="subxComment"># compare *(ECX+4)</span>
-<span id="L1305" class="LineNr">1305 </span>    75/jump-if-not-equal  $test-scan-next-byte-handles-eof:end/disp8
-<span id="L1306" class="LineNr">1306 </span>    <span class="subxComment"># check-ints-equal(EAX, 0xffffffff/eof, msg)</span>
+<span id="L1305" class="LineNr">1305 </span>    75/jump-if-not-equal  $test-scan-next-byte-handles-Eof:end/disp8
+<span id="L1306" class="LineNr">1306 </span>    <span class="subxComment"># check-ints-equal(EAX, Eof, msg)</span>
 <span id="L1307" class="LineNr">1307 </span>    <span class="subxS2Comment"># . . push args</span>
-<span id="L1308" class="LineNr">1308 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-handles-eof&quot;</span>/imm32
-<span id="L1309" class="LineNr">1309 </span>    68/push  0xffffffff/imm32/eof
+<span id="L1308" class="LineNr">1308 </span>    68/push  <span class="Constant">&quot;F - test-scan-next-byte-handles-Eof&quot;</span>/imm32
+<span id="L1309" class="LineNr">1309 </span>    68/push  0xffffffff/imm32/Eof
 <span id="L1310" class="LineNr">1310 </span>    50/push-EAX
 <span id="L1311" class="LineNr">1311 </span>    <span class="subxS2Comment"># . . call</span>
 <span id="L1312" class="LineNr">1312 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
 <span id="L1313" class="LineNr">1313 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1314" class="LineNr">1314 </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="L1315" class="LineNr">1315 </span><span class="Constant">$test-scan-next-byte-handles-eof:end</span>:
+<span id="L1315" class="LineNr">1315 </span><span class="Constant">$test-scan-next-byte-handles-Eof:end</span>:
 <span id="L1316" class="LineNr">1316 </span>    <span class="subxS1Comment"># . epilog</span>
 <span id="L1317" class="LineNr">1317 </span>    <span class="subxComment"># don't restore ESP from EBP; manually reclaim locals</span>
 <span id="L1318" class="LineNr">1318 </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>
@@ -1477,7 +1477,7 @@ if ('onhashchange' in window) {
 <span id="L1414" class="LineNr">1414 </span>    <span class="subxComment">#   push EAX</span>
 <span id="L1415" class="LineNr">1415 </span>    <span class="subxComment">#   repeatedly:</span>
 <span id="L1416" class="LineNr">1416 </span>    <span class="subxComment">#     EAX = read-byte(in)</span>
-<span id="L1417" class="LineNr">1417 </span>    <span class="subxComment">#     if (EAX == 0xffffffff) break</span>
+<span id="L1417" class="LineNr">1417 </span>    <span class="subxComment">#     if (EAX == Eof) break</span>
 <span id="L1418" class="LineNr">1418 </span>    <span class="subxComment">#     if (EAX == 0x0a) break</span>
 <span id="L1419" class="LineNr">1419 </span>    <span class="subxComment">#   pop EAX</span>
 <span id="L1420" class="LineNr">1420 </span>    <span class="subxS1Comment"># . prolog</span>
@@ -1493,8 +1493,8 @@ if ('onhashchange' in window) {
 <span id="L1430" class="LineNr">1430 </span>    e8/call  <a href='../061read-byte.subx.html#L44'>read-byte</a>/disp32
 <span id="L1431" class="LineNr">1431 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L1432" class="LineNr">1432 </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="L1433" class="LineNr">1433 </span>    <span class="subxS1Comment"># . if (EAX == 0xffffffff) break</span>
-<span id="L1434" class="LineNr">1434 </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="L1433" class="LineNr">1433 </span>    <span class="subxS1Comment"># . if (EAX == Eof) break</span>
+<span id="L1434" class="LineNr">1434 </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/Eof  <span class="subxComment"># compare EAX</span>
 <span id="L1435" class="LineNr">1435 </span>    74/jump-if-equal  $skip-until-newline:end/disp8
 <span id="L1436" class="LineNr">1436 </span>    <span class="subxS1Comment"># . if (EAX != 0xa/newline) loop</span>
 <span id="L1437" class="LineNr">1437 </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>              0xa/imm32         <span class="subxComment"># compare EAX</span>
@@ -1583,7 +1583,7 @@ if ('onhashchange' in window) {
 <span id="L1520" class="LineNr">1520 </span>    <span class="subxComment"># data</span>
 <span id="L1521" class="LineNr">1521 </span>    00 00 00 00 00 00 00 00  <span class="subxComment"># 8 bytes</span>
 <span id="L1522" class="LineNr">1522 </span>
-<span id="L1523" class="LineNr">1523 </span><span class="subxComment"># a test buffered file for _test-stream</span>
+<span id="L1523" class="LineNr">1523 </span><span class="subxComment"># a test buffered file for _test-error-stream</span>
 <span id="L1524" class="LineNr">1524 </span><span class="subxMinorFunction">_test-error-buffered-file</span>:
 <span id="L1525" class="LineNr">1525 </span>    <span class="subxComment"># file descriptor or (address stream)</span>
 <span id="L1526" class="LineNr">1526 </span>    <a href='hex.subx.html#L1513'>_test-error-stream</a>/imm32
diff --git a/html/subx/apps/pack.subx.html b/html/subx/apps/pack.subx.html
index 6258cc77..0bd3e063 100644
--- a/html/subx/apps/pack.subx.html
+++ b/html/subx/apps/pack.subx.html
@@ -152,7 +152,7 @@ if ('onhashchange' in window) {
 <span id="L89" class="LineNr">  89 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L90" class="LineNr">  90 </span>    <span class="subxComment">#     clear-stream(line)</span>
 <span id="L91" class="LineNr">  91 </span>    <span class="subxComment">#     EAX = read-line(in, line)</span>
-<span id="L92" class="LineNr">  92 </span>    <span class="subxComment">#     if (EAX == EOF) break</span>
+<span id="L92" class="LineNr">  92 </span>    <span class="subxComment">#     if (EAX == Eof) break</span>
 <span id="L93" class="LineNr">  93 </span>    <span class="subxComment">#     word-slice = next-word(line)</span>
 <span id="L94" class="LineNr">  94 </span>    <span class="subxComment">#     if (slice-empty?(word-slice)) continue  # just whitespace</span>
 <span id="L95" class="LineNr">  95 </span>    <span class="subxComment">#     if (starts-with(word-slice, &quot;#&quot;)) continue  # ignore comments</span>
@@ -191,8 +191,8 @@ if ('onhashchange' in window) {
 <span id="L128" class="LineNr"> 128 </span>    e8/call  <a href='pack.subx.html#L233'>convert-instruction</a>/disp32
 <span id="L129" class="LineNr"> 129 </span>    <span class="subxS2Comment"># . . discard args</span>
 <span id="L130" class="LineNr"> 130 </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="L131" class="LineNr"> 131 </span>    <span class="subxComment"># if (EAX == 0xffffffff) break</span>
-<span id="L132" class="LineNr"> 132 </span>    3d/compare-with-EAX  0xffffffff/imm32
+<span id="L131" class="LineNr"> 131 </span>    <span class="subxComment"># if (EAX == Eof) break</span>
+<span id="L132" class="LineNr"> 132 </span>    3d/compare-with-EAX  0xffffffff/imm32/Eof
 <span id="L133" class="LineNr"> 133 </span>    74/jump-if-equal  $convert:break/disp8
 <span id="L134" class="LineNr"> 134 </span>    <span class="subxComment"># convert-instruction(line, out)</span>
 <span id="L135" class="LineNr"> 135 </span>    <span class="subxS2Comment"># . . push args</span>
@@ -226,7 +226,7 @@ if ('onhashchange' in window) {
 <span id="L163" class="LineNr"> 163 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L164" class="LineNr"> 164 </span>    <span class="subxComment">#     clear-stream(line)</span>
 <span id="L165" class="LineNr"> 165 </span>    <span class="subxComment">#     EAX = read-line(in, line)</span>
-<span id="L166" class="LineNr"> 166 </span>    <span class="subxComment">#     if (EAX == EOF) break</span>
+<span id="L166" class="LineNr"> 166 </span>    <span class="subxComment">#     if (EAX == Eof) break</span>
 <span id="L167" class="LineNr"> 167 </span>    <span class="subxComment">#     word-slice = next-word(line)</span>
 <span id="L168" class="LineNr"> 168 </span>    <span class="subxComment">#     if (slice-equal?(word-slice, &quot;==&quot;))</span>
 <span id="L169" class="LineNr"> 169 </span>    <span class="subxComment">#       return</span>
@@ -238,7 +238,7 @@ if ('onhashchange' in window) {
 <span id="L175" class="LineNr"> 175 </span>    <span class="subxComment">#   repeatedly</span>
 <span id="L176" class="LineNr"> 176 </span>    <span class="subxComment">#     clear-stream(line)</span>
 <span id="L177" class="LineNr"> 177 </span>    <span class="subxComment">#     EAX = read-line(in, line)</span>
-<span id="L178" class="LineNr"> 178 </span>    <span class="subxComment">#     if (EAX == EOF) break</span>
+<span id="L178" class="LineNr"> 178 </span>    <span class="subxComment">#     if (EAX == Eof) break</span>
 <span id="L179" class="LineNr"> 179 </span>    <span class="subxComment">#     word-slice = next-word(line)</span>
 <span id="L180" class="LineNr"> 180 </span>    <span class="subxComment">#     if (slice-equal?(word-slice, &quot;==&quot;))</span>
 <span id="L181" class="LineNr"> 181 </span>    <span class="subxComment">#       return</span>