diff options
Diffstat (limited to 'html/shell/gap-buffer.mu.html')
-rw-r--r-- | html/shell/gap-buffer.mu.html | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/html/shell/gap-buffer.mu.html b/html/shell/gap-buffer.mu.html index 9fae1381..29e58b75 100644 --- a/html/shell/gap-buffer.mu.html +++ b/html/shell/gap-buffer.mu.html @@ -87,15 +87,15 @@ if ('onhashchange' in window) { <span id="L28" class="LineNr"> 28 </span> <span class="PreProc">var</span> gap/<span class="Constant">esi</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _gap <span id="L29" class="LineNr"> 29 </span> <span class="PreProc">var</span> left/<span class="Constant">eax</span>: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>) <span class="Special"><-</span> get gap, left <span id="L30" class="LineNr"> 30 </span> <span class="PreProc">var</span> left-data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get left, data -<span id="L31" class="LineNr"> 31 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *left-data-ah +<span id="L31" class="LineNr"> 31 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *left-data-ah <span id="L32" class="LineNr"> 32 </span> <span class="PreProc">var</span> result/<span class="Constant">eax</span>: int <span class="Special"><-</span> length left-data <span id="L33" class="LineNr"> 33 </span> <span class="PreProc">return</span> result <span id="L34" class="LineNr"> 34 </span><span class="Delimiter">}</span> <span id="L35" class="LineNr"> 35 </span> <span id="L36" class="LineNr"> 36 </span><span class="muComment"># just for tests</span> <span id="L37" class="LineNr"> 37 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='gap-buffer.mu.html#L37'>initialize-gap-buffer-with</a></span> self: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>), s: (addr array byte) <span class="Delimiter">{</span> -<span id="L38" class="LineNr"> 38 </span> <a href='gap-buffer.mu.html#L11'>initialize-gap-buffer</a> self, <span class="Constant">0x10</span>/capacity -<span id="L39" class="LineNr"> 39 </span> <span class="PreProc">var</span> stream-storage: (stream byte <span class="Constant">0x10</span>/capacity) +<span id="L38" class="LineNr"> 38 </span> <a href='gap-buffer.mu.html#L11'>initialize-gap-buffer</a> self, <span class="Constant">0x40</span>/capacity +<span id="L39" class="LineNr"> 39 </span> <span class="PreProc">var</span> stream-storage: (stream byte <span class="Constant">0x40</span>/capacity) <span id="L40" class="LineNr"> 40 </span> <span class="PreProc">var</span> stream/<span class="Constant">ecx</span>: (addr stream byte) <span class="Special"><-</span> address stream-storage <span id="L41" class="LineNr"> 41 </span> <a href='../108write.subx.html#L11'>write</a> stream, s <span id="L42" class="LineNr"> 42 </span> <span class="Delimiter">{</span> @@ -144,7 +144,7 @@ if ('onhashchange' in window) { <span id="L85" class="LineNr"> 85 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='gap-buffer.mu.html#L85'>emit-stack-from-bottom</a></span> _self: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>), out: (addr stream byte) <span class="Delimiter">{</span> <span id="L86" class="LineNr"> 86 </span> <span class="PreProc">var</span> self/<span class="Constant">esi</span>: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>) <span class="Special"><-</span> copy _self <span id="L87" class="LineNr"> 87 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">edi</span>: (addr handle array grapheme) <span class="Special"><-</span> get self, data -<span id="L88" class="LineNr"> 88 </span> <span class="PreProc">var</span> _data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L88" class="LineNr"> 88 </span> <span class="PreProc">var</span> _data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L89" class="LineNr"> 89 </span> <span class="PreProc">var</span> data/<span class="Constant">edi</span>: (addr array grapheme) <span class="Special"><-</span> copy _data <span id="L90" class="LineNr"> 90 </span> <span class="PreProc">var</span> top-addr/<span class="Constant">ecx</span>: (addr int) <span class="Special"><-</span> get self, top <span id="L91" class="LineNr"> 91 </span> <span class="PreProc">var</span> i/<span class="Constant">eax</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> @@ -162,7 +162,7 @@ if ('onhashchange' in window) { <span id="L103" class="LineNr"> 103 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='gap-buffer.mu.html#L103'>emit-stack-from-top</a></span> _self: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>), out: (addr stream byte) <span class="Delimiter">{</span> <span id="L104" class="LineNr"> 104 </span> <span class="PreProc">var</span> self/<span class="Constant">esi</span>: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>) <span class="Special"><-</span> copy _self <span id="L105" class="LineNr"> 105 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">edi</span>: (addr handle array grapheme) <span class="Special"><-</span> get self, data -<span id="L106" class="LineNr"> 106 </span> <span class="PreProc">var</span> _data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L106" class="LineNr"> 106 </span> <span class="PreProc">var</span> _data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L107" class="LineNr"> 107 </span> <span class="PreProc">var</span> data/<span class="Constant">edi</span>: (addr array grapheme) <span class="Special"><-</span> copy _data <span id="L108" class="LineNr"> 108 </span> <span class="PreProc">var</span> top-addr/<span class="Constant">ecx</span>: (addr int) <span class="Special"><-</span> get self, top <span id="L109" class="LineNr"> 109 </span> <span class="PreProc">var</span> i/<span class="Constant">eax</span>: int <span class="Special"><-</span> copy *top-addr @@ -319,7 +319,7 @@ if ('onhashchange' in window) { <span id="L260" class="LineNr"> 260 </span> <span class="Delimiter">{</span> <span id="L261" class="LineNr"> 261 </span> <span class="PreProc">break-if-<=</span> <span id="L262" class="LineNr"> 262 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get left, data -<span id="L263" class="LineNr"> 263 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L263" class="LineNr"> 263 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L264" class="LineNr"> 264 </span> <span class="PreProc">var</span> result-addr/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index data, <span class="Constant">0</span> <span id="L265" class="LineNr"> 265 </span> <span class="PreProc">return</span> *result-addr <span id="L266" class="LineNr"> 266 </span> <span class="Delimiter">}</span> @@ -330,7 +330,7 @@ if ('onhashchange' in window) { <span id="L271" class="LineNr"> 271 </span> <span class="Delimiter">{</span> <span id="L272" class="LineNr"> 272 </span> <span class="PreProc">break-if-<=</span> <span id="L273" class="LineNr"> 273 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get right, data -<span id="L274" class="LineNr"> 274 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L274" class="LineNr"> 274 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L275" class="LineNr"> 275 </span> <span class="PreProc">var</span> top/<span class="Constant">ecx</span>: int <span class="Special"><-</span> copy *top-addr <span id="L276" class="LineNr"> 276 </span> top <span class="Special"><-</span> decrement <span id="L277" class="LineNr"> 277 </span> <span class="PreProc">var</span> result-addr/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index data, top @@ -491,7 +491,7 @@ if ('onhashchange' in window) { <span id="L432" class="LineNr"> 432 </span> <span class="Delimiter">{</span> <span id="L433" class="LineNr"> 433 </span> <span class="PreProc">break-if->=</span> <span id="L434" class="LineNr"> 434 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get left, data -<span id="L435" class="LineNr"> 435 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L435" class="LineNr"> 435 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L436" class="LineNr"> 436 </span> <span class="PreProc">var</span> result/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index data, n <span id="L437" class="LineNr"> 437 </span> <span class="PreProc">return</span> *result <span id="L438" class="LineNr"> 438 </span> <span class="Delimiter">}</span> @@ -504,7 +504,7 @@ if ('onhashchange' in window) { <span id="L445" class="LineNr"> 445 </span> <span class="Delimiter">{</span> <span id="L446" class="LineNr"> 446 </span> <span class="PreProc">break-if->=</span> <span id="L447" class="LineNr"> 447 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get right, data -<span id="L448" class="LineNr"> 448 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L448" class="LineNr"> 448 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L449" class="LineNr"> 449 </span> <span class="muComment"># idx = right->len - n - 1</span> <span id="L450" class="LineNr"> 450 </span> <span class="PreProc">var</span> idx/<span class="Constant">ebx</span>: int <span class="Special"><-</span> copy n <span id="L451" class="LineNr"> 451 </span> idx <span class="Special"><-</span> subtract *right-len-a @@ -514,7 +514,7 @@ if ('onhashchange' in window) { <span id="L455" class="LineNr"> 455 </span> <span class="PreProc">return</span> *result <span id="L456" class="LineNr"> 456 </span> <span class="Delimiter">}</span> <span id="L457" class="LineNr"> 457 </span> <span class="muComment"># error</span> -<span id="L458" class="LineNr"> 458 </span> <a href='../501draw-text.mu.html#L481'>abort</a> <span class="Constant">"gap-index: out of bounds"</span> +<span id="L458" class="LineNr"> 458 </span> <a href='../317abort.subx.html#L5'>abort</a> <span class="Constant">"gap-index: out of bounds"</span> <span id="L459" class="LineNr"> 459 </span> <span class="PreProc">return</span> <span class="Constant">0</span> <span id="L460" class="LineNr"> 460 </span><span class="Delimiter">}</span> <span id="L461" class="LineNr"> 461 </span> @@ -577,10 +577,10 @@ if ('onhashchange' in window) { <span id="L518" class="LineNr"> 518 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='gap-buffer.mu.html#L518'>copy-gap-buffer</a></span> _src-ah: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>), _dest-ah: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Delimiter">{</span> <span id="L519" class="LineNr"> 519 </span> <span class="muComment"># obtain src-a, dest-a</span> <span id="L520" class="LineNr"> 520 </span> <span class="PreProc">var</span> src-ah/<span class="Constant">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _src-ah -<span id="L521" class="LineNr"> 521 </span> <span class="PreProc">var</span> _src-a/<span class="Constant">eax</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *src-ah +<span id="L521" class="LineNr"> 521 </span> <span class="PreProc">var</span> _src-a/<span class="Constant">eax</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *src-ah <span id="L522" class="LineNr"> 522 </span> <span class="PreProc">var</span> src-a/<span class="Constant">esi</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _src-a <span id="L523" class="LineNr"> 523 </span> <span class="PreProc">var</span> dest-ah/<span class="Constant">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _dest-ah -<span id="L524" class="LineNr"> 524 </span> <span class="PreProc">var</span> _dest-a/<span class="Constant">eax</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *dest-ah +<span id="L524" class="LineNr"> 524 </span> <span class="PreProc">var</span> _dest-a/<span class="Constant">eax</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *dest-ah <span id="L525" class="LineNr"> 525 </span> <span class="PreProc">var</span> dest-a/<span class="Constant">edi</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _dest-a <span id="L526" class="LineNr"> 526 </span> <span class="muComment"># copy left grapheme-stack</span> <span id="L527" class="LineNr"> 527 </span> <span class="PreProc">var</span> src/<span class="Constant">ecx</span>: (addr <a href='grapheme-stack.mu.html#L3'>grapheme-stack</a>) <span class="Special"><-</span> get src-a, left @@ -758,7 +758,7 @@ if ('onhashchange' in window) { <span id="L699" class="LineNr"> 699 </span> <span class="Delimiter">}</span> <span id="L700" class="LineNr"> 700 </span> top-index <span class="Special"><-</span> decrement <span id="L701" class="LineNr"> 701 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get stack, data -<span id="L702" class="LineNr"> 702 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L702" class="LineNr"> 702 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L703" class="LineNr"> 703 </span> <span class="PreProc">var</span> g/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index data, top-index <span id="L704" class="LineNr"> 704 </span> compare *g, <span class="Constant">0x29</span>/close-paren <span id="L705" class="LineNr"> 705 </span> <span class="Delimiter">{</span> @@ -770,7 +770,7 @@ if ('onhashchange' in window) { <span id="L711" class="LineNr"> 711 </span> <span class="muComment"># cursor is not at end; return (char at cursor == ')')</span> <span id="L712" class="LineNr"> 712 </span> top-index <span class="Special"><-</span> decrement <span id="L713" class="LineNr"> 713 </span> <span class="PreProc">var</span> data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get stack, data -<span id="L714" class="LineNr"> 714 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *data-ah +<span id="L714" class="LineNr"> 714 </span> <span class="PreProc">var</span> data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L715" class="LineNr"> 715 </span> <span class="PreProc">var</span> g/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index data, top-index <span id="L716" class="LineNr"> 716 </span> compare *g, <span class="Constant">0x29</span>/close-paren <span id="L717" class="LineNr"> 717 </span> <span class="Delimiter">{</span> @@ -847,7 +847,7 @@ if ('onhashchange' in window) { <span id="L788" class="LineNr"> 788 </span> <span class="Delimiter">{</span> <span id="L789" class="LineNr"> 789 </span> <span class="PreProc">break-if->=</span> <span id="L790" class="LineNr"> 790 </span> <span class="PreProc">var</span> left-data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get left, data -<span id="L791" class="LineNr"> 791 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *left-data-ah +<span id="L791" class="LineNr"> 791 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *left-data-ah <span id="L792" class="LineNr"> 792 </span> <span class="PreProc">var</span> left-read-index/<span class="Constant">ecx</span>: int <span class="Special"><-</span> copy *left-read-index-a <span id="L793" class="LineNr"> 793 </span> <span class="PreProc">var</span> result/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index left-data, left-read-index <span id="L794" class="LineNr"> 794 </span> <span class="PreProc">return</span> *result @@ -862,7 +862,7 @@ if ('onhashchange' in window) { <span id="L803" class="LineNr"> 803 </span> <span class="PreProc">break-if->=</span> <span id="L804" class="LineNr"> 804 </span> <span class="muComment"># read the right from reverse</span> <span id="L805" class="LineNr"> 805 </span> <span class="PreProc">var</span> right-data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get right, data -<span id="L806" class="LineNr"> 806 </span> <span class="PreProc">var</span> right-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *right-data-ah +<span id="L806" class="LineNr"> 806 </span> <span class="PreProc">var</span> right-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *right-data-ah <span id="L807" class="LineNr"> 807 </span> <span class="PreProc">var</span> right-read-index/<span class="Constant">ebx</span>: int <span class="Special"><-</span> copy right-size <span id="L808" class="LineNr"> 808 </span> right-read-index <span class="Special"><-</span> subtract *right-read-index-a <span id="L809" class="LineNr"> 809 </span> right-read-index <span class="Special"><-</span> subtract <span class="Constant">1</span> @@ -883,7 +883,7 @@ if ('onhashchange' in window) { <span id="L824" class="LineNr"> 824 </span> <span class="Delimiter">{</span> <span id="L825" class="LineNr"> 825 </span> <span class="PreProc">break-if->=</span> <span id="L826" class="LineNr"> 826 </span> <span class="PreProc">var</span> left-data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get left, data -<span id="L827" class="LineNr"> 827 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *left-data-ah +<span id="L827" class="LineNr"> 827 </span> <span class="PreProc">var</span> left-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *left-data-ah <span id="L828" class="LineNr"> 828 </span> <span class="PreProc">var</span> left-read-index/<span class="Constant">ecx</span>: int <span class="Special"><-</span> copy *left-read-index-a <span id="L829" class="LineNr"> 829 </span> <span class="PreProc">var</span> result/<span class="Constant">eax</span>: (addr grapheme) <span class="Special"><-</span> index left-data, left-read-index <span id="L830" class="LineNr"> 830 </span> increment *left-read-index-a @@ -899,7 +899,7 @@ if ('onhashchange' in window) { <span id="L840" class="LineNr"> 840 </span> <span class="PreProc">break-if->=</span> <span id="L841" class="LineNr"> 841 </span> <span class="muComment"># read the right from reverse</span> <span id="L842" class="LineNr"> 842 </span> <span class="PreProc">var</span> right-data-ah/<span class="Constant">eax</span>: (addr handle array grapheme) <span class="Special"><-</span> get right, data -<span id="L843" class="LineNr"> 843 </span> <span class="PreProc">var</span> right-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L226'>lookup</a> *right-data-ah +<span id="L843" class="LineNr"> 843 </span> <span class="PreProc">var</span> right-data/<span class="Constant">eax</span>: (addr array grapheme) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *right-data-ah <span id="L844" class="LineNr"> 844 </span> <span class="PreProc">var</span> right-read-index/<span class="Constant">ebx</span>: int <span class="Special"><-</span> copy right-size <span id="L845" class="LineNr"> 845 </span> right-read-index <span class="Special"><-</span> subtract *right-read-index-a <span id="L846" class="LineNr"> 846 </span> right-read-index <span class="Special"><-</span> subtract <span class="Constant">1</span> |