diff options
Diffstat (limited to 'html/shell/environment.mu.html')
-rw-r--r-- | html/shell/environment.mu.html | 171 |
1 files changed, 85 insertions, 86 deletions
diff --git a/html/shell/environment.mu.html b/html/shell/environment.mu.html index a3761b41..023748ca 100644 --- a/html/shell/environment.mu.html +++ b/html/shell/environment.mu.html @@ -17,18 +17,17 @@ a { color:inherit; } .LineNr { } .Delimiter { color: #c000c0; } .CommentedCode { color: #8a8a8a; } -.muRegEsi { color: #87d787; } -.muRegEdi { color: #87ffd7; } +.muRegEbx { color: #5f00ff; } +.muRegEsi { color: #005faf; } +.muRegEdi { color: #00af00; } .Constant { color: #008787; } .Special { color: #ff6060; } .PreProc { color: #c000c0; } .muFunction { color: #af5f00; text-decoration: underline; } .muTest { color: #5f8700; } .muComment { color: #005faf; } -.muRegEax { color: #875f00; } -.muRegEcx { color: #af875f; } -.muRegEdx { color: #878700; } -.muRegEbx { color: #8787af; } +.muRegEcx { color: #870000; } +.muRegEdx { color: #af5f00; } --> </style> @@ -156,10 +155,10 @@ if ('onhashchange' in window) { <span id="L90" class="LineNr"> 90 </span> <span class="PreProc">var</span> input-stream/<span class="muRegEcx">ecx</span>: (addr stream byte) <span class="Special"><-</span> address input-stream-storage <span id="L91" class="LineNr"> 91 </span> <a href='../108write.subx.html#L11'>write</a> input-stream, keys <span id="L92" class="LineNr"> 92 </span> <span class="Delimiter">{</span> -<span id="L93" class="LineNr"> 93 </span> <span class="PreProc">var</span> done?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='../309stream.subx.html#L6'>stream-empty?</a> input-stream +<span id="L93" class="LineNr"> 93 </span> <span class="PreProc">var</span> done?/eax: boolean <span class="Special"><-</span> <a href='../309stream.subx.html#L6'>stream-empty?</a> input-stream <span id="L94" class="LineNr"> 94 </span> compare done?, <span class="Constant">0</span>/false <span id="L95" class="LineNr"> 95 </span> <span class="PreProc">break-if-!=</span> -<span id="L96" class="LineNr"> 96 </span> <span class="PreProc">var</span> key/<span class="muRegEax">eax</span>: grapheme <span class="Special"><-</span> <a href='../403unicode.mu.html#L92'>read-grapheme</a> input-stream +<span id="L96" class="LineNr"> 96 </span> <span class="PreProc">var</span> key/eax: grapheme <span class="Special"><-</span> <a href='../403unicode.mu.html#L92'>read-grapheme</a> input-stream <span id="L97" class="LineNr"> 97 </span> <a href='environment.mu.html#L148'>edit-environment</a> self, key, <span class="Constant">0</span>/no-disk <span id="L98" class="LineNr"> 98 </span> <a href='environment.mu.html#L115'>render-environment</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, self <span id="L99" class="LineNr"> 99 </span> <span class="PreProc">loop</span> @@ -168,13 +167,13 @@ if ('onhashchange' in window) { <span id="L102" class="LineNr"> 102 </span> <span id="L103" class="LineNr"> 103 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='environment.mu.html#L103'>initialize-environment</a></span> _self: (addr <a href='environment.mu.html#L8'>environment</a>), fake-screen-width: int, fake-screen-height: int <span class="Delimiter">{</span> <span id="L104" class="LineNr"> 104 </span> <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Special"><-</span> copy _self -<span id="L105" class="LineNr"> 105 </span> <span class="PreProc">var</span> globals/<span class="muRegEax">eax</span>: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals +<span id="L105" class="LineNr"> 105 </span> <span class="PreProc">var</span> globals/eax: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals <span id="L106" class="LineNr"> 106 </span> <a href='global.mu.html#L14'>initialize-globals</a> globals -<span id="L107" class="LineNr"> 107 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="muRegEax">eax</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> +<span id="L107" class="LineNr"> 107 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/eax: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> <span id="L108" class="LineNr"> 108 </span> <a href='sandbox.mu.html#L12'>initialize-sandbox</a> <a href='sandbox.mu.html#L1'>sandbox</a>, fake-screen-width, fake-screen-height -<span id="L109" class="LineNr"> 109 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L109" class="LineNr"> 109 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name <span id="L110" class="LineNr"> 110 </span> <a href='../120allocate.subx.html#L43'>allocate</a> partial-global-name-ah -<span id="L111" class="LineNr"> 111 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L111" class="LineNr"> 111 </span> <span class="PreProc">var</span> partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L112" class="LineNr"> 112 </span> <a href='gap-buffer.mu.html#L11'>initialize-gap-buffer</a> partial-global-name, <span class="Constant">0x40</span>/global-name-capacity <span id="L113" class="LineNr"> 113 </span><span class="Delimiter">}</span> <span id="L114" class="LineNr"> 114 </span> @@ -183,8 +182,8 @@ if ('onhashchange' in window) { <span id="L117" class="LineNr"> 117 </span> <span class="muComment"># sandbox layout: 1 padding, 41 code, 1 padding = 43</span> <span id="L118" class="LineNr"> 118 </span> <span class="muComment"># total = 128 chars</span> <span id="L119" class="LineNr"> 119 </span> <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Special"><-</span> copy _self -<span id="L120" class="LineNr"> 120 </span> <span class="PreProc">var</span> cursor-in-globals-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? -<span id="L121" class="LineNr"> 121 </span> <span class="PreProc">var</span> cursor-in-globals?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> copy *cursor-in-globals-a +<span id="L120" class="LineNr"> 120 </span> <span class="PreProc">var</span> cursor-in-globals-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? +<span id="L121" class="LineNr"> 121 </span> <span class="PreProc">var</span> cursor-in-globals?/eax: boolean <span class="Special"><-</span> copy *cursor-in-globals-a <span id="L122" class="LineNr"> 122 </span> <span class="PreProc">var</span> globals/<span class="muRegEcx">ecx</span>: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals <span id="L123" class="LineNr"> 123 </span> <a href='global.mu.html#L117'>render-globals</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, globals, cursor-in-globals? <span id="L124" class="LineNr"> 124 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="muRegEdx">edx</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> @@ -193,7 +192,7 @@ if ('onhashchange' in window) { <span id="L127" class="LineNr"> 127 </span> <a href='sandbox.mu.html#L81'>render-sandbox</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <a href='sandbox.mu.html#L1'>sandbox</a>, <span class="Constant">0x55</span>/sandbox-left-margin, <span class="Constant">0</span>/sandbox-top-margin, <span class="Constant">0x80</span>/screen-width, <span class="Constant">0x2f</span>/screen-height-without-menu, cursor-in-sandbox? <span id="L128" class="LineNr"> 128 </span> <span class="muComment"># modal if necessary</span> <span id="L129" class="LineNr"> 129 </span> <span class="Delimiter">{</span> -<span id="L130" class="LineNr"> 130 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L130" class="LineNr"> 130 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L131" class="LineNr"> 131 </span> compare *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L132" class="LineNr"> 132 </span> <span class="PreProc">break-if-=</span> <span id="L133" class="LineNr"> 133 </span> <a href='environment.mu.html#L811'>render-go-modal</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, self @@ -202,7 +201,7 @@ if ('onhashchange' in window) { <span id="L136" class="LineNr"> 136 </span> <span class="Delimiter">}</span> <span id="L137" class="LineNr"> 137 </span> <span class="muComment"># render menu</span> <span id="L138" class="LineNr"> 138 </span> <span class="Delimiter">{</span> -<span id="L139" class="LineNr"> 139 </span> <span class="PreProc">var</span> cursor-in-globals?/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? +<span id="L139" class="LineNr"> 139 </span> <span class="PreProc">var</span> cursor-in-globals?/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? <span id="L140" class="LineNr"> 140 </span> compare *cursor-in-globals?, <span class="Constant">0</span>/false <span id="L141" class="LineNr"> 141 </span> <span class="PreProc">break-if-=</span> <span id="L142" class="LineNr"> 142 </span> <a href='global.mu.html#L202'>render-globals-menu</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, globals @@ -220,7 +219,7 @@ if ('onhashchange' in window) { <span id="L154" class="LineNr"> 154 </span> <span class="Delimiter">{</span> <span id="L155" class="LineNr"> 155 </span> compare key, <span class="Constant">0x12</span>/ctrl-r <span id="L156" class="LineNr"> 156 </span> <span class="PreProc">break-if-!=</span> -<span id="L157" class="LineNr"> 157 </span> <span class="PreProc">var</span> tmp/<span class="muRegEax">eax</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> copy <span class="Constant">0</span> +<span id="L157" class="LineNr"> 157 </span> <span class="PreProc">var</span> tmp/eax: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L158" class="LineNr"> 158 </span> <span class="PreProc">var</span> <a href='cell.mu.html#L121'>nil</a>: (handle <a href='cell.mu.html#L1'>cell</a>) <span id="L159" class="LineNr"> 159 </span> tmp <span class="Special"><-</span> address <a href='cell.mu.html#L121'>nil</a> <span id="L160" class="LineNr"> 160 </span> <a href='cell.mu.html#L102'>allocate-pair</a> tmp @@ -258,7 +257,7 @@ if ('onhashchange' in window) { <span id="L192" class="LineNr"> 192 </span> <a href='evaluate.mu.html#L11'>evaluate</a> tmp, out-ah, <a href='cell.mu.html#L121'>nil</a>, globals, trace, <span class="Constant">0</span>/no-fake-screen, <span class="Constant">0</span>/no-fake-keyboard, <span class="Constant">0</span>/definitions-created, <span class="Constant">0</span>/call-number <span id="L193" class="LineNr"> 193 </span> <span class="muComment"># wait for a keypress</span> <span id="L194" class="LineNr"> 194 </span> <span class="Delimiter">{</span> -<span id="L195" class="LineNr"> 195 </span> <span class="PreProc">var</span> tmp/<span class="muRegEax">eax</span>: byte <span class="Special"><-</span> <a href='../102keyboard.subx.html#L21'>read-key</a> <span class="Constant">0</span>/keyboard +<span id="L195" class="LineNr"> 195 </span> <span class="PreProc">var</span> tmp/eax: byte <span class="Special"><-</span> <a href='../102keyboard.subx.html#L21'>read-key</a> <span class="Constant">0</span>/keyboard <span id="L196" class="LineNr"> 196 </span> compare tmp, <span class="Constant">0</span> <span id="L197" class="LineNr"> 197 </span> <span class="PreProc">loop-if-=</span> <span id="L198" class="LineNr"> 198 </span> <span class="Delimiter">}</span> @@ -271,7 +270,7 @@ if ('onhashchange' in window) { <span id="L205" class="LineNr"> 205 </span> <span class="PreProc">break-if-!=</span> <span id="L206" class="LineNr"> 206 </span> <span class="Delimiter">{</span> <span id="L207" class="LineNr"> 207 </span> <span class="muComment"># cursor in go modal? do nothing</span> -<span id="L208" class="LineNr"> 208 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L208" class="LineNr"> 208 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L209" class="LineNr"> 209 </span> compare *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L210" class="LineNr"> 210 </span> <span class="PreProc">break-if-!=</span> <span id="L211" class="LineNr"> 211 </span> <span class="Delimiter">{</span> @@ -288,7 +287,7 @@ if ('onhashchange' in window) { <span id="L222" class="LineNr"> 222 </span> <span class="Delimiter">}</span> <span id="L223" class="LineNr"> 223 </span> <span class="muComment"># dispatch to go modal if necessary</span> <span id="L224" class="LineNr"> 224 </span> <span class="Delimiter">{</span> -<span id="L225" class="LineNr"> 225 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L225" class="LineNr"> 225 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L226" class="LineNr"> 226 </span> compare *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L227" class="LineNr"> 227 </span> <span class="PreProc">break-if-=</span> <span id="L228" class="LineNr"> 228 </span> <span class="muComment"># nested events for modal dialog</span> @@ -302,9 +301,9 @@ if ('onhashchange' in window) { <span id="L236" class="LineNr"> 236 </span> <span class="Delimiter">{</span> <span id="L237" class="LineNr"> 237 </span> compare key, <span class="Constant">0x1b</span>/escape <span id="L238" class="LineNr"> 238 </span> <span class="PreProc">break-if-!=</span> -<span id="L239" class="LineNr"> 239 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L239" class="LineNr"> 239 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L240" class="LineNr"> 240 </span> copy-to *cursor-in-go-modal-a, <span class="Constant">0</span>/false -<span id="L241" class="LineNr"> 241 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L241" class="LineNr"> 241 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L242" class="LineNr"> 242 </span> clear-object go-modal-error-ah <span id="L243" class="LineNr"> 243 </span> <span class="PreProc">return</span> <span id="L244" class="LineNr"> 244 </span> <span class="Delimiter">}</span> @@ -313,19 +312,19 @@ if ('onhashchange' in window) { <span id="L247" class="LineNr"> 247 </span> compare key, <span class="Constant">0xa</span>/newline <span id="L248" class="LineNr"> 248 </span> <span class="PreProc">break-if-!=</span> <span id="L249" class="LineNr"> 249 </span> <span class="muComment"># if no global name typed in, switch to sandbox</span> -<span id="L250" class="LineNr"> 250 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name -<span id="L251" class="LineNr"> 251 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L250" class="LineNr"> 250 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L251" class="LineNr"> 251 </span> <span class="PreProc">var</span> partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L252" class="LineNr"> 252 </span> <span class="Delimiter">{</span> -<span id="L253" class="LineNr"> 253 </span> <span class="PreProc">var</span> empty?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='gap-buffer.mu.html#L27'>gap-buffer-empty?</a> partial-global-name +<span id="L253" class="LineNr"> 253 </span> <span class="PreProc">var</span> empty?/eax: boolean <span class="Special"><-</span> <a href='gap-buffer.mu.html#L27'>gap-buffer-empty?</a> partial-global-name <span id="L254" class="LineNr"> 254 </span> compare empty?, <span class="Constant">0</span>/false <span id="L255" class="LineNr"> 255 </span> <span class="PreProc">break-if-=</span> -<span id="L256" class="LineNr"> 256 </span> <span class="PreProc">var</span> cursor-in-globals-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? +<span id="L256" class="LineNr"> 256 </span> <span class="PreProc">var</span> cursor-in-globals-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? <span id="L257" class="LineNr"> 257 </span> copy-to *cursor-in-globals-a, <span class="Constant">0</span>/false <span id="L258" class="LineNr"> 258 </span> <span class="muComment"># reset error state</span> -<span id="L259" class="LineNr"> 259 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L259" class="LineNr"> 259 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L260" class="LineNr"> 260 </span> clear-object go-modal-error-ah <span id="L261" class="LineNr"> 261 </span> <span class="muComment"># done with go modal</span> -<span id="L262" class="LineNr"> 262 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L262" class="LineNr"> 262 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L263" class="LineNr"> 263 </span> copy-to *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L264" class="LineNr"> 264 </span> <span class="PreProc">return</span> <span id="L265" class="LineNr"> 265 </span> <span class="Delimiter">}</span> @@ -339,18 +338,18 @@ if ('onhashchange' in window) { <span id="L273" class="LineNr"> 273 </span> <span class="Delimiter">{</span> <span id="L274" class="LineNr"> 274 </span> compare index, <span class="Constant">0</span> <span id="L275" class="LineNr"> 275 </span> <span class="PreProc">break-if->=</span> -<span id="L276" class="LineNr"> 276 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L276" class="LineNr"> 276 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L277" class="LineNr"> 277 </span> <a href='../312copy.subx.html#L3'>copy-array-object</a> <span class="Constant">"no such global"</span>, go-modal-error-ah <span id="L278" class="LineNr"> 278 </span> <span class="PreProc">return</span> <span id="L279" class="LineNr"> 279 </span> <span class="Delimiter">}</span> <span id="L280" class="LineNr"> 280 </span> <span class="muComment"># otherwise clear modal state</span> <span id="L281" class="LineNr"> 281 </span> <a href='gap-buffer.mu.html#L19'>clear-gap-buffer</a> partial-global-name -<span id="L282" class="LineNr"> 282 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L282" class="LineNr"> 282 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L283" class="LineNr"> 283 </span> clear-object go-modal-error-ah -<span id="L284" class="LineNr"> 284 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L284" class="LineNr"> 284 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L285" class="LineNr"> 285 </span> copy-to *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L286" class="LineNr"> 286 </span> <span class="muComment"># switch focus to global at index</span> -<span id="L287" class="LineNr"> 287 </span> <span class="PreProc">var</span> globals-cursor-index/<span class="muRegEax">eax</span>: (addr int) <span class="Special"><-</span> get globals, cursor-index +<span id="L287" class="LineNr"> 287 </span> <span class="PreProc">var</span> globals-cursor-index/eax: (addr int) <span class="Special"><-</span> get globals, cursor-index <span id="L288" class="LineNr"> 288 </span> copy-to *globals-cursor-index, index <span id="L289" class="LineNr"> 289 </span> <span class="PreProc">var</span> cursor-in-globals-a/<span class="muRegEcx">ecx</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? <span id="L290" class="LineNr"> 290 </span> copy-to *cursor-in-globals-a, <span class="Constant">1</span>/true @@ -361,13 +360,13 @@ if ('onhashchange' in window) { <span id="L295" class="LineNr"> 295 </span> compare key, <span class="Constant">0xd</span>/ctrl-m <span id="L296" class="LineNr"> 296 </span> <span class="PreProc">break-if-!=</span> <span id="L297" class="LineNr"> 297 </span> <span class="muComment"># if no global name typed in, set error and return</span> -<span id="L298" class="LineNr"> 298 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name -<span id="L299" class="LineNr"> 299 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L298" class="LineNr"> 298 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L299" class="LineNr"> 299 </span> <span class="PreProc">var</span> partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L300" class="LineNr"> 300 </span> <span class="Delimiter">{</span> -<span id="L301" class="LineNr"> 301 </span> <span class="PreProc">var</span> empty?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='gap-buffer.mu.html#L27'>gap-buffer-empty?</a> partial-global-name +<span id="L301" class="LineNr"> 301 </span> <span class="PreProc">var</span> empty?/eax: boolean <span class="Special"><-</span> <a href='gap-buffer.mu.html#L27'>gap-buffer-empty?</a> partial-global-name <span id="L302" class="LineNr"> 302 </span> compare empty?, <span class="Constant">0</span>/false <span id="L303" class="LineNr"> 303 </span> <span class="PreProc">break-if-=</span> -<span id="L304" class="LineNr"> 304 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L304" class="LineNr"> 304 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L305" class="LineNr"> 305 </span> <a href='../312copy.subx.html#L3'>copy-array-object</a> <span class="Constant">"create what?"</span>, go-modal-error-ah <span id="L306" class="LineNr"> 306 </span> <span class="PreProc">return</span> <span id="L307" class="LineNr"> 307 </span> <span class="Delimiter">}</span> @@ -381,29 +380,29 @@ if ('onhashchange' in window) { <span id="L315" class="LineNr"> 315 </span> <span class="Delimiter">{</span> <span id="L316" class="LineNr"> 316 </span> compare index, <span class="Constant">0</span> <span id="L317" class="LineNr"> 317 </span> <span class="PreProc">break-if-<</span> -<span id="L318" class="LineNr"> 318 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L318" class="LineNr"> 318 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L319" class="LineNr"> 319 </span> <a href='../312copy.subx.html#L3'>copy-array-object</a> <span class="Constant">"already exists"</span>, go-modal-error-ah <span id="L320" class="LineNr"> 320 </span> <span class="PreProc">return</span> <span id="L321" class="LineNr"> 321 </span> <span class="Delimiter">}</span> <span id="L322" class="LineNr"> 322 </span> <span class="muComment"># otherwise clear modal state</span> <span id="L323" class="LineNr"> 323 </span> <a href='gap-buffer.mu.html#L19'>clear-gap-buffer</a> partial-global-name -<span id="L324" class="LineNr"> 324 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L324" class="LineNr"> 324 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error <span id="L325" class="LineNr"> 325 </span> clear-object go-modal-error-ah -<span id="L326" class="LineNr"> 326 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L326" class="LineNr"> 326 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L327" class="LineNr"> 327 </span> copy-to *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L328" class="LineNr"> 328 </span> <span class="muComment"># create new global</span> <span id="L329" class="LineNr"> 329 </span> <a href='global.mu.html#L250'>create-empty-global</a> globals, name, <span class="Constant">0x2000</span>/default-gap-buffer-size=8KB -<span id="L330" class="LineNr"> 330 </span> <span class="PreProc">var</span> globals-final-index/<span class="muRegEax">eax</span>: (addr int) <span class="Special"><-</span> get globals, final-index +<span id="L330" class="LineNr"> 330 </span> <span class="PreProc">var</span> globals-final-index/eax: (addr int) <span class="Special"><-</span> get globals, final-index <span id="L331" class="LineNr"> 331 </span> <span class="PreProc">var</span> new-index/<span class="muRegEcx">ecx</span>: int <span class="Special"><-</span> copy *globals-final-index -<span id="L332" class="LineNr"> 332 </span> <span class="PreProc">var</span> globals-cursor-index/<span class="muRegEax">eax</span>: (addr int) <span class="Special"><-</span> get globals, cursor-index +<span id="L332" class="LineNr"> 332 </span> <span class="PreProc">var</span> globals-cursor-index/eax: (addr int) <span class="Special"><-</span> get globals, cursor-index <span id="L333" class="LineNr"> 333 </span> copy-to *globals-cursor-index, new-index <span id="L334" class="LineNr"> 334 </span> <span class="PreProc">var</span> cursor-in-globals-a/<span class="muRegEcx">ecx</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? <span id="L335" class="LineNr"> 335 </span> copy-to *cursor-in-globals-a, <span class="Constant">1</span>/true <span id="L336" class="LineNr"> 336 </span> <span class="PreProc">return</span> <span id="L337" class="LineNr"> 337 </span> <span class="Delimiter">}</span> <span id="L338" class="LineNr"> 338 </span> <span class="muComment"># otherwise process like a regular gap-buffer</span> -<span id="L339" class="LineNr"> 339 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name -<span id="L340" class="LineNr"> 340 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L339" class="LineNr"> 339 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L340" class="LineNr"> 340 </span> <span class="PreProc">var</span> partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L341" class="LineNr"> 341 </span> <a href='gap-buffer.mu.html#L1204'>edit-gap-buffer</a> partial-global-name, key <span id="L342" class="LineNr"> 342 </span> <span class="PreProc">return</span> <span id="L343" class="LineNr"> 343 </span> <span class="Delimiter">}</span> @@ -415,18 +414,18 @@ if ('onhashchange' in window) { <span id="L349" class="LineNr"> 349 </span> <span class="PreProc">var</span> current-word-storage: (stream byte <span class="Constant">0x40</span>) <span id="L350" class="LineNr"> 350 </span> <span class="PreProc">var</span> current-word/<span class="muRegEdi">edi</span>: (addr stream byte) <span class="Special"><-</span> address current-word-storage <span id="L351" class="LineNr"> 351 </span> <a href='environment.mu.html#L901'>word-at-cursor</a> self, current-word -<span id="L352" class="LineNr"> 352 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name -<span id="L353" class="LineNr"> 353 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L352" class="LineNr"> 352 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L353" class="LineNr"> 353 </span> <span class="PreProc">var</span> partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L354" class="LineNr"> 354 </span> <a href='gap-buffer.mu.html#L19'>clear-gap-buffer</a> partial-global-name <span id="L355" class="LineNr"> 355 </span> <a href='gap-buffer.mu.html#L68'>load-gap-buffer-from-stream</a> partial-global-name, current-word <span id="L356" class="LineNr"> 356 </span> <span class="muComment"># enable the modal</span> -<span id="L357" class="LineNr"> 357 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L357" class="LineNr"> 357 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L358" class="LineNr"> 358 </span> copy-to *cursor-in-go-modal-a, <span class="Constant">1</span>/true <span id="L359" class="LineNr"> 359 </span> <span class="PreProc">return</span> <span id="L360" class="LineNr"> 360 </span> <span class="Delimiter">}</span> <span id="L361" class="LineNr"> 361 </span> <span class="muComment"># dispatch the key to either sandbox or globals</span> <span id="L362" class="LineNr"> 362 </span> <span class="Delimiter">{</span> -<span id="L363" class="LineNr"> 363 </span> <span class="PreProc">var</span> cursor-in-globals-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? +<span id="L363" class="LineNr"> 363 </span> <span class="PreProc">var</span> cursor-in-globals-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-globals? <span id="L364" class="LineNr"> 364 </span> compare *cursor-in-globals-a, <span class="Constant">0</span>/false <span id="L365" class="LineNr"> 365 </span> <span class="PreProc">break-if-=</span> <span id="L366" class="LineNr"> 366 </span> <a href='global.mu.html#L229'>edit-globals</a> globals, key @@ -436,26 +435,26 @@ if ('onhashchange' in window) { <span id="L370" class="LineNr"> 370 </span><span class="Delimiter">}</span> <span id="L371" class="LineNr"> 371 </span> <span id="L372" class="LineNr"> 372 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='environment.mu.html#L372'>read-and-evaluate-and-save-gap-buffer-to-globals</a></span> _in-ah: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>), result-ah: (addr handle <a href='cell.mu.html#L1'>cell</a>), globals: (addr <a href='global.mu.html#L1'>global-table</a>), definitions-created: (addr stream int), trace: (addr trace), inner-screen-var: (addr handle <a href='cell.mu.html#L1'>cell</a>), inner-keyboard-var: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Delimiter">{</span> -<span id="L373" class="LineNr"> 373 </span> <span class="PreProc">var</span> in-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _in-ah -<span id="L374" class="LineNr"> 374 </span> <span class="PreProc">var</span> in/<span class="muRegEax">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> *in-ah +<span id="L373" class="LineNr"> 373 </span> <span class="PreProc">var</span> in-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _in-ah +<span id="L374" class="LineNr"> 374 </span> <span class="PreProc">var</span> in/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *in-ah <span id="L375" class="LineNr"> 375 </span> <span class="PreProc">var</span> read-result-h: (handle <a href='cell.mu.html#L1'>cell</a>) <span id="L376" class="LineNr"> 376 </span> <span class="PreProc">var</span> read-result-ah/<span class="muRegEsi">esi</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address read-result-h <span id="L377" class="LineNr"> 377 </span> <a href='read.mu.html#L1'>read-cell</a> in, read-result-ah, trace -<span id="L378" class="LineNr"> 378 </span> <span class="PreProc">var</span> error?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace +<span id="L378" class="LineNr"> 378 </span> <span class="PreProc">var</span> error?/eax: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace <span id="L379" class="LineNr"> 379 </span> <span class="Delimiter">{</span> <span id="L380" class="LineNr"> 380 </span> compare error?, <span class="Constant">0</span>/false <span id="L381" class="LineNr"> 381 </span> <span class="PreProc">break-if-=</span> <span id="L382" class="LineNr"> 382 </span> <span class="PreProc">return</span> <span id="L383" class="LineNr"> 383 </span> <span class="Delimiter">}</span> <span id="L384" class="LineNr"> 384 </span> <a href='macroexpand.mu.html#L1'>macroexpand</a> read-result-ah, globals, trace -<span id="L385" class="LineNr"> 385 </span> <span class="PreProc">var</span> error?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace +<span id="L385" class="LineNr"> 385 </span> <span class="PreProc">var</span> error?/eax: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace <span id="L386" class="LineNr"> 386 </span> <span class="Delimiter">{</span> <span id="L387" class="LineNr"> 387 </span> compare error?, <span class="Constant">0</span>/false <span id="L388" class="LineNr"> 388 </span> <span class="PreProc">break-if-=</span> <span id="L389" class="LineNr"> 389 </span> <span class="PreProc">return</span> <span id="L390" class="LineNr"> 390 </span> <span class="Delimiter">}</span> <span id="L391" class="LineNr"> 391 </span> <span class="PreProc">var</span> nil-h: (handle <a href='cell.mu.html#L1'>cell</a>) -<span id="L392" class="LineNr"> 392 </span> <span class="PreProc">var</span> nil-ah/<span class="muRegEax">eax</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address nil-h +<span id="L392" class="LineNr"> 392 </span> <span class="PreProc">var</span> nil-ah/eax: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address nil-h <span id="L393" class="LineNr"> 393 </span> <a href='cell.mu.html#L102'>allocate-pair</a> nil-ah <span id="L394" class="LineNr"> 394 </span><span class="CommentedCode">#? set-cursor-position 0/screen, 0 0</span> <span id="L395" class="LineNr"> 395 </span><span class="CommentedCode">#? turn-on-debug-print</span> @@ -464,7 +463,7 @@ if ('onhashchange' in window) { <span id="L398" class="LineNr"> 398 </span> <a href='../315stack-debug.subx.html#L56'>debug-print</a> <span class="Constant">"^"</span>, <span class="Constant">4</span>/fg, <span class="Constant">0</span>/bg <span id="L399" class="LineNr"> 399 </span> <a href='evaluate.mu.html#L11'>evaluate</a> read-result-ah, result-ah, *nil-ah, globals, trace, inner-screen-var, inner-keyboard-var, definitions-created, call-number <span id="L400" class="LineNr"> 400 </span> <a href='../315stack-debug.subx.html#L56'>debug-print</a> <span class="Constant">"$"</span>, <span class="Constant">4</span>/fg, <span class="Constant">0</span>/bg -<span id="L401" class="LineNr"> 401 </span> <span class="PreProc">var</span> error?/<span class="muRegEax">eax</span>: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace +<span id="L401" class="LineNr"> 401 </span> <span class="PreProc">var</span> error?/eax: boolean <span class="Special"><-</span> <a href='trace.mu.html#L94'>has-errors?</a> trace <span id="L402" class="LineNr"> 402 </span> <span class="Delimiter">{</span> <span id="L403" class="LineNr"> 403 </span> compare error?, <span class="Constant">0</span>/false <span id="L404" class="LineNr"> 404 </span> <span class="PreProc">break-if-=</span> @@ -876,7 +875,7 @@ if ('onhashchange' in window) { <span id="L810" class="LineNr"> 810 </span> <span id="L811" class="LineNr"> 811 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='environment.mu.html#L811'>render-go-modal</a></span> <a href='../500fake-screen.mu.html#L14'>screen</a>: (addr <a href='../500fake-screen.mu.html#L14'>screen</a>), _self: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Delimiter">{</span> <span id="L812" class="LineNr"> 812 </span> <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Special"><-</span> copy _self -<span id="L813" class="LineNr"> 813 </span> <span class="PreProc">var</span> width/<span class="muRegEax">eax</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> +<span id="L813" class="LineNr"> 813 </span> <span class="PreProc">var</span> width/eax: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L814" class="LineNr"> 814 </span> <span class="PreProc">var</span> height/<span class="muRegEcx">ecx</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L815" class="LineNr"> 815 </span> width, height <span class="Special"><-</span> <a href='../500fake-screen.mu.html#L86'>screen-size</a> <a href='../500fake-screen.mu.html#L14'>screen</a> <span id="L816" class="LineNr"> 816 </span> <span class="muComment"># xmin = max(0, width/2 - 0x20)</span> @@ -916,27 +915,27 @@ if ('onhashchange' in window) { <span id="L850" class="LineNr"> 850 </span> add-to xmin, <span class="Constant">4</span> <span id="L851" class="LineNr"> 851 </span> <a href='../500fake-screen.mu.html#L190'>set-cursor-position</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, xmin, ymin <span id="L852" class="LineNr"> 852 </span> <a href='../501draw-text.mu.html#L133'>draw-text-rightward-from-cursor</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, <span class="Constant">"go to <a href='global.mu.html#L7'>global</a> (or leave blank to go to REPL)"</span>, xmax, <span class="Constant">8</span>/fg=dark-grey, <span class="Constant">0xf</span>/bg=modal -<span id="L853" class="LineNr"> 853 </span> <span class="PreProc">var</span> partial-global-name-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name -<span id="L854" class="LineNr"> 854 </span> <span class="PreProc">var</span> _partial-global-name/<span class="muRegEax">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> *partial-global-name-ah +<span id="L853" class="LineNr"> 853 </span> <span class="PreProc">var</span> partial-global-name-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get self, partial-global-name +<span id="L854" class="LineNr"> 854 </span> <span class="PreProc">var</span> _partial-global-name/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *partial-global-name-ah <span id="L855" class="LineNr"> 855 </span> <span class="PreProc">var</span> partial-global-name/<span class="muRegEdx">edx</span>: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> copy _partial-global-name <span id="L856" class="LineNr"> 856 </span> subtract-from xmin, <span class="Constant">4</span> <span id="L857" class="LineNr"> 857 </span> increment ymin <span id="L858" class="LineNr"> 858 </span> <span class="Delimiter">{</span> -<span id="L859" class="LineNr"> 859 </span> <span class="PreProc">var</span> go-modal-error-ah/<span class="muRegEax">eax</span>: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error -<span id="L860" class="LineNr"> 860 </span> <span class="PreProc">var</span> go-modal-error/<span class="muRegEax">eax</span>: (addr array byte) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *go-modal-error-ah +<span id="L859" class="LineNr"> 859 </span> <span class="PreProc">var</span> go-modal-error-ah/eax: (addr handle array byte) <span class="Special"><-</span> get self, go-modal-error +<span id="L860" class="LineNr"> 860 </span> <span class="PreProc">var</span> go-modal-error/eax: (addr array byte) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *go-modal-error-ah <span id="L861" class="LineNr"> 861 </span> compare go-modal-error, <span class="Constant">0</span> <span id="L862" class="LineNr"> 862 </span> <span class="PreProc">break-if-=</span> -<span id="L863" class="LineNr"> 863 </span> <span class="PreProc">var</span> dummy/<span class="muRegEax">eax</span>: int <span class="Special"><-</span> <a href='../501draw-text.mu.html#L100'>draw-text-rightward</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, go-modal-error, xmin, xmax, ymin, <span class="Constant">4</span>/fg=<span class="Special"><a href='trace.mu.html#L197'>error</a></span>, <span class="Constant">0xf</span>/bg=modal +<span id="L863" class="LineNr"> 863 </span> <span class="PreProc">var</span> dummy/eax: int <span class="Special"><-</span> <a href='../501draw-text.mu.html#L100'>draw-text-rightward</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, go-modal-error, xmin, xmax, ymin, <span class="Constant">4</span>/fg=<span class="Special"><a href='trace.mu.html#L197'>error</a></span>, <span class="Constant">0xf</span>/bg=modal <span id="L864" class="LineNr"> 864 </span> <span class="Delimiter">}</span> <span id="L865" class="LineNr"> 865 </span> increment ymin -<span id="L866" class="LineNr"> 866 </span> <span class="PreProc">var</span> dummy/<span class="muRegEax">eax</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> +<span id="L866" class="LineNr"> 866 </span> <span class="PreProc">var</span> dummy/eax: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L867" class="LineNr"> 867 </span> <span class="PreProc">var</span> dummy2/<span class="muRegEcx">ecx</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L868" class="LineNr"> 868 </span> dummy, dummy2 <span class="Special"><-</span> <a href='gap-buffer.mu.html#L386'>render-gap-buffer-wrapping-right-then-down</a> <a href='../500fake-screen.mu.html#L14'>screen</a>, partial-global-name, xmin, ymin, xmax, ymax, <span class="Constant">1</span>/always-render-cursor, <span class="Constant">0</span>/fg=black, <span class="Constant">0xf</span>/bg=modal <span id="L869" class="LineNr"> 869 </span><span class="Delimiter">}</span> <span id="L870" class="LineNr"> 870 </span> <span id="L871" class="LineNr"> 871 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='environment.mu.html#L871'>render-go-modal-menu</a></span> <a href='../500fake-screen.mu.html#L14'>screen</a>: (addr <a href='../500fake-screen.mu.html#L14'>screen</a>), _self: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Delimiter">{</span> <span id="L872" class="LineNr"> 872 </span> <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Special"><-</span> copy _self -<span id="L873" class="LineNr"> 873 </span> <span class="PreProc">var</span> _width/<span class="muRegEax">eax</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> +<span id="L873" class="LineNr"> 873 </span> <span class="PreProc">var</span> _width/eax: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L874" class="LineNr"> 874 </span> <span class="PreProc">var</span> height/<span class="muRegEcx">ecx</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> <span id="L875" class="LineNr"> 875 </span> _width, height <span class="Special"><-</span> <a href='../500fake-screen.mu.html#L86'>screen-size</a> <a href='../500fake-screen.mu.html#L14'>screen</a> <span id="L876" class="LineNr"> 876 </span> <span class="PreProc">var</span> width/<span class="muRegEdx">edx</span>: int <span class="Special"><-</span> copy _width @@ -966,7 +965,7 @@ if ('onhashchange' in window) { <span id="L900" class="LineNr"> 900 </span> <span id="L901" class="LineNr"> 901 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='environment.mu.html#L901'>word-at-cursor</a></span> _self: (addr <a href='environment.mu.html#L8'>environment</a>), out: (addr stream byte) <span class="Delimiter">{</span> <span id="L902" class="LineNr"> 902 </span> <span class="PreProc">var</span> self/<span class="muRegEsi">esi</span>: (addr <a href='environment.mu.html#L8'>environment</a>) <span class="Special"><-</span> copy _self -<span id="L903" class="LineNr"> 903 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/<span class="muRegEax">eax</span>: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? +<span id="L903" class="LineNr"> 903 </span> <span class="PreProc">var</span> cursor-in-go-modal-a/eax: (addr boolean) <span class="Special"><-</span> get self, cursor-in-go-modal? <span id="L904" class="LineNr"> 904 </span> compare *cursor-in-go-modal-a, <span class="Constant">0</span>/false <span id="L905" class="LineNr"> 905 </span> <span class="Delimiter">{</span> <span id="L906" class="LineNr"> 906 </span> <span class="PreProc">break-if-=</span> @@ -978,22 +977,22 @@ if ('onhashchange' in window) { <span id="L912" class="LineNr"> 912 </span> <span class="Delimiter">{</span> <span id="L913" class="LineNr"> 913 </span> <span class="PreProc">break-if-=</span> <span id="L914" class="LineNr"> 914 </span> <span class="muComment"># cursor in some global editor</span> -<span id="L915" class="LineNr"> 915 </span> <span class="PreProc">var</span> globals/<span class="muRegEax">eax</span>: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals +<span id="L915" class="LineNr"> 915 </span> <span class="PreProc">var</span> globals/eax: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals <span id="L916" class="LineNr"> 916 </span> <span class="PreProc">var</span> cursor-index-addr/<span class="muRegEcx">ecx</span>: (addr int) <span class="Special"><-</span> get globals, cursor-index <span id="L917" class="LineNr"> 917 </span> <span class="PreProc">var</span> cursor-index/<span class="muRegEcx">ecx</span>: int <span class="Special"><-</span> copy *cursor-index-addr -<span id="L918" class="LineNr"> 918 </span> <span class="PreProc">var</span> globals-data-ah/<span class="muRegEax">eax</span>: (addr handle array <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> get globals, data -<span id="L919" class="LineNr"> 919 </span> <span class="PreProc">var</span> globals-data/<span class="muRegEax">eax</span>: (addr array <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-data-ah +<span id="L918" class="LineNr"> 918 </span> <span class="PreProc">var</span> globals-data-ah/eax: (addr handle array <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> get globals, data +<span id="L919" class="LineNr"> 919 </span> <span class="PreProc">var</span> globals-data/eax: (addr array <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-data-ah <span id="L920" class="LineNr"> 920 </span> <span class="PreProc">var</span> cursor-offset/<span class="muRegEcx">ecx</span>: (offset <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> compute-offset globals-data, cursor-index -<span id="L921" class="LineNr"> 921 </span> <span class="PreProc">var</span> curr-global/<span class="muRegEax">eax</span>: (addr <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> index globals-data, cursor-offset -<span id="L922" class="LineNr"> 922 </span> <span class="PreProc">var</span> curr-global-data-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get curr-global, input -<span id="L923" class="LineNr"> 923 </span> <span class="PreProc">var</span> curr-global-data/<span class="muRegEax">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> *curr-global-data-ah +<span id="L921" class="LineNr"> 921 </span> <span class="PreProc">var</span> curr-global/eax: (addr <a href='global.mu.html#L7'>global</a>) <span class="Special"><-</span> index globals-data, cursor-offset +<span id="L922" class="LineNr"> 922 </span> <span class="PreProc">var</span> curr-global-data-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get curr-global, input +<span id="L923" class="LineNr"> 923 </span> <span class="PreProc">var</span> curr-global-data/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *curr-global-data-ah <span id="L924" class="LineNr"> 924 </span> <a href='gap-buffer.mu.html#L133'>word-at-gap</a> curr-global-data, out <span id="L925" class="LineNr"> 925 </span> <span class="PreProc">return</span> <span id="L926" class="LineNr"> 926 </span> <span class="Delimiter">}</span> <span id="L927" class="LineNr"> 927 </span> <span class="muComment"># cursor in sandbox</span> <span id="L928" class="LineNr"> 928 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="muRegEcx">ecx</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L929" class="LineNr"> 929 </span> <span class="PreProc">var</span> sandbox-data-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data -<span id="L930" class="LineNr"> 930 </span> <span class="PreProc">var</span> sandbox-data/<span class="muRegEax">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> *sandbox-data-ah +<span id="L929" class="LineNr"> 929 </span> <span class="PreProc">var</span> sandbox-data-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data +<span id="L930" class="LineNr"> 930 </span> <span class="PreProc">var</span> sandbox-data/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-data-ah <span id="L931" class="LineNr"> 931 </span> <a href='gap-buffer.mu.html#L133'>word-at-gap</a> sandbox-data, out <span id="L932" class="LineNr"> 932 </span><span class="Delimiter">}</span> <span id="L933" class="LineNr"> 933 </span> @@ -1010,9 +1009,9 @@ if ('onhashchange' in window) { <span id="L944" class="LineNr"> 944 </span> <span class="muComment"># stream -> gap-buffer (HACK: we temporarily cannibalize the sandbox's gap-buffer)</span> <span id="L945" class="LineNr"> 945 </span> <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <span class="Constant">0</span>/screen, <span class="Constant">"parsing"</span>, <span class="Constant">3</span>/fg, <span class="Constant">0</span>/bg <span id="L946" class="LineNr"> 946 </span> <a href='../501draw-text.mu.html#L65'>move-cursor-to-left-margin-of-next-line</a> <span class="Constant">0</span>/screen -<span id="L947" class="LineNr"> 947 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="muRegEax">eax</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L948" class="LineNr"> 948 </span> <span class="PreProc">var</span> data-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data -<span id="L949" class="LineNr"> 949 </span> <span class="PreProc">var</span> data/<span class="muRegEax">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> *data-ah +<span id="L947" class="LineNr"> 947 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/eax: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> +<span id="L948" class="LineNr"> 948 </span> <span class="PreProc">var</span> data-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data +<span id="L949" class="LineNr"> 949 </span> <span class="PreProc">var</span> data/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L950" class="LineNr"> 950 </span> <a href='gap-buffer.mu.html#L68'>load-gap-buffer-from-stream</a> data, s <span id="L951" class="LineNr"> 951 </span> <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <span class="Constant">0</span>/screen, <span class="Constant">" into gap buffer"</span>, <span class="Constant">3</span>/fg, <span class="Constant">0</span>/bg <span id="L952" class="LineNr"> 952 </span> <a href='../501draw-text.mu.html#L65'>move-cursor-to-left-margin-of-next-line</a> <span class="Constant">0</span>/screen @@ -1029,48 +1028,48 @@ if ('onhashchange' in window) { <span id="L963" class="LineNr"> 963 </span> <a href='gap-buffer.mu.html#L19'>clear-gap-buffer</a> data <span id="L964" class="LineNr"> 964 </span> <span class="muComment">#</span> <span id="L965" class="LineNr"> 965 </span> <span class="Delimiter">{</span> -<span id="L966" class="LineNr"> 966 </span> <span class="PreProc">var</span> initial-root-addr/<span class="muRegEax">eax</span>: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *initial-root +<span id="L966" class="LineNr"> 966 </span> <span class="PreProc">var</span> initial-root-addr/eax: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *initial-root <span id="L967" class="LineNr"> 967 </span> compare initial-root-addr, <span class="Constant">0</span> <span id="L968" class="LineNr"> 968 </span> <span class="PreProc">break-if-!=</span> <span id="L969" class="LineNr"> 969 </span> <span class="PreProc">return</span> <span id="L970" class="LineNr"> 970 </span> <span class="Delimiter">}</span> <span id="L971" class="LineNr"> 971 </span> <span class="muComment"># load globals from assoc(initial-root, 'globals)</span> <span id="L972" class="LineNr"> 972 </span> <span class="PreProc">var</span> globals-literal-storage: (handle <a href='cell.mu.html#L1'>cell</a>) -<span id="L973" class="LineNr"> 973 </span> <span class="PreProc">var</span> globals-literal-ah/<span class="muRegEax">eax</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address globals-literal-storage +<span id="L973" class="LineNr"> 973 </span> <span class="PreProc">var</span> globals-literal-ah/eax: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address globals-literal-storage <span id="L974" class="LineNr"> 974 </span> <a href='cell.mu.html#L39'>new-symbol</a> globals-literal-ah, <span class="Constant">"globals"</span> -<span id="L975" class="LineNr"> 975 </span> <span class="PreProc">var</span> globals-literal/<span class="muRegEax">eax</span>: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-literal-ah +<span id="L975" class="LineNr"> 975 </span> <span class="PreProc">var</span> globals-literal/eax: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-literal-ah <span id="L976" class="LineNr"> 976 </span> <span class="PreProc">var</span> globals-cell-storage: (handle <a href='cell.mu.html#L1'>cell</a>) <span id="L977" class="LineNr"> 977 </span> <span class="PreProc">var</span> globals-cell-ah/<span class="muRegEdx">edx</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address globals-cell-storage <span id="L978" class="LineNr"> 978 </span> <a href='trace.mu.html#L80'>clear-trace</a> trace <span id="L979" class="LineNr"> 979 </span> <a href='evaluate.mu.html#L868'>lookup-symbol</a> globals-literal, globals-cell-ah, *initial-root, <span class="Constant">0</span>/no-globals, trace, <span class="Constant">0</span>/no-screen, <span class="Constant">0</span>/no-keyboard -<span id="L980" class="LineNr"> 980 </span> <span class="PreProc">var</span> globals-cell/<span class="muRegEax">eax</span>: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-cell-ah +<span id="L980" class="LineNr"> 980 </span> <span class="PreProc">var</span> globals-cell/eax: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *globals-cell-ah <span id="L981" class="LineNr"> 981 </span> <span class="Delimiter">{</span> <span id="L982" class="LineNr"> 982 </span> compare globals-cell, <span class="Constant">0</span> <span id="L983" class="LineNr"> 983 </span> <span class="PreProc">break-if-=</span> -<span id="L984" class="LineNr"> 984 </span> <span class="PreProc">var</span> globals/<span class="muRegEax">eax</span>: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals +<span id="L984" class="LineNr"> 984 </span> <span class="PreProc">var</span> globals/eax: (addr <a href='global.mu.html#L1'>global-table</a>) <span class="Special"><-</span> get self, globals <span id="L985" class="LineNr"> 985 </span> <a href='global.mu.html#L27'>load-globals</a> globals-cell-ah, globals <span id="L986" class="LineNr"> 986 </span> <span class="Delimiter">}</span> <span id="L987" class="LineNr"> 987 </span> <span class="muComment"># sandbox = assoc(initial-root, 'sandbox)</span> <span id="L988" class="LineNr"> 988 </span> <a href='../501draw-text.mu.html#L279'>draw-text-wrapping-right-then-down-from-cursor-over-full-screen</a> <span class="Constant">0</span>/screen, <span class="Constant">"loading sandbox"</span>, <span class="Constant">3</span>/fg, <span class="Constant">0</span>/bg <span id="L989" class="LineNr"> 989 </span> <span class="PreProc">var</span> sandbox-literal-storage: (handle <a href='cell.mu.html#L1'>cell</a>) -<span id="L990" class="LineNr"> 990 </span> <span class="PreProc">var</span> sandbox-literal-ah/<span class="muRegEax">eax</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address sandbox-literal-storage +<span id="L990" class="LineNr"> 990 </span> <span class="PreProc">var</span> sandbox-literal-ah/eax: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address sandbox-literal-storage <span id="L991" class="LineNr"> 991 </span> <a href='cell.mu.html#L39'>new-symbol</a> sandbox-literal-ah, <span class="Constant">"sandbox"</span> -<span id="L992" class="LineNr"> 992 </span> <span class="PreProc">var</span> sandbox-literal/<span class="muRegEax">eax</span>: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-literal-ah +<span id="L992" class="LineNr"> 992 </span> <span class="PreProc">var</span> sandbox-literal/eax: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-literal-ah <span id="L993" class="LineNr"> 993 </span> <span class="PreProc">var</span> sandbox-cell-storage: (handle <a href='cell.mu.html#L1'>cell</a>) <span id="L994" class="LineNr"> 994 </span> <span class="PreProc">var</span> sandbox-cell-ah/<span class="muRegEdx">edx</span>: (addr handle <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> address sandbox-cell-storage <span id="L995" class="LineNr"> 995 </span> <a href='trace.mu.html#L80'>clear-trace</a> trace <span id="L996" class="LineNr"> 996 </span> <a href='evaluate.mu.html#L868'>lookup-symbol</a> sandbox-literal, sandbox-cell-ah, *initial-root, <span class="Constant">0</span>/no-globals, trace, <span class="Constant">0</span>/no-screen, <span class="Constant">0</span>/no-keyboard -<span id="L997" class="LineNr"> 997 </span> <span class="PreProc">var</span> sandbox-cell/<span class="muRegEax">eax</span>: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-cell-ah +<span id="L997" class="LineNr"> 997 </span> <span class="PreProc">var</span> sandbox-cell/eax: (addr <a href='cell.mu.html#L1'>cell</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-cell-ah <span id="L998" class="LineNr"> 998 </span> <span class="Delimiter">{</span> <span id="L999" class="LineNr"> 999 </span> compare sandbox-cell, <span class="Constant">0</span> <span id="L1000" class="LineNr">1000 </span> <span class="PreProc">break-if-=</span> -<span id="L1001" class="LineNr">1001 </span> <span class="PreProc">var</span> sandbox-data-ah/<span class="muRegEax">eax</span>: (addr handle stream byte) <span class="Special"><-</span> get sandbox-cell, text-data -<span id="L1002" class="LineNr">1002 </span> <span class="PreProc">var</span> _sandbox-data/<span class="muRegEax">eax</span>: (addr stream byte) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-data-ah +<span id="L1001" class="LineNr">1001 </span> <span class="PreProc">var</span> sandbox-data-ah/eax: (addr handle stream byte) <span class="Special"><-</span> get sandbox-cell, text-data +<span id="L1002" class="LineNr">1002 </span> <span class="PreProc">var</span> _sandbox-data/eax: (addr stream byte) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *sandbox-data-ah <span id="L1003" class="LineNr">1003 </span> <span class="PreProc">var</span> sandbox-data/<span class="muRegEcx">ecx</span>: (addr stream byte) <span class="Special"><-</span> copy _sandbox-data <span id="L1004" class="LineNr">1004 </span> <span class="muComment"># stream -> gap-buffer</span> -<span id="L1005" class="LineNr">1005 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="muRegEax">eax</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L1006" class="LineNr">1006 </span> <span class="PreProc">var</span> data-ah/<span class="muRegEax">eax</span>: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data -<span id="L1007" class="LineNr">1007 </span> <span class="PreProc">var</span> data/<span class="muRegEax">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> *data-ah +<span id="L1005" class="LineNr">1005 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/eax: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> get self, <a href='sandbox.mu.html#L1'>sandbox</a> +<span id="L1006" class="LineNr">1006 </span> <span class="PreProc">var</span> data-ah/eax: (addr handle <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> get <a href='sandbox.mu.html#L1'>sandbox</a>, data +<span id="L1007" class="LineNr">1007 </span> <span class="PreProc">var</span> data/eax: (addr <a href='gap-buffer.mu.html#L3'>gap-buffer</a>) <span class="Special"><-</span> <a href='../120allocate.subx.html#L223'>lookup</a> *data-ah <span id="L1008" class="LineNr">1008 </span> <a href='gap-buffer.mu.html#L68'>load-gap-buffer-from-stream</a> data, sandbox-data <span id="L1009" class="LineNr">1009 </span> <span class="Delimiter">}</span> <span id="L1010" class="LineNr">1010 </span><span class="Delimiter">}</span> |