diff options
Diffstat (limited to 'html/shell/main.mu.html')
-rw-r--r-- | html/shell/main.mu.html | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/html/shell/main.mu.html b/html/shell/main.mu.html index adfa5363..91dd6dfe 100644 --- a/html/shell/main.mu.html +++ b/html/shell/main.mu.html @@ -57,47 +57,48 @@ if ('onhashchange' in window) { <a href='https://github.com/akkartik/mu/blob/main/shell/main.mu'>https://github.com/akkartik/mu/blob/main/shell/main.mu</a> <pre id='vimCodeElement'> <span id="L1" class="LineNr"> 1 </span><span class="muComment"># Experimental Mu shell</span> -<span id="L2" class="LineNr"> 2 </span><span class="muComment"># A Lisp with indent-sensitivity and infix, no macros. Commas are ignored.</span> +<span id="L2" class="LineNr"> 2 </span><span class="muComment"># A Lisp with indent-sensitivity and infix.</span> <span id="L3" class="LineNr"> 3 </span> -<span id="L4" class="LineNr"> 4 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='main.mu.html#L4'>main</a></span> <span class="Delimiter">{</span> -<span id="L5" class="LineNr"> 5 </span> <span class="PreProc">var</span> sandbox-storage: <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L6" class="LineNr"> 6 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="Constant">esi</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> address sandbox-storage -<span id="L7" class="LineNr"> 7 </span> <a href='sandbox.mu.html#L8'>initialize-sandbox</a> <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L8" class="LineNr"> 8 </span> <a href='main.mu.html#L27'>load-sandbox-from-secondary-disk</a> <a href='sandbox.mu.html#L1'>sandbox</a> -<span id="L9" class="LineNr"> 9 </span> <span class="PreProc">var</span> width/<span class="Constant">eax</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> -<span id="L10" class="LineNr">10 </span> <span class="PreProc">var</span> height/<span class="Constant">ecx</span>: int <span class="Special"><-</span> copy <span class="Constant">0</span> -<span id="L11" class="LineNr">11 </span> width, height <span class="Special"><-</span> <a href='../500text-screen.mu.html#L50'>screen-size</a> <span class="Constant">0</span>/screen +<span id="L4" class="LineNr"> 4 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='main.mu.html#L4'>main</a></span> <a href='../500text-screen.mu.html#L9'>screen</a>: (addr <a href='../500text-screen.mu.html#L9'>screen</a>), keyboard: (addr keyboard), data-disk: (addr disk) <span class="Delimiter">{</span> +<span id="L5" class="LineNr"> 5 </span> <span class="PreProc">var</span> globals-storage: <a href='global.mu.html#L6'>global-table</a> +<span id="L6" class="LineNr"> 6 </span> <span class="PreProc">var</span> globals/<span class="Constant">edi</span>: (addr <a href='global.mu.html#L6'>global-table</a>) <span class="Special"><-</span> address globals-storage +<span id="L7" class="LineNr"> 7 </span> <a href='global.mu.html#L11'>initialize-globals</a> globals +<span id="L8" class="LineNr"> 8 </span> <span class="PreProc">var</span> sandbox-storage: <a href='sandbox.mu.html#L1'>sandbox</a> +<span id="L9" class="LineNr"> 9 </span> <span class="PreProc">var</span> <a href='sandbox.mu.html#L1'>sandbox</a>/<span class="Constant">esi</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> address sandbox-storage +<span id="L10" class="LineNr">10 </span> <a href='sandbox.mu.html#L12'>initialize-sandbox</a> <a href='sandbox.mu.html#L1'>sandbox</a>, <span class="Constant">1</span>/with-screen +<span id="L11" class="LineNr">11 </span> <a href='main.mu.html#L28'>load-sandbox</a> data-disk, <a href='sandbox.mu.html#L1'>sandbox</a> <span id="L12" class="LineNr">12 </span> <span class="Delimiter">{</span> -<span id="L13" class="LineNr">13 </span> <a href='sandbox.mu.html#L41'>render-sandbox</a> <span class="Constant">0</span>/screen, <a href='sandbox.mu.html#L1'>sandbox</a>, <span class="Constant">2</span>/x, <span class="Constant">2</span>/y, width, height -<span id="L14" class="LineNr">14 </span> <span class="Delimiter">{</span> -<span id="L15" class="LineNr">15 </span> <span class="PreProc">var</span> key/<span class="Constant">eax</span>: byte <span class="Special"><-</span> <a href='../102keyboard.subx.html#L9'>read-key</a> <span class="Constant">0</span>/keyboard -<span id="L16" class="LineNr">16 </span> compare key, <span class="Constant">0</span> -<span id="L17" class="LineNr">17 </span> <span class="PreProc">loop-if-=</span> -<span id="L18" class="LineNr">18 </span> <span class="muComment"># no way to quit right now; just reboot</span> -<span id="L19" class="LineNr">19 </span> <a href='sandbox.mu.html#L107'>edit-sandbox</a> <a href='sandbox.mu.html#L1'>sandbox</a>, key -<span id="L20" class="LineNr">20 </span> <span class="Delimiter">}</span> -<span id="L21" class="LineNr">21 </span> <span class="PreProc">loop</span> -<span id="L22" class="LineNr">22 </span> <span class="Delimiter">}</span> -<span id="L23" class="LineNr">23 </span><span class="Delimiter">}</span> -<span id="L24" class="LineNr">24 </span> -<span id="L25" class="LineNr">25 </span><span class="muComment"># Read a null-terminated sequence of keys from secondary disk and load them</span> -<span id="L26" class="LineNr">26 </span><span class="muComment"># into sandbox.</span> -<span id="L27" class="LineNr">27 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='main.mu.html#L27'>load-sandbox-from-secondary-disk</a></span> _self: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Delimiter">{</span> -<span id="L28" class="LineNr">28 </span> <span class="PreProc">var</span> self/<span class="Constant">esi</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> copy _self -<span id="L29" class="LineNr">29 </span> <span class="PreProc">var</span> s-storage: (stream byte <span class="Constant">0x200</span>) -<span id="L30" class="LineNr">30 </span> <span class="PreProc">var</span> s/<span class="Constant">ebx</span>: (addr stream byte) <span class="Special"><-</span> address s-storage -<span id="L31" class="LineNr">31 </span> <a href='../boot.subx.html#L817'>load-first-sector-from-primary-bus-secondary-drive</a> s -<span id="L32" class="LineNr">32 </span> <span class="Delimiter">{</span> -<span id="L33" class="LineNr">33 </span> <span class="PreProc">var</span> done?/<span class="Constant">eax</span>: boolean <span class="Special"><-</span> <a href='../309stream.subx.html#L6'>stream-empty?</a> s -<span id="L34" class="LineNr">34 </span> compare done?, <span class="Constant">0</span>/false -<span id="L35" class="LineNr">35 </span> <span class="PreProc">break-if-!=</span> -<span id="L36" class="LineNr">36 </span> <span class="PreProc">var</span> key/<span class="Constant">eax</span>: byte <span class="Special"><-</span> <a href='../112read-byte.subx.html#L13'>read-byte</a> s -<span id="L37" class="LineNr">37 </span> compare key, <span class="Constant">0</span>/null -<span id="L38" class="LineNr">38 </span> <span class="PreProc">break-if-=</span> -<span id="L39" class="LineNr">39 </span> <a href='sandbox.mu.html#L107'>edit-sandbox</a> self, key -<span id="L40" class="LineNr">40 </span> <span class="PreProc">loop</span> -<span id="L41" class="LineNr">41 </span> <span class="Delimiter">}</span> -<span id="L42" class="LineNr">42 </span><span class="Delimiter">}</span> +<span id="L13" class="LineNr">13 </span> <a href='global.mu.html#L36'>render-globals</a> <a href='../500text-screen.mu.html#L9'>screen</a>, globals, <span class="Constant">0</span>/x, <span class="Constant">0</span>/y, <span class="Constant">0x40</span>/xmax, <span class="Constant">0x2f</span>/screen-height-without-menu +<span id="L14" class="LineNr">14 </span> <a href='sandbox.mu.html#L58'>render-sandbox</a> <a href='../500text-screen.mu.html#L9'>screen</a>, <a href='sandbox.mu.html#L1'>sandbox</a>, <span class="Constant">0x40</span>/x, <span class="Constant">0</span>/y, <span class="Constant">0x80</span>/screen-width, <span class="Constant">0x2f</span>/screen-height-without-menu, globals +<span id="L15" class="LineNr">15 </span> <span class="Delimiter">{</span> +<span id="L16" class="LineNr">16 </span> <span class="PreProc">var</span> key/<span class="Constant">eax</span>: byte <span class="Special"><-</span> <a href='../102keyboard.subx.html#L21'>read-key</a> keyboard +<span id="L17" class="LineNr">17 </span> compare key, <span class="Constant">0</span> +<span id="L18" class="LineNr">18 </span> <span class="PreProc">loop-if-=</span> +<span id="L19" class="LineNr">19 </span> <span class="muComment"># no way to quit right now; just reboot</span> +<span id="L20" class="LineNr">20 </span> <a href='sandbox.mu.html#L453'>edit-sandbox</a> <a href='sandbox.mu.html#L1'>sandbox</a>, key, globals, <a href='../500text-screen.mu.html#L9'>screen</a>, keyboard, data-disk +<span id="L21" class="LineNr">21 </span> <span class="Delimiter">}</span> +<span id="L22" class="LineNr">22 </span> <span class="PreProc">loop</span> +<span id="L23" class="LineNr">23 </span> <span class="Delimiter">}</span> +<span id="L24" class="LineNr">24 </span><span class="Delimiter">}</span> +<span id="L25" class="LineNr">25 </span> +<span id="L26" class="LineNr">26 </span><span class="muComment"># Read a null-terminated sequence of keys from disk and load them into</span> +<span id="L27" class="LineNr">27 </span><span class="muComment"># sandbox.</span> +<span id="L28" class="LineNr">28 </span><span class="PreProc">fn</span> <span class="muFunction"><a href='main.mu.html#L28'>load-sandbox</a></span> data-disk: (addr disk), _self: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Delimiter">{</span> +<span id="L29" class="LineNr">29 </span> <span class="PreProc">var</span> self/<span class="Constant">esi</span>: (addr <a href='sandbox.mu.html#L1'>sandbox</a>) <span class="Special"><-</span> copy _self +<span id="L30" class="LineNr">30 </span> <span class="PreProc">var</span> s-storage: (stream byte <span class="Constant">0x200</span>) +<span id="L31" class="LineNr">31 </span> <span class="PreProc">var</span> s/<span class="Constant">ebx</span>: (addr stream byte) <span class="Special"><-</span> address s-storage +<span id="L32" class="LineNr">32 </span> <a href='../boot.subx.html#L910'>load-sector</a> data-disk, <span class="Constant">0</span>/lba, s +<span id="L33" class="LineNr">33 </span> <span class="Delimiter">{</span> +<span id="L34" class="LineNr">34 </span> <span class="PreProc">var</span> done?/<span class="Constant">eax</span>: boolean <span class="Special"><-</span> <a href='../309stream.subx.html#L6'>stream-empty?</a> s +<span id="L35" class="LineNr">35 </span> compare done?, <span class="Constant">0</span>/false +<span id="L36" class="LineNr">36 </span> <span class="PreProc">break-if-!=</span> +<span id="L37" class="LineNr">37 </span> <span class="PreProc">var</span> key/<span class="Constant">eax</span>: byte <span class="Special"><-</span> <a href='../112read-byte.subx.html#L13'>read-byte</a> s +<span id="L38" class="LineNr">38 </span> compare key, <span class="Constant">0</span>/null +<span id="L39" class="LineNr">39 </span> <span class="PreProc">break-if-=</span> +<span id="L40" class="LineNr">40 </span> <a href='sandbox.mu.html#L453'>edit-sandbox</a> self, key, <span class="Constant">0</span>/no-globals, <span class="Constant">0</span>/no-screen, <span class="Constant">0</span>/no-keyboard, <span class="Constant">0</span>/no-disk +<span id="L41" class="LineNr">41 </span> <span class="PreProc">loop</span> +<span id="L42" class="LineNr">42 </span> <span class="Delimiter">}</span> +<span id="L43" class="LineNr">43 </span><span class="Delimiter">}</span> </pre> </body> </html> |