<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code Monkey Have Fun</title><link>http://blogs.msdn.com/b/ashleyf/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Memoization</title><link>http://blogs.msdn.com/b/ashleyf/archive/2013/04/26/memoization.aspx</link><pubDate>Sat, 27 Apr 2013 04:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10414444</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10414444</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10414444</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2013/04/26/memoization.aspx#comments</comments><description>&lt;p&gt;Don Syme &lt;a title="blogged this quite some years ago" href="http://blogs.msdn.com/b/dsyme/archive/2007/05/31/a-sample-of-the-memoization-pattern-in-f.aspx"&gt;blogged this quite some years ago&lt;/a&gt; but it just came up in a design review on my team this afternoon and it bears repeating.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; memoize f &lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt; cache &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Dictionary&lt;span style="color: #808080;"&gt;&amp;lt;_,_&amp;gt;&lt;/span&gt;()&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;span style="color: #0000ff;"&gt;fun&lt;/span&gt; x &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match&lt;/span&gt; cache.TryGetValue x &lt;span style="color: #0000ff;"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;&lt;span style="color: #888888;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt; true&lt;span style="color: #888888;"&gt;,&lt;/span&gt; &lt;span style="color: #000000;"&gt;res&lt;/span&gt; -&amp;gt; &lt;span style="color: #000000;"&gt;res&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: #888888;"&gt;|&lt;/span&gt; _ -&amp;gt; let&lt;/span&gt; res &lt;span style="color: #808080;"&gt;=&lt;/span&gt; f x &lt;span style="color: #0000ff;"&gt;in&lt;/span&gt; cache.Add(x, res)&lt;span style="color: #808080;"&gt;;&lt;/span&gt; res)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This generic function takes a function and returns a new &lt;em&gt;caching version&lt;/em&gt; of it. So simple!&lt;/p&gt;
&lt;p&gt;You can then take some expensive function such as the standard example Fibonacci:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;let rec&lt;/span&gt; fib &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #808080;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt; &lt;span style="color: #008000;"&gt;1&lt;/span&gt; &lt;span style="color: #808080;"&gt;|&lt;/span&gt; &lt;span style="color: #008000;"&gt;2&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #008000;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #808080;"&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt; n &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; fib (n &lt;span style="color: #808080;"&gt;-&lt;/span&gt; &lt;span style="color: #008000;"&gt;1&lt;/span&gt;) + fib (n &lt;span style="color: #808080;"&gt;-&lt;/span&gt; &lt;span style="color: #008000;"&gt;2&lt;/span&gt;)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Which is quite expensive when written this na&amp;iuml;vely because of the &lt;em&gt;exponential number of&lt;/em&gt; recursive calls; most with the same arguments.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&amp;gt; fib 42;;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; Real: 00:00:01.663, CPU: 00:00:0&lt;span style="background-color: #ffff99;"&gt;1.669&lt;/span&gt;, GC gen0: 0, gen1: 0, gen2: 0&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; val it : int = 267914296&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It takes 1.663 seconds for &lt;span style="font-family: 'courier new', courier;"&gt;&lt;strong&gt;fib 42&lt;/strong&gt;&lt;/span&gt;!&lt;/p&gt;
&lt;p&gt;Okay, let&amp;rsquo;s make a memoized version:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;let rec&lt;/span&gt;&amp;nbsp;fastFib&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="background-color: #ffff99;"&gt;memoize (&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;strong&gt;&lt;span style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;|&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;1&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;strong&gt;&lt;span style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&amp;nbsp;n&amp;nbsp;-&amp;gt;&amp;nbsp;fastFib (n&amp;nbsp;&lt;span style="color: #808080;"&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;1&lt;/span&gt;) &lt;span style="color: #808080;"&gt;+&lt;/span&gt; fastFib (n&amp;nbsp;&lt;span style="color: #808080;"&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000;"&gt;2&lt;/span&gt;)&lt;span style="background-color: #ffff99;"&gt;)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;It really can&amp;rsquo;t be any easier than that! Note that because it's a recursive function simply saying &lt;strong&gt;&lt;span&gt;&lt;span&gt;let&lt;/span&gt;&amp;nbsp;fastFib&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;memoize fib&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;doesn't work.&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&amp;gt; fastFib 42;;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; Real: 00:00:00.000, CPU: 00:00:0&lt;span style="background-color: #ffff99;"&gt;0.001&lt;/span&gt;, GC gen0: 0, gen1: 0, gen2: 0&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; val it : int = 267914296&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Viola!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10414444" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Memoization/">Memoization</category></item><item><title>Colemak</title><link>http://blogs.msdn.com/b/ashleyf/archive/2013/03/30/colemak.aspx</link><pubDate>Sun, 31 Mar 2013 06:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10406532</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10406532</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10406532</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2013/03/30/colemak.aspx#comments</comments><description>&lt;p&gt;I switched to &lt;a title="Colemak" href="http://www.colemak.com/"&gt;Colemak &lt;/a&gt;a couple of years ago. I love it. Never going back. Not really any faster than QWERTY, but &lt;em&gt;so &lt;/em&gt;much more comfortable.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55/1805.Colemak.jpg"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/529x600/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55/1805.Colemak.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One issue though is whenever I jump on someone else's machine or remote into some server. I want to switch the layout but I don't really want to install anything.&lt;/p&gt;
&lt;p&gt;Here's a little seventy-line F# app that will intercept all keys on the system on which it's running and remap to Colemak:&lt;/p&gt;
&lt;pre style="padding-left: 30px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;open&lt;/span&gt; System&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;open&lt;/span&gt; System.Diagnostics&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;open&lt;/span&gt; System.Runtime.InteropServices&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;open&lt;/span&gt; System.Windows.Forms&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;Literal&amp;gt;]&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; WH_KEYBOARD_LL = &lt;span style="color: #008000;"&gt;13&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;StructLayout(LayoutKind.Sequential)&amp;gt;]&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;type&lt;/span&gt; KBDLLHOOKSTRUCT =&lt;br /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;val&lt;/span&gt; vkCode : uint32&lt;br /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;val&lt;/span&gt; scanCode : uint32&lt;br /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;val&lt;/span&gt; flags : uint32&lt;br /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;val&lt;/span&gt; time : uint32&lt;br /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;val&lt;/span&gt; dwExtraInfo : nativeint&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;type&lt;/span&gt; LowLevelKeyboardProc = &lt;span style="color: #0000ff;"&gt;delegate of&lt;/span&gt; int * nativeint * KBDLLHOOKSTRUCT &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; nativeint&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;DllImport(&lt;span style="color: #993300;"&gt;"kernel32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;)&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;extern&lt;/span&gt; nativeint GetModuleHandle(string lpModuleName)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;DllImport(&lt;span style="color: #993300;"&gt;"user32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;)&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;extern&lt;/span&gt; bool UnhookWindowsHookEx(nativeint hhk)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;DllImport(&lt;span style="color: #993300;"&gt;"user32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;)&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;extern&lt;/span&gt; nativeint SetWindowsHookEx(int idhook, LowLevelKeyboardProc proc, nativeint hMod, uint32 threadId)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;[&amp;lt;DllImport(&lt;span style="color: #993300;"&gt;"user32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;)&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;extern&lt;/span&gt; nativeint CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, KBDLLHOOKSTRUCT lParam)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt; SetHook (proc: LowLevelKeyboardProc) =&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; use&lt;/span&gt; curProc = Process.GetCurrentProcess ()&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; use&lt;/span&gt; curMod = curProc.MainModule&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curMod.ModuleName), 0u)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;type&lt;/span&gt; App(handler) &lt;span style="color: #0000ff;"&gt;as&lt;/span&gt; x =&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; inherit&lt;/span&gt; ApplicationContext()&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; let rec&lt;/span&gt; callback (code : int) (wparam : nativeint) (lparam : KBDLLHOOKSTRUCT) : nativeint =&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; match&lt;/span&gt; handler code wparam lparam &lt;span style="color: #0000ff;"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Some keys &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; SendKeys.Send keys; nativeint 1&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | None &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; CallNextHookEx(hook, code, wparam, lparam)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; and&lt;/span&gt; proc = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; LowLevelKeyboardProc(callback)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; and&lt;/span&gt; hook = SetHook proc&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; override&lt;/span&gt; x.ExitThreadCore() =&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; UnhookWindowsHookEx(hook) |&amp;gt; ignore&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; base&lt;/span&gt;.ExitThreadCore()&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;printfn &lt;span style="color: #993300;"&gt;"Welcome to Colemak!"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;Application.Run(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; App(&lt;span style="color: #0000ff;"&gt;fun&lt;/span&gt; code wparam lparam &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; let&lt;/span&gt; key = int &amp;gt;&amp;gt; enum&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; if&lt;/span&gt; lparam.flags &amp;amp;&amp;amp;&amp;amp; &lt;span style="color: #008000;"&gt;0b10010000u&lt;/span&gt; = &lt;span style="color: #008000;"&gt;0u&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;then&lt;/span&gt; &lt;span style="color: #008000;"&gt;// key down and not injected&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; match&lt;/span&gt; lparam.vkCode |&amp;gt; key &lt;span style="color: #0000ff;"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.D &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"s"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.E &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"f"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.F &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"t"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.G &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"d"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.I &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"u"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.J &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"n"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.K &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"e"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.L &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"i"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.N &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"k"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.O &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"y"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.P &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;";"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.R &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"p"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.S &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"r"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.T &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"g"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.U &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"l"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.Y &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"j"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | Keys.OemSemicolon &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; Some &lt;span style="color: #993300;"&gt;"o"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt; | _ &lt;span style="color: #0000ff;"&gt;-&amp;gt;&lt;/span&gt; None&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;strong&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt; else&lt;/span&gt; None))&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10406532" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Colemak/">Colemak</category></item><item><title>If you can’t beat ‘em, join ‘em</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/04/17/if-you-can-t-beat-em-join-em.aspx</link><pubDate>Wed, 18 Apr 2012 03:30:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10294798</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10294798</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10294798</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/04/17/if-you-can-t-beat-em-join-em.aspx#comments</comments><description>&lt;p&gt;I’ve had fun making the little DCPU emulator (past couple of posts: &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/04/04/notch-is-gonna-outdo-himself.aspx"&gt;1&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/04/14/what-s-a-computer-without-i-o-a-hot-cpu-at-best.aspx"&gt;2&lt;/a&gt;), but sadly, I’ve had no time to make a Forth for it. But hey, &lt;a href="https://github.com/hellige"&gt;Matt Hellige has already done it&lt;/a&gt;! I just took his GoForth and got it up and going. Just grab the image &lt;a href="http://matt.immute.net/files/goforth/goforth.img"&gt;from here&lt;/a&gt; and load it up:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;image = File.ReadAllBytes &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="background: white; color: maroon"&gt;@&amp;quot;..\..\goforth.img&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;for &lt;/span&gt;&lt;span style="background: white; color: black"&gt;i &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;in &lt;/span&gt;&lt;span style="background: white; color: black"&gt;0 .. 2 .. image.Length - 1 &lt;/span&gt;&lt;/strong&gt;&lt;span style="background: white; color: blue"&gt;&lt;strong&gt;do
    &lt;/strong&gt;&lt;/span&gt;&lt;span style="background: white; color: black"&gt;&lt;strong&gt;memory.[i / 2] &amp;lt;- (uint16 image.[i]) &amp;lt;&amp;lt;&amp;lt; 8 ||| uint16 image.[i + 1]
cycle ()&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Viola, a nice little interactive Forth!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/5432.image_5F00_11408CFA.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7178.image_5F00_thumb_5F00_17F3967D.png" width="233" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Take it for a spin!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/3463.image_5F00_10D45A05.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/8662.image_5F00_thumb_5F00_4C93F2B8.png" width="233" height="159" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/0333.image_5F00_17876388.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/4527.image_5F00_thumb_5F00_10682710.png" width="233" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This sure beats assembly (even with a &lt;a href="http://0x10co.de/"&gt;nice IDE&lt;/a&gt;) and, for interactivity, it even beats the &lt;a href="http://dcputoolcha.in/"&gt;C tool chain&lt;/a&gt;. Running interactively &lt;em&gt;on&lt;/em&gt; the target machine is invaluable!&lt;/p&gt;

&lt;p&gt;Now we need Notch to get around to spec’ing all the ship sensors and actuators!&lt;/p&gt;

&lt;p&gt;(BTW, the &lt;a href="https://github.com/AshleyF/Sandbox/tree/master/DCPU"&gt;code for the little 100-line F# emulator is at my github&lt;/a&gt;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10294798" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Forth/">Forth</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/DCPU_2D00_16/">DCPU-16</category></item><item><title>What’s a computer without I/O? Hot Silicon At Best…</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/04/14/what-s-a-computer-without-i-o-a-hot-cpu-at-best.aspx</link><pubDate>Sat, 14 Apr 2012 23:45:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10293827</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10293827</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10293827</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/04/14/what-s-a-computer-without-i-o-a-hot-cpu-at-best.aspx#comments</comments><description>&lt;p&gt;[FYI: &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/04/17/if-you-can-t-beat-em-join-em.aspx"&gt;Matt Hellige’s excellent GoForth runs on this&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;I’m completely astonished at how quickly a community has sprung up around &lt;a href="http://0x10c.com/doc/dcpu-16.txt"&gt;Notch’s DCPU-16&lt;/a&gt;. In the first 24 hours there were already tens of implementations in various languages (&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/04/04/notch-is-gonna-outdo-himself.aspx"&gt;including mine&lt;/a&gt;). Now there’s a &lt;a href="http://0x10co.de/"&gt;web-based IDE&lt;/a&gt;, a whole &lt;a href="http://dcputoolcha.in/"&gt;C compiler/assembler tool chain&lt;/a&gt;, an &lt;a href="https://github.com/krasin/llvm-dcpu16/"&gt;LLVM backend&lt;/a&gt;, … It’s craziness!&lt;/p&gt;  &lt;p&gt;So I’m way behind in the times (almost a week has gone by!), but I’m now adding I/O to my emulator. Notch has yet to officially publish any I/O specs, but there seems to be a &lt;a href="http://0x10co.de/io"&gt;de facto standard&lt;/a&gt;. Input is a 16-cell ring buffer at 0x9000 and video is 32x12 cells memory mapped at 0x8000 with characters and foreground/background colors encoded in the high byte. I’ll support everything from &lt;a href="http://0x10co.de/io"&gt;this spec&lt;/a&gt; (in 25 lines of F#!) except fonts and blinking; just using the standard console.&lt;/p&gt;  &lt;h1&gt;Input&lt;/h1&gt;  &lt;p&gt;Input is easy enough. Just call this on every cycle:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;System&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let mutable &lt;/span&gt;&lt;span style="background: white; color: black"&gt;buf = 0&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;input () =&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;buffer = 0x9000&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;size = 16&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Console.KeyAvailable &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then&lt;br /&gt;        let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;b = buffer + buf&lt;br /&gt;        memory.[b] &amp;lt;- uint16 (Console.ReadKey &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;true&lt;/span&gt;&lt;span style="background: white; color: black"&gt;).KeyChar&lt;br /&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;memory.[b] = 13us &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black"&gt;memory.[b] &amp;lt;- 10us &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// CR –&amp;gt; LF&lt;br /&gt;        &lt;/span&gt;&lt;span style="background: white; color: black"&gt;memory.[buffer + size] &amp;lt;- uint16 (b)&lt;br /&gt;        buf &amp;lt;- (buf + 1) % size
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;h3&gt;Output&lt;/h3&gt;

&lt;p&gt;Output too is pretty simple. The output function is called on every memory set:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;vidwidth, vidheight = 32, 12
Console.Clear()
Console.WindowWidth &amp;lt;- vidwidth
Console.WindowHeight &amp;lt;- vidheight
Console.Title &amp;lt;- &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;F# DCPU-16&amp;quot;

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;output i =
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;vidmem = 0x8000
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;i &amp;gt;= vidmem &amp;amp;&amp;amp; i &amp;lt;= vidmem + vidwidth * vidheight &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then
        let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;p = i - vidmem
        Console.SetCursorPosition(p % vidwidth, p / vidwidth)
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;v = int memory.[i]
        Console.BackgroundColor &amp;lt;- (v &amp;gt;&amp;gt;&amp;gt; 8) &amp;amp;&amp;amp;&amp;amp; 0x0f |&amp;gt; enum
        Console.ForegroundColor &amp;lt;- v &amp;gt;&amp;gt;&amp;gt; 12 |&amp;gt; enum
        Console.Write(v &amp;amp;&amp;amp;&amp;amp; 0x7f |&amp;gt; char)
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;h3&gt;Demo&lt;/h3&gt;

&lt;p&gt;I still have no assembler. I’m working on a Forth instead. For now just straight machine code (fun!):&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;boot image = List.iteri (&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black"&gt;i c &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;memory.[i] &amp;lt;- uint16 c) image; cycle ()
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;p&gt;You could modify to load an image from a file and use with the &lt;a href="http://dcputoolcha.in/"&gt;DCPU Toolchain&lt;/a&gt; if you like. For a quick demo, let’s just take a couple of samples from the wonderful &lt;a href="http://0x10co.de"&gt;http://0x10co.de&lt;/a&gt; site:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: green"&gt;// Screen test (see &lt;a href="http://0x10co.de/y5096"&gt;http://0x10co.de/y5096&lt;/a&gt;)
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;boot [0x7c01; 0xf030; 0x7c61; 0x8000; 0x7c0c; 0xf838; 0x7c03; 0xf000
      0x7c0c; 0x0a3a; 0x9c02; 0x00e1; 0x7c02; 0x0101; 0x8462; 0x19fe
      0x8010; 0x7dc1; 0x0004; 0x0020; 0x0000]
&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/3733.clip_5F00_image001_5F00_19760F41.png"&gt;&lt;img style="background-image: none; display: inline" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7446.clip_5F00_image001_5F00_thumb_5F00_072D487F.png" width="265" height="208" /&gt;&lt;/a&gt; 

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;b&gt;
  &lt;pre class="code"&gt;&lt;span style="background: white; color: green"&gt;&lt;br /&gt;// Keyboard test (see &lt;a href="http://0x10co.de/h6bbv"&gt;http://0x10co.de/h6bbv&lt;/a&gt;)
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;boot [0x7c01; 0x8000; 0x8021; 0x8011; 0x4811; 0x0063; 0x781a; 0x0062
      0x0481; 0x8402; 0x8422; 0x812d; 0x0063; 0x7dc1; 0x0004; 0x81ec
      0x9010; 0x7dc1; 0x000f; 0x7c10; 0x0056; 0x7c81; 0x20df; 0x81ec
      0x9010; 0x7dc1; 0x0015; 0x7821; 0x9010; 0x2811; 0x81e1; 0x9010
      0x8021; 0x8121; 0x9000; 0x8422; 0xc02d; 0x7dc1; 0x0021; 0xa01c
      0x7c10; 0x0037; 0xa81c; 0x7c10; 0x0044; 0x781a; 0x0062; 0x0481
      0x8402; 0x7c0e; 0x817f; 0x7dc1; 0x000f; 0x7dc1; 0x0015; 0x7c81
      0x0020; 0x7c0d; 0x8000; 0x8403; 0x788a; 0x0062; 0x7c8c; 0x2020
      0x7dc1; 0x0037; 0x7dc1; 0x0015; 0x7c0e; 0x815f; 0x7dc1; 0x0015
      0x7c81; 0xf000; 0x7c03; 0x8000; 0x7c02; 0x0020; 0x7c05; 0x0020
      0x7c04; 0x0020; 0x7c02; 0x8000; 0x7dc1; 0x0015; 0x7c01; 0x8000
      0x7c81; 0x0020; 0x8402; 0x7c0d; 0x8180; 0x7dc1; 0x0058; 0x7c01
      0x8000; 0x61c1; 0x2000; 0x0054; 0x0079; 0x0070; 0x0065; 0x0020
      0x0073; 0x006f; 0x006d; 0x0065; 0x0074; 0x0068; 0x0069; 0x006e
      0x0067; 0x0021; 0x0000; 0x0000]
&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/b&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/1273.clip_5F00_image002_5F00_1909DC4C.png"&gt;&lt;img style="background-image: none; display: inline" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/1106.clip_5F00_image002_5F00_thumb_5F00_54C974FF.png" width="265" height="208" /&gt;&lt;/a&gt; 

  &lt;br /&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: green"&gt;// Matrix Screen Saver (see &lt;a href="http://0x10co.de/gpoke"&gt;http://0x10co.de/gpoke&lt;/a&gt;)
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;boot [0x7c51; 0x1234; 0x1441; 0x7dc1; 0x0009; 0x7c44; 0x274d; 0x8442
      0x61c1; 0x8061; 0x1031; 0x1441; 0x7c01; 0x8000; 0x8071; 0x7c10
      0x0005; 0x808c; 0x7dc1; 0x0024; 0x7c4f; 0x7000; 0x7dc1; 0x0024
      0x11a1; 0x0c41; 0x7c10; 0x0005; 0x7c89; 0xff00; 0x7c49; 0x003f
      0x508a; 0x0080; 0x1031; 0x6041; 0x8472; 0x8402; 0x1dfe; 0x0020
      0x7dc1; 0x000f; 0x8462; 0x1ace; 0x7dc1; 0x000e; 0x0c41; 0xb061
      0x7c01; 0x817f; 0x7c71; 0x0020; 0x808c; 0x7dc1; 0x004d; 0x7d0f
      0x0020; 0xffff; 0x7dc1; 0x004f; 0x7c10; 0x0005; 0x2101; 0x0020
      0x7d09; 0x0020; 0xff00; 0x1031; 0x7c39; 0x003f; 0x4d0a; 0x0020
      0x0080; 0x7c89; 0x7fff; 0x7dc1; 0x0052; 0x8101; 0x0020; 0x7d09
      0x0020; 0x7fff; 0x8473; 0x8403; 0x807e; 0x7dc1; 0x0034; 0x8463
      0x806e; 0x7dc1; 0x0032; 0x0c41; 0x7c01; 0x8000; 0x8071; 0x7c10
      0x0005; 0x7c4f; 0x0700; 0x7dc1; 0x0077; 0x7c8f; 0xffff; 0x7dc1
      0x0076; 0x7c81; 0x2000; 0x7c4f; 0x0800; 0x7c81; 0xa000; 0x1031
      0x7c39; 0x003f; 0x4c8a; 0x0080; 0x7dc1; 0x0077; 0x8081; 0x8472
      0x8402; 0x1dfe; 0x0020; 0x7dc1; 0x005f; 0x7dc1; 0x0009; 0x85c3
      0x0030; 0x0030; 0x0031; 0x0031; 0x0032; 0x0033; 0x0033; 0x0034
      0x0035; 0x0036; 0x0037; 0x0038; 0x0038; 0x0039; 0x0026; 0x007c
      0x007c; 0x0021; 0x0021; 0x0040; 0x003d; 0x003d; 0x003a; 0x003a
      0x002a; 0x002a; 0x0023; 0x0023; 0x003c; 0x003e; 0x003e; 0x005f
      0x005f; 0x0054; 0x0059; 0x0059; 0x0055; 0x0044; 0x0051; 0x005a
      0x004a; 0x004a; 0x0049; 0x0058; 0x002d; 0x0020; 0x007e; 0x007e
      0x006f; 0x0069; 0x0077; 0x006c; 0x0072; 0x006b; 0x006d; 0x002f
      0x002f; 0x005c; 0x0027; 0x005b; 0x005d; 0x005e; 0x0029; 0x0060]
&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/2063.image_5F00_78A40C8B.png"&gt;&lt;img style="background-image: none; display: inline" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/6378.image_5F00_thumb_5F00_13DC658D.png" width="265" height="208" /&gt;&lt;/a&gt; 

  &lt;br /&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: green"&gt;// Psychedelic Screensaver (see &lt;a href="http://0x10co.de/4r80g"&gt;http://0x10co.de/4r80g&lt;/a&gt;)
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;boot [0x7801; 0x002c; 0x7c10; 0x0025; 0x01e1; 0x002c; 0x0011; 0x7c16
      0x004f; 0x7c12; 0x0021; 0x7801; 0x002d; 0x7c10; 0x0025; 0x01e1
      0x002d; 0x7c09; 0xf000; 0x001a; 0x7801; 0x002e; 0x7c10; 0x0025
      0x01e1; 0x002e; 0x7c06; 0x0180; 0x0501; 0x8000; 0x8071; 0x8472
      0x1f4e; 0x7dc1; 0x001f; 0x7dc1; 0x0000; 0x19a1; 0x0061; 0x1864
      0x946a; 0x1802; 0x6061; 0x61c1; 0x3241; 0x3432; 0x2837; 0x0000]
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/2046.image_5F00_2C29CE75.png"&gt;&lt;img style="background-image: none; display: inline" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/2630.image_5F00_thumb_5F00_47CE5A6B.png" width="265" height="208" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pretty fun stuff!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10293827" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/DCPU_2D00_16/">DCPU-16</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/VMs/">VMs</category></item><item><title>Notch is Gonna Outdo Himself!</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/04/04/notch-is-gonna-outdo-himself.aspx</link><pubDate>Thu, 05 Apr 2012 05:28:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10290994</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>18</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10290994</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10290994</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/04/04/notch-is-gonna-outdo-himself.aspx#comments</comments><description>&lt;p&gt;[Note: &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/04/14/what-s-a-computer-without-i-o-a-hot-cpu-at-best.aspx"&gt;I/O has now been added&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;My son is completely obsessed with &lt;a href="http://www.minecraft.net/"&gt;Minecraft&lt;/a&gt;. It’s an amazing game and the way he plays it, it really nurtures extreme creativity. I honestly haven’t been able to get into it myself but I was pretty intrigued by the &lt;a href="http://computercraft.info/wiki/index.php?title=Main_Page"&gt;ComputerCraft mod&lt;/a&gt; which allows you to script the game in Lua. I thought it might be a good way to introduce my son to programming.&lt;/p&gt;  &lt;p&gt;Even better, just today &lt;a href="http://0x10c.com/"&gt;Notch announced his latest game&lt;/a&gt; and it looks like it will revolve around programming a 1980’s style 16-bit computer! Based on the &lt;a href="http://0x10c.com/doc/dcpu-16.txt"&gt;spec at the site&lt;/a&gt;, I just couldn’t resist implementing the DCPU-16 in F# :) I can’t wait for the game to come out!&lt;/p&gt;  &lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;memory = Array.create 0x10000 0us
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;registers = Array.create 11 0us

&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let rec &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;cycle () =
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;mem i = (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;memory.[i] |&amp;gt; int), (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;v &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;memory.[i] &amp;lt;- uint16 v)
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;reg i = (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;registers.[i] |&amp;gt; int), (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;v &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;registers.[i] &amp;lt;- uint16 v)
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;lit v = (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;v), (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;_ &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;())
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pc, sp, o = reg 8, reg 9, reg 10
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get v = (fst v) ()
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set v i = (snd v) i
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;next () = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;p = get pc &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;n = mem p |&amp;gt; get &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set pc (p + 1); n
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;decode () = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;i = next () &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;i, (i &amp;amp;&amp;amp;&amp;amp; 0x3f0) &amp;gt;&amp;gt;&amp;gt; 4 |&amp;gt; int, (i &amp;amp;&amp;amp;&amp;amp; 0xfc00) &amp;gt;&amp;gt;&amp;gt; 10 |&amp;gt; int
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;skip () =
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;skip' i = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(i &amp;gt; 0xf &amp;amp;&amp;amp; i &amp;lt; 0x18) || i = 0x1e || i = 0x1f &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get pc + 1 |&amp;gt; set pc &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;()
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;_, a, b = decode ()
        skip' a; skip' b
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;value = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| x &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;when &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x &amp;lt;= 0x07 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;reg x &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// reg
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| x &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;when &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x &amp;lt;= 0x0f &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(x &amp;amp;&amp;amp;&amp;amp; 0b111 |&amp;gt; reg |&amp;gt; fst) () |&amp;gt; mem &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// [reg]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| x &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;when &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x &amp;lt;= 0x17 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(x &amp;amp;&amp;amp;&amp;amp; 0b111 |&amp;gt; reg |&amp;gt; fst) () + next () |&amp;gt; mem &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// [next + reg]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x18 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;s = get sp &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x = mem s &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set sp (s + 1); x &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// POP / [SP++]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x19 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get sp |&amp;gt; mem &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// PEEK / [SP]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1a &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get sp - 1 |&amp;gt; set sp; get sp |&amp;gt; mem &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// PUSH / [--SP]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1b &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sp &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// SP
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1c &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pc &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// PC
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1d &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;o &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// O
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1e &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;next () |&amp;gt; mem &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// [next]
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1f &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;next () |&amp;gt; lit &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// next (literal)
        &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| x &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x - 0x20 |&amp;gt; lit &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// literal 0x00-0x1f
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;instruction, a', b' = decode ()
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;a, b = value a', value b'
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy f = f (get a) (get b)
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fop op = fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;op x y |&amp;gt; set a)
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fif op = fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;op x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;skip ())
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;match &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;instruction &amp;amp;&amp;amp;&amp;amp; 0xf |&amp;gt; int &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;with
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;a' = 0x01 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get pc |&amp;gt; set (value 0x1a &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;(* PUSH *)&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;); get b |&amp;gt; set pc &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// JSR
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x1 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;get b |&amp;gt; set a &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// SET
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x2 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x + y |&amp;gt; set a; set o (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x + y &amp;gt; 0xffff &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;0)) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// ADD
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x3 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x - y |&amp;gt; set a; set o (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x - y &amp;lt; 0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;0xffff &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;0)) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// SUB
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x4 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x * y |&amp;gt; set a; ((x * y) &amp;gt;&amp;gt;&amp;gt; 16) |&amp;gt; set o) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// MUL
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x5 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;y = 0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set a 0; set o 0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x / y |&amp;gt; set a; (x &amp;lt;&amp;lt;&amp;lt; 16) / y |&amp;gt; set o) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// DIV
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x6 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set a (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;y = 0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x % y)) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// MOD
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x7 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;z = x &amp;lt;&amp;lt;&amp;lt; y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;in &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;set a z; z &amp;gt;&amp;gt;&amp;gt; 16 |&amp;gt; set o) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// SHL
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x8 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fxy (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x &amp;gt;&amp;gt;&amp;gt; y |&amp;gt; set a; (x &amp;lt;&amp;lt;&amp;lt; 16) &amp;gt;&amp;gt;&amp;gt; y |&amp;gt; set o) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// SHR
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0x9 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fop (&amp;amp;&amp;amp;&amp;amp;) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// AND
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xa &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fop (|||) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// BOR
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xb &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fop (^^^) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// XOR
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xc &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fif (&amp;lt;&amp;gt;) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// IFE
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xd &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fif (=) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// IFN
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xe &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fif (&amp;lt;=) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// IFG
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0xf &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;fif (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x y &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;x &amp;amp;&amp;amp;&amp;amp; y = 0) &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// IFB
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;cycle ()
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10290994" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/DCPU_2D00_16/">DCPU-16</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/VMs/">VMs</category></item><item><title>Turtle Graphics on the Fignition</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/02/18/turtle-graphics-on-the-fignition.aspx</link><pubDate>Sun, 19 Feb 2012 04:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10269418</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10269418</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10269418</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/02/18/turtle-graphics-on-the-fignition.aspx#comments</comments><description>&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;The &lt;a style="cursor: auto;" href="https://sites.google.com/site/libby8dev/fignition"&gt;Fignition board&lt;/a&gt; is a fun little piece of 8-bit fun I tell ya! I&amp;rsquo;ve been having a blast with it. It&amp;rsquo;s an ATmega168 with 8Kb SRAM and 4Mbits of flash with video out (there&amp;rsquo;s also a &lt;a style="cursor: auto;" href="http://youtu.be/IM1tvDjKZB8"&gt;sound mod for it&lt;/a&gt;). In this post I want to show off an implementation of Turtle Graphics I&amp;rsquo;ve made for it.&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7506.photo_2D00_1_5F00_06378B1A.jpg"&gt;&lt;img title="photo 1" style="display: inline; background-image: none;" border="0" alt="photo 1" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/5023.photo_2D00_1_5F00_thumb_5F00_05644692.jpg" width="244" height="183" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7418.photo_2D00_2_5F00_303CAAA4.jpg"&gt;&lt;img title="photo 2" style="display: inline; background-image: none;" border="0" alt="photo 2" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7002.photo_2D00_2_5F00_thumb_5F00_6E38CC13.jpg" width="244" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span size="4" style="font-size: medium;"&gt;Forth as an &amp;ldquo;OS&amp;rdquo;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;Most interestingly the Fignition is a &lt;i style="mso-bidi-font-style: normal;"&gt;completely standalone&lt;/i&gt; FIG-Forth system. It has an 8-button input system and, as is common for old Forths, there is an &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;edit&lt;/span&gt;&lt;/b&gt;or and screen-sized block &amp;ldquo;file system&amp;rdquo; of sorts. Compilation happens as blocks are &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;load&lt;/span&gt;&lt;/b&gt;ed. This is all the &amp;ldquo;operating system&amp;rdquo; you need. For the first few days I programmed it entirely this way.&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;This is what is meant when people say that Forth is a language and &lt;i style="mso-bidi-font-style: normal;"&gt;an operation system&lt;/i&gt;. Normally it doesn&amp;rsquo;t mean giving up a normal keyboard, but still this idea of a complete system entirely in Forth is where it&amp;rsquo;s at. I&amp;rsquo;ll probably fall to temptation when the &lt;a href="http://www.raspberrypi.org/" title="Raspberry Pi"&gt;Raspberry Pi&lt;/a&gt; comes out but, com&amp;rsquo;on Linux is overkill (WinCE single board computers are too).&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/4Dr3UkfuFrE" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span size="4" style="font-size: medium;"&gt;Development Host Machine&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;The above being said, it is quite tedious to program with the 8-button keyboard. Yesterday I got bulk loading of data over USB working; still a process but easier. There are &lt;a style="cursor: auto;" href="https://sites.google.com/site/libby8dev/fignition/documentation/use-it"&gt;instructions here&lt;/a&gt; (I initially had driver issues on Win8 &amp;ndash; be sure to get the &lt;a style="cursor: auto;" href="http://www.fischl.de/usbasp/"&gt;latest USBasp from here&lt;/a&gt;). The AVRDude tool allows you to transfer source one 500-byte block at a time from a PC/Mac to EPROM. Then you can edit on the device itself and write to flash, from where it can then be &lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;load&lt;/span&gt;&lt;/b&gt;ed/compiled to the dictionary and executed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span size="4" style="font-size: medium;"&gt;Turtle Graphics!&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;There was a &lt;a style="cursor: auto;" href="https://sites.google.com/site/libby8dev/fignition/documentation/understand-it/video-modes"&gt;160x160 graphics mode added in firmware 0.9.6&lt;/a&gt;. This gave me the idea of making a rudimentary Logo-like system (&lt;a style="cursor: auto;" href="http://youtu.be/CVFcpoULWq4"&gt;I love it as a teaching language&lt;/a&gt;). I had a silly goal of getting it working snugly within a &lt;i style="mso-bidi-font-style: normal;"&gt;single &lt;/i&gt;block of code and managed to pull that off. It adds the following words for controlling the &amp;ldquo;turtle&amp;rdquo;:&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-size: 11pt;"&gt;c&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt;"&gt; &amp;ndash; clear screen (&lt;b&gt;cls&lt;/b&gt; doesn&amp;rsquo;t work in 160x160 graphics mode)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;g&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Go to an x y coordinate (0,0 is the center of the screen)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;h&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Set heading (0-60 - 0 is North, 15 East, 30 South, 45 West)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;b&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Begin (enters 160x160 graphics mode, clears, resets turtle)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;e&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; End (waits for key, exits graphics mode)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;t&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Turn the turtle (see h above &amp;ndash; negative values for counter-clockwise)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;n&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Sine function (used internally &amp;ndash; see h above &amp;ndash; returns scaled by 255)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;m&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Move turtle number of pixels along current heading (no drawing)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;p&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Plot pixel currently under turtle&lt;br /&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;f&amp;nbsp;&lt;/b&gt;&lt;span style="line-height: 13pt; font-size: 11pt;"&gt;&amp;ndash; Forward number of pixels while plotting&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;Yes, this all fits in a single block and compiles to just 307 bytes!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span size="4" style="font-size: medium;"&gt;Fixed-point Trig Functions&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;It uses a table-based cosine function with 6 degree (pi/30 radian) increments &amp;ndash; think minute marks on a clock. This is still divisible by many things (2, 3, 4, 5, 6, 10, 12, 15, 20, 30), so it works out well enough for Logo and makes the lookup table small.&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;Resorting to 8.8 fixed-point numbers, I started with a quarter-cosine table with values scaled by 256. This leaves plenty of room for the turtle coordinates with a desired 160*256 range easily with the 16-bit integers supported. Some F# to generate it:&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;strong&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;table =&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pi = System.Math.PI&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; let &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;strong&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: black;"&gt;fix x = round (cos x * 256.) |&amp;gt; int&lt;br /&gt;&amp;nbsp; &amp;nbsp; Array.map fix [|0. .. (pi / 30.) .. (pi / 2.)|]&lt;br /&gt;&lt;br /&gt;Array.iter (printf &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;"%x "&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong style="font-family: Consolas; font-size: x-small; background-color: white;"&gt;) table&lt;br /&gt;&lt;/strong&gt;&lt;strong style="font-family: Consolas; font-size: x-small; background-color: white;"&gt;&lt;br /&gt;&amp;gt; 100 ff fa f3 ea de cf be ab 96 80 68 4f 35 1b 0&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;span style="font-size: 11pt;"&gt;Just these values can be reflected and/or shifted to generate sine/cosine results for all sixty angles; something like the following (but in Forth):&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;strong&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: black;"&gt;cosine x =&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;a = abs x % 60&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;i =&amp;nbsp;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;a &amp;gt; 29&amp;nbsp;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;60 - a&amp;nbsp;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;a&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;s, i' = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;i &amp;gt; 14 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;-1, 30 - i&amp;nbsp;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1, i&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;table.[i'] * s&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;span style="color: #0000ff;"&gt;let&lt;/span&gt;&amp;nbsp;sine x = x - 15 |&amp;gt; cosine&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;strong&gt;&lt;span face="Consolas" style="font-family: Consolas;"&gt;&lt;span size="2" style="font-size: x-small;"&gt;&lt;span style="background: white; color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;The Forth is intentionally compacted into obfuscation:&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 10pt 0in; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 11pt;"&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;-2 var n F9F2 , E9DD , CEBD , AA95 , 7F67 , 4E34 , 1A c,&lt;br /&gt;: s abs 3C mod dup 1D &amp;gt; if 3C swap - then dup E &amp;gt; if&lt;br /&gt;&amp;nbsp; -1 1E rot - else 1 swap then n + c@ 1+ * ;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 10pt 0in; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;The rest of the implementation is relatively straight forward (but not so readable because of poor factoring and naming due to wanting to squeeze down the character count):&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 10pt 0in; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 11pt;"&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;0 var x 0 var y 0 var a&lt;br /&gt;0 var q 0 var w &lt;br /&gt;: c 9380 C80 0 fill ;&lt;br /&gt;: k &amp;gt;r 50 + 8 &amp;lt;&amp;lt; r&amp;gt; ! ;&lt;br /&gt;: m dup q @ * x +! w @ * y +! ;&lt;br /&gt;: g y k x k ;&lt;br /&gt;: h dup a ! dup s w ! 2D + s q ! ;&lt;br /&gt;: f &amp;gt;r q @ x @ y @ w @ r 0 do &amp;gt;r r + &amp;gt;r over +&lt;br /&gt;&amp;nbsp; dup 8 &amp;gt;&amp;gt; r 8 &amp;gt;&amp;gt; plot r&amp;gt; r&amp;gt; loop o y ! x ! o r&amp;gt; o ;&lt;br /&gt;: e key 0 vmode cls ;&lt;br /&gt;: b 1 vmode 1 pen c 0 0 g 0 h ;&lt;br /&gt;: t a @ + h ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h1&gt;&lt;span size="4" style="font-size: medium;"&gt;Demo, demo, demo!&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;In a second block are some demos putting it to use.&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 11pt; line-height: 13pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/dfKFuOudx3Y" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;[UPDATE: Now 4x faster!]&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size: 11pt; line-height: 13pt;"&gt;I was stupidly calculating sine/cosine for every single-pixel of motion. Of course this only needs to be done when the heading changes - just keep the multipliers around for future use. Also, I made a small optimization to avoid multiplication for single-pixel movement. This sped things up by a factor of four or five.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 11pt; line-height: 13pt;"&gt;[UPDATE: Now 15x faster!] Julian Skidmore, the designer of the Fignition, was nice enough to look at the code and &lt;a href="https://groups.google.com/forum/#!topic/fignition/2vBeONSTnWQ"&gt;came up with some brilliant performance&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 15px; line-height: 17px;"&gt;&lt;a href="https://groups.google.com/forum/#!topic/fignition/2vBeONSTnWQ"&gt;optimizations&lt;/a&gt; - mostly around using 8.8 fixed point so that bit shifts could be used rather than multiplication/division and a slick simplification to the trig function.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 15px;"&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2012/02/18/turtle-graphics-on-the-fignition.aspx"&gt;(Please visit the site to view this video)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;The sine (&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;s&lt;/span&gt;&lt;/b&gt;) function can be seen to work with:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: sin 160 0 do i i s 4 / 80 + plot loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/5023.clip_5F00_image0024_5F00_46FE82DE.jpg"&gt;&lt;img title="clip_image002[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7802.clip_5F00_image0024_5F00_thumb_5F00_149AAF5F.jpg" width="428" height="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;And we can see that using it to plot lines in each of the 60 available angles works:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: burst 60 0 do 0 0 g i h 110 f loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/3288.clip_5F00_image0044_5F00_493B0B9A.jpg"&gt;&lt;img title="clip_image004[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image004[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/2318.clip_5F00_image0044_5F00_thumb_5F00_3DA54E5B.jpg" width="428" height="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;Other demos show off some of the creative Logo patterns you may have played with as a kid:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: squiral -50 50 g 20 0 do 100 f 21 t loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/0068.clip_5F00_image0064_5F00_320F911C.jpg"&gt;&lt;img title="clip_image006[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image006[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7418.clip_5F00_image0064_5F00_thumb_5F00_31A35E27.jpg" width="428" height="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: circle 60 0 do 4 f 1 t loop ; &lt;br /&gt;: spiral 15 0 do circle 4 t loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/7024.clip_5F00_image0084_5F00_7F3F8AA7.jpg"&gt;&lt;img title="clip_image008[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image008[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/4774.clip_5F00_image0084_5F00_thumb_5F00_5AADFD23.jpg" width="428" height="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: star 5 0 do 80 f 24 t loop ; &lt;br /&gt;: stars 3 0 do star 20 t loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/5367.clip_5F00_image0104_5F00_4145F9E9.jpg"&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;img title="clip_image010[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image010[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/1641.clip_5F00_image0104_5F00_thumb_5F00_47F9036C.jpg" width="428" height="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;br /&gt;: rose 0 50 0 do 2 + dup f 14 t loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/1638.clip_5F00_image0124_5F00_2A86B260.jpg"&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;&lt;img title="clip_image012[4]" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image012[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/8407.clip_5F00_image0124_5F00_thumb_5F00_111EAF26.jpg" width="428" height="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;One of my favorites is this flower:&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span size="2" face="Consolas" style="font-family: Consolas; font-size: x-small;"&gt;: hp 15 0 do 5 f 1 t loop 15 0 do 2 f -1 t loop ; &lt;br /&gt;: petal hp 30 t hp 30 t ; &lt;br /&gt;: flower 15 0 do petal 4 t loop ;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/3223.clip_5F00_image0144_5F00_77B6ABEB.jpg"&gt;&lt;img title="clip_image014[4]" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image014[4]" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-55-metablogapi/2211.clip_5F00_image0144_5F00_thumb_5F00_212D7DDD.jpg" width="428" height="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;Here&amp;rsquo;s the &lt;a href="http://lkjsdf.com/archive/figlogo/figlogo.zip"&gt;source and generates hex files&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 10pt; line-height: 13pt; list-style-type: disc;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;br /&gt;Have fun!&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10269418" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Turtle+Graphics/">Turtle Graphics</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Logo/">Logo</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Forth/">Forth</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Fignition/">Fignition</category></item><item><title>96 Line F# Emulator + 960 bytes of HP-35 Microcode</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/01/26/hp-35-microcode-emulator-in-100-lines-of-f.aspx</link><pubDate>Fri, 27 Jan 2012 00:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10261061</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10261061</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10261061</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/01/26/hp-35-microcode-emulator-in-100-lines-of-f.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;em&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;[Part 3 of the&lt;/span&gt;&lt;/em&gt;&lt;span class="apple-converted-space"&gt;&lt;i&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;a style="widows: 2; outline-style: none; orphans: 2; cursor: pointer; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" href="http://blogs.msdn.com/b/ashleyf/archive/tags/hpcalcs/"&gt;&lt;em&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; text-underline: none;"&gt;HP Calc series&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;/span&gt;&lt;em style="widows: 2; orphans: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin;"&gt;]&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;In this post, we&amp;rsquo;ll create a 96-line F# emulator for the HP-35 calculator with which we&amp;rsquo;ll run the 960 byte (!) ROM image.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;As you may well know, I am a calculator freak. The 40-year-old HP-35 is an especially wonderful device; being the world&amp;rsquo;s first scientific pocket calculator. I own a couple of them and keep one handy on my desk, but it&amp;rsquo;ll be useful to have a faithful command-line rendition.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="line-height: 16pt; list-style-type: disc; margin: 24pt 0in 0pt; clear: none;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #365f91; font-size: 14pt;" color="#365f91"&gt;&lt;span style="font-weight: bold;"&gt;Tiny ROM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Here is a base-64 encoding of the ROM. It was three chips, each with 256 10-bit words, for a total of 7,680 bits; just under 1KB:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt; &lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; rom = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #008000;" color="#008000"&gt;// HP-35 v2 ROM&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"N2/4kBdRJEIREFRQsXzDajZ7u+ILiQ+r6vqGuaSoqg//q+r6gwMwqmoEN07MDAACDUQRC7k"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"Qn6EwsLiQyjb/q+r6hLmfqO13d27OMTg0oDSzt3qjb0uvpFtqh9uo3zbTI3y67jUVPfj+dR"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"X0ocQzlq767EfR1hOVtbLF7i57hMRIPGiZtbou6Y7K/6a6kUX961RJBBLUHOzuVSqzk6wrq"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"gag8qlKYrwd3tYHCsR/DLuvb4viIwPNilsApH+LLgwP5qAu/r+n6foSqP67pmmp/romEq+6"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"O+oDr7qNhmUtMHFqpLDGmcN6rEmJv0GuskO1UTd7OZ6JM/fqBFUzd6sbCgFMfCQHMs0OKIU"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"zNDlkNBKOu/VxOVTlj0U5PmvvP6pMP7o0lyNqev3M4NGOwxuvfKpeufUzqkURPKgqesZu77"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"fz8uKFqChaiVAn65VBLN6mUopWYSVaimaU2u7viSbplqpJuhntJ6h3s6jkoi5B4uQze0o65"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"oi3K5jiKy9jhUJelG3VQVz+74N6S3463+zJ0suS7Ujvaizuyy5Eko/7/iPM4Knit1Ymo65D"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"KRYybYMm0jIYoybY5m3MUOm0jstzGrqZlRsz+mEZDOWJ6hUpemcxq6lcxq6rpVq7rcxoycY"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"5gydSMhhjJxQycZxy6TtMVj72MhhmFYJhGJYFTawwu74gQRBDqWi6h3+w6g+ORBEFKRB4tO"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"qPzkOByUgsqct3ixay+WRYHAss8twc5bbwQXperq16fsbRCBsrP7LsORAzrMdiGFYNiWIYF"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"hmDYVjDAwBDit7WJ/gsu/qrqGLm7Ok6KjKwyu0QpKkl+7N0sSjIjt+7vsmoB4B0O7JKKSX6"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"PgQz7/pWRIS2opljoUQ+7tGAOzl+AN/kulnYhHzJPueAdzG1gydZMnH+aMnF9bMnHfZxuWc"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"fZ65TgaMNTsuBxDhsMfrm+Oc5nqszFZUBtVJT9mnZT9nsQ2uWzJt32jJtfWTJt/mDJtm2bd"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"Mi7rmYjslF7+qesLxZZ+WQ5alzs40uqb5s8uw46rOi4zlmJR20YeZ52YGx15Ok4lJTDBzDY"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"NgGIYVgGJY6uWfiS5fobtLrkW67foju74sRJC0t+lfks+DAkLOi6g+OX6f+uRbrm3Mxyleq"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"8vsmu7LMXGa2xUAMktmfqMumJCJGYlg2BYRh2BY5v5mT45YsTs4PNsxd6r+wwLpi1tDlqm7"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;+&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: x-small;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"PzOSrjp+x/pmOC7DHrkw2BYBgWHYliGAYVhWDY3frkuYaul7fqznq8tnzOwwmDYBgmFYgdTH7"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;The authoring of this microcode by David Cochran was an &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a style="cursor: auto;" href="http://www.hp.com/hpinfo/abouthp/histnfacts/museum/personalsystems/0023/other/0023hpjournal03.pdf"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;amazing piece work&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt; and &lt;/span&gt;&lt;a style="cursor: auto;" href="http://www.pmonta.com/calculators/hp-35/"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;Peter Monta&amp;rsquo;s reverse engineering&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt; of the ROMs by literally cutting them open and optically extracting the bits is a pretty insane feat! I&amp;rsquo;ve &lt;/span&gt;&lt;a style="cursor: auto;" href="http://blogs.msdn.com/b/ashleyf/archive/2010/09/25/microcode-level-hp-35-emulator-in-javascript.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;talked quite a bit about all of this in past posts&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; so I won&amp;rsquo;t go into detail here.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="line-height: 16pt; list-style-type: disc; margin: 24pt 0in 0pt; clear: none;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #365f91; font-size: 14pt;" color="#365f91"&gt;&lt;span style="font-weight: bold;"&gt;Perfect Fidelity Emulation&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;In well under 100 lines, here&amp;rsquo;s the emulator:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt; &lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;open&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; System&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;open&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; System.Collections&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: xx-small;" face="Consolas" color="#000000" size="1"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; calculator input output rom =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r = Array.init 8 (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; _ &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Array.create 14 0)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; s = Array.create 12 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; p = ref 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; pc, offset, ret = ref 0, ref 0, ref 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; carry, carry' = ref &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;, ref &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; visible, disp = ref &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;, ref &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; waiting, lastKey = ref 0, ref 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; halt = ref &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; exec code =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; doCarry res = carry := (res &amp;gt; 9 || res &amp;lt; 0); (res + 10) % 10&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; doOp fn x y = doCarry (fn (fn x y) (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; !carry &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 1 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0))&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; iteric c fn (first, last) = carry := c; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; first..last &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; fn i&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; iteri fn = iteric !carry fn&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; setreg a b = iteri (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- r.[b].[i])&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; zeroreg reg = setreg reg 7&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; shiftl a (f,l) = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (List.rev [f..l]) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i = f &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i-1]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; shiftr a (f,l) = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; f..l &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i = l &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i+1]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arith op a b c = iteri (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- (doOp op) r.[b].[i] r.[c].[i])&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; add = arith (+)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; sub = arith (-)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; regsgte a b = iteri (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (doOp (-)) r.[a].[i] r.[b].[i] |&amp;gt; ignore)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; regsgte1 a = iteric &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; carry := !carry &amp;amp;&amp;amp; r.[a].[i] = 0)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; negcdec dec = iteric dec (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[2].[i] &amp;lt;- (doOp (-)) 0 r.[2].[i])&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; opreg op a = iteric &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- (doOp op) r.[a].[i] 0)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; ifregzero a = iteri (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; carry := !carry || r.[a].[i] &amp;lt;&amp;gt; 0)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; exchreg a b = iteri (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; t = r.[a].[i] &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- r.[b].[i];r.[b].[i]&amp;lt;-t)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; opp fn = p := (fn !p 1) &amp;amp;&amp;amp;&amp;amp; 0xf&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; iterir fn = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..13 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; fn i&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; move pairs = iterir (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; List.iter (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (a, b) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[a].[i] &amp;lt;- r.[b].[i]) pairs)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; n = (code &amp;amp;&amp;amp;&amp;amp; 0b1111111100) &amp;gt;&amp;gt;&amp;gt; 2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pc := (!pc + 1) % 256&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; code &amp;amp;&amp;amp;&amp;amp; 0b11 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;span face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0b11 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; not !carry' &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; pc := n &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;| 0b01 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; ret := !pc; pc := n&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0b10 &amp;ndash;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;[| ifregzero 1; regsgte 0 2; setreg 2 1; zeroreg 2; shiftl 0; sub 2 0 2; setreg 0 2; add 2 0 2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regsgte 0 1; shiftr 2; shiftr 1; shiftr 0; sub 0 0 1; sub 0 0 2; add 0 0 1; add 0 0 2; zeroreg 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regsgte1 2; negcdec &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;; negcdec &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;; setreg 1 0; opreg (-) 2; ifregzero 2; opreg (+) 2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exchreg 1 2; regsgte1 0; add 2 2 2; zeroreg 0; exchreg 0 1; opreg (-) 0; exchreg 0 2; opreg (+) 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |].[16 * (n / 8 &amp;amp;&amp;amp;&amp;amp; 1) + (n / 16)] [|!p,!p; 3,12; 0,2; 0,13; 0,!p; 3,13; 2,2; 13,13|].[n % 8]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0b00 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arg = n / 16&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; n % 16 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; () &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #008000;" color="#008000"&gt;// no-op&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 1 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; s.[arg] &amp;lt;- 1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 3 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; p := arg&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 4 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;when&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arg = 3 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; pc := !lastKey&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 4 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;when&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arg % 2 = 0 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r = arg / 2 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; offset := r * 256&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 5 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; carry := s.[arg] &amp;lt;&amp;gt; 0; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arg = 0 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; waiting := !waiting + 1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 6 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; !p &amp;lt; 14 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[2].[!p] &amp;lt;- arg); opp (-)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| 7 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; opp (-)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 9 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; s.[arg] &amp;lt;- 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 10 &amp;ndash;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;match&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; arg &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 0&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; visible := not !visible&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 2&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; exchreg 2 6 (0, 13)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 4&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; move [5, 4; 4, 3; 3, 2]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 6&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; move [0, 3; 3, 4; 4, 5]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 8&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; visible := &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 10 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; setreg 2 6 (0, 13)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 12 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; iterir (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; t = r.[2].[i] &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; move [2,3; 3,4; 4,5]; r.[5].[i] &amp;lt;- t)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 14 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..13 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; j &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..7 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; r.[j].[i] &amp;lt;- 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 11 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; carry := !p = arg&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 12 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; pc := !ret&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 13 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..11 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; s.[i] &amp;lt;- 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | 15 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; p := (!p + 1) &amp;amp;&amp;amp;&amp;amp; 0xf&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; display () =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; not !visible &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; render i a b =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; b &amp;gt;= 8 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" "&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i = 2 || i = 13 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; a &amp;gt;= 8 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"-"&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" "&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; string a) + (&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; b = 2 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"."&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Array.mapi2 render r.[0] r.[1] |&amp;gt; Array.rev |&amp;gt; Array.fold (+) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; code = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; bits = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; toBits b = [|&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; s &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..7 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0x80uy &amp;gt;&amp;gt;&amp;gt; s &amp;amp;&amp;amp;&amp;amp; b |&amp;gt; min 1uy|]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rom |&amp;gt; Convert.FromBase64String |&amp;gt; Array.collect toBits&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..767 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; List.sum [&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; b &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; 0..9 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; (int bits.[i * 10 + 9 - b]) &amp;lt;&amp;lt;&amp;lt; b]]&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;rec&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; step () =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; disp' = display ()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; disp' &amp;lt;&amp;gt; !disp &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; output disp'; disp := disp'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; carry' := !carry; carry := &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exec code.[!offset + !pc]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; !waiting &amp;gt; 1 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; input () &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Some k &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; match&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; List.tryFind (fst &amp;gt;&amp;gt; (=) k)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;span face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'0'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,36; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'1'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,28; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'2'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,27; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'3'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,26; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'4'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,20; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'5'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,19; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'6'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,18; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'7'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,52; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'8'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,51; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'9'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,50; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'.'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,35; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'-'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,54 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'+'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,22; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'*'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,30; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'/'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,38; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'p'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,34; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'~'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,59; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'!'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,0;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'x'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,58; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'a'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,44; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'s'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,43; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'c'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,42; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'t'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,40; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'l'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,3 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'g'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,4;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'e'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,2; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt; '^'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,6;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'q'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,46; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'f'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,14; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'w'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,12; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'r'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,11; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'&amp;gt;'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,10; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'&amp;lt;'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,8;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;','&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,56; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;' '&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;,62] &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Some (_, addr) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; lastKey := addr; s.[0] &amp;lt;- 1; waiting := 0&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: xx-small;" size="1"&gt;&lt;span face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | None &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; halt := k = &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'`'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;| None &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; ()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; not !halt &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; step () &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; disp'&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="font-size: xx-small;" size="1"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-bidi-font-size: 9.5pt; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;step ()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 12pt; mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Given a ROM image and a pair of I/O functions, this will emulate the HP-35 perfectly.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;What&amp;rsquo;s amazing really is that the only &amp;ldquo;mathy&amp;rdquo; operations &lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&lt;/span&gt;we emulate are addition, subtraction and digit shifting. From this, all of the logarithm, trigonometry, etc. are implemented in microcode. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a style="cursor: auto;" href="http://www.jacques-laporte.org/"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;Jacques Laporte&amp;rsquo;s site&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; goes into great detail on how it works. It&amp;rsquo;s quite an interesting onion to unpeel!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;On the real device, key presses cause jumps to particular ROM addresses. In the emulation, input comes from a &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 10pt;"&gt;&lt;span face="Consolas"&gt;(unit -&amp;gt; char option)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; function. The character mappings are: &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class="MsoTableGrid" style="border: currentColor; line-height: normal; list-style-type: disc; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" cellspacing="0" cellpadding="0" border="1"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;"&gt;
&lt;td style="padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Digits 0-9 and decimal (.)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Number input&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;+ - * /&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Basic Arithmetic (+ - &amp;times; &amp;divide;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;~&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;CHS (change sign)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 3;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;SPACE or RETURN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;ENTER&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 4;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;x&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;EEX (enter exponent)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 5;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;CLX (clear X register)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 6;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;p&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;&amp;pi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 7;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;^&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;x&lt;sup&gt;y&lt;/sup&gt; (x to y power)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 8;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;g&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;LOG (log&lt;sub&gt;10&lt;/sub&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 9;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;l&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;LN (log&lt;sub&gt;e&lt;/sub&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 10;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;e&lt;sup&gt;x&lt;/sup&gt; (e to x power)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 11;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;CLR (clear)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 12;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;q&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;&amp;radic;x (sqrt x)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 13;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;ARC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 14;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;s&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;SIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 15;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;COS&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 16;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;t&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;TAN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 17;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;f&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;sup&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/sup&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;/&lt;sub&gt;x&lt;/sub&gt; (reciprocal &amp;ndash; &amp;ldquo;flip&amp;rdquo;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 18;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;x&amp;harr;y (swap)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 19;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;r&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;R&amp;darr; (roll down)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 20;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;STO (store)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 21;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;RCL (recall)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 22; mso-yfti-lastrow: yes;"&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="163"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: windowtext 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: windowtext 1pt solid; padding-top: 0in; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="162"&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="mso-bidi-theme-font: minor-latin; mso-bidi-font-family: calibri;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Quit&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 style="line-height: 16pt; list-style-type: disc; margin: 24pt 0in 0pt; clear: none;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #365f91; font-size: 14pt;" color="#365f91"&gt;&lt;span style="font-weight: bold;"&gt;The &amp;ldquo;UI&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;The calculator function above takes a ROM image and the pair of I/O functions. Again, input is a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 10pt;"&gt;&lt;span face="Consolas"&gt;(unit -&amp;gt; char option) &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;called repeatedly and output is a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="line-height: 10pt;"&gt;&lt;span face="Consolas"&gt;(string -&amp;gt; unit)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="line-height: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;which is passed the display (driven by the A and B registers) formatted exactly as you&amp;rsquo;d see it on the real device.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;We can cobble together a quick console UI like so:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: white;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt;&lt;strong&gt; &lt;br /&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;calculator&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; () &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Console.KeyAvailable &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; k = Console.ReadKey &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; k.Key = ConsoleKey.Enter &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Some &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;' '&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;elif&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; k.Key = ConsoleKey.Escape &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;then&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Some &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;'`'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Some (Char.ToLower k.KeyChar)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; None)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; font-size: small;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(printf &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b%s"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="line-height: 11pt; font-family: courier new,courier; font-size: small; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;rom |&amp;gt; ignore&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 style="line-height: 16pt; list-style-type: disc; margin: 24pt 0in 0pt; clear: none;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #365f91; font-size: 14pt;" color="#365f91"&gt;&lt;span style="font-weight: bold;"&gt;Tests&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Another reason for passing in the I/O dependencies is to allow simple testing:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&lt;span style="font-size: 9.5pt;"&gt; &lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; test keys expected =&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; keySequence = ref (List.ofSeq keys)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; testInput () =&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; !keySequence &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff; font-size: 9.5pt;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;| h :: t &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; keySequence := t; Some h&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;| [] &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; Some &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000; font-size: 9.5pt;" color="#800000"&gt;'`'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; res = calculator testInput (&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;fun&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; _ &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; ()) rom&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;assert&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt; (res = expected)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span face="Consolas"&gt;&lt;span style="color: #000000; font-size: 9.5pt;" color="#000000"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"~1.2345678909x~35"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"-1.234567890-35"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// entry&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"2 3+"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 5.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// add&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"3 2-"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 1.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// subtract&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"3 2*"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 6.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// multiply&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"3 2/"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 1.5&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// divide&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"4f"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" .25&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// reciprocal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"25q"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 5.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// square root&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pl"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 1.144729886&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// ln&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pg"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" .4971498728&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// log&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pe"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 23.14069264&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// exp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"ps"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" .054803665&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// sin&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pc"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" .9984971498&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// cos&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pt"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" .0548861507&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// tan&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pgas"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 29.81161556&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// sin-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pgac"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 60.18838444&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// cos-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"pat"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 72.34321286&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// tan-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"1 2 3 4 Swrrr"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 2.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// stack&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"123&amp;gt;456 ,&amp;lt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 123.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// memory&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; list-style-type: disc; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: courier new,courier;"&gt;&lt;strong&gt;&lt;span face="Consolas"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"9sctatacas"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 9.002983113&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// "Calculator Forensics" result&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: courier new,courier;" face="Consolas"&gt;&lt;strong&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 9.5pt;"&gt;test &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt;"&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;"9 2^"&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #800000;" color="#800000"&gt;" 512.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; mso-highlight: white;"&gt;&lt;span style="color: #008000; font-size: 9.5pt;" color="#008000"&gt;// power&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; list-style-type: disc; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;I keep this little guy handy now in my console window. I dropped it, along with the F# tools from &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a style="cursor: auto;" href="http://blogs.msdn.com/b/ashleyf/archive/tags/hpcalcs/"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;previous HP-35 posts&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;, in &lt;/span&gt;&lt;a style="cursor: auto;" href="https://github.com/AshleyF/Sandbox/tree/master/HP35/FSharp"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;&lt;span style="text-decoration: underline;"&gt;my github&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; as well. Have fun with it if you like!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10261061" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Calculators/">Calculators</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/HP_2D00_35/">HP-35</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/RPN/">RPN</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/HPCalcs/">HPCalcs</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/VMs/">VMs</category></item><item><title>Introducing the Cult of the Bound Variable to the Cult of Forth</title><link>http://blogs.msdn.com/b/ashleyf/archive/2012/01/07/introducing-the-cult-of-the-bound-variable-to-the-cult-of-forth.aspx</link><pubDate>Sun, 08 Jan 2012 01:07:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10254316</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10254316</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10254316</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2012/01/07/introducing-the-cult-of-the-bound-variable-to-the-cult-of-forth.aspx#comments</comments><description>&lt;p&gt;[The twelfth in a &lt;a href="http://blogs.msdn.com/b/ashleyf/archive/tags/transforth/"&gt;series of posts on the evolution of TransForth&lt;/a&gt;]&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;It’s been quite fun playing with this &lt;a style="cursor: auto;" href="http://www.boundvariable.org/um-spec.txt"&gt;Universal Machine&lt;/a&gt; from the &lt;a style="cursor: auto;" href="http://www.boundvariable.org/task.shtml"&gt;Cult of the Bound Variable&lt;/a&gt;. In this post we’re going to continue the journey toward building a full Forth for this machine by assembling a Forth inner interpreter; turning this register machine into a stack machine.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;Last time we &lt;a style="cursor: auto;" href="http://blogs.msdn.com/b/ashleyf/archive/2011/09/18/programming-a-2000-year-old-sandstone-computer.aspx"&gt;finished up a single-pass macro assembler for the UM-32 (in 15 lines of F# and 40 lines of Forth!)&lt;/a&gt; but did nothing more than a simple “Hello, world” with it. If you remember &lt;a style="cursor: auto;" href="http://blogs.msdn.com/b/ashleyf/archive/2011/03/26/heart-transplant.aspx"&gt;when we built an inner interpreter for TransForth&lt;/a&gt;, you know that this is the heart of Forth. If you’re unclear on the mechanics of a direct threaded inner interpreter, you’d probably enjoy the video from that earlier post:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&lt;iframe height="360" src="http://www.youtube.com/embed/vmjo6gesmUk" frameborder="0" width="480" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;Register Machines (what a pain)&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;Being so used to dealing with a stack machine and essentially zero-operand instructions, it can be a bit annoying to deal with a register machine. But that’s what we have with the UM-32. Let’s assign purposes to the remaining registers (remember, z is already the zero constant and registers 1 and 2 are temp registers. Let’s allocate one more temp along with the standard inner interpreter and stack pointers.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: x 3 ;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;Temp register&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: w 4 ;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&amp;#160; Working register&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: i 5 ;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;Interpreter register&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: s 6 ;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;Stack (data) register&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: r 7 ;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;Return stack register&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;In a way you can think of what we’re doing as implementing stack machine mechanics on top of a register machine. There are, of course, many real stack machines implemented in hardware. &lt;a style="cursor: auto;" href="http://www.ece.cmu.edu/~koopman/stack_computers/index.html"&gt;Koopman’s book is an excellent resource (free online)&lt;/a&gt; by the way. For the UM-32, we’ll need to handle the stacks ourselves along with the mechanics of walking nested sequences of stack operations.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Given the data or return stack pointer and a value register, these words will handle the stacks in a few instructions:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: push,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;( ab-m )&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;b.push(a)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;DUP&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;dec,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;b--&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;z store,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;M[b] = a&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: pop,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;( ab-m )&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;b = a.pop()&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;OVER SWAP&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;z SWAP&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;aazb&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;fetch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;b = M[a]&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;inc,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;a++ &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;These don’t emit any UM-32 code at this point. Instead they are assembler “macros” used to &lt;i style="mso-bidi-font-style: normal;"&gt;inline&lt;/i&gt; these instructions as needed later.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;Inner Interpreter&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Now we’re going to emit the inner interpreter and dictionary structure. Following that, we’ll initialize and kick things off. We’ll start by jumping to the initialization code (yet to be defined):&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;forward branch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;over dictionary&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;It happens to be patched to address 60 later and the following ends up in the image:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00000&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;60 y literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00001&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z y loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;The triumvirate of an inner interpreter is &lt;i style="mso-bidi-font-style: normal;"&gt;enter,&lt;/i&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt; and &lt;i style="mso-bidi-font-style: normal;"&gt;exit&lt;/i&gt; (in the past I’ve referred to them by their more &lt;i style="mso-bidi-font-style: normal;"&gt;classic&lt;/i&gt; names &lt;em&gt;docol, next &lt;/em&gt;and &lt;em&gt;dosemi&lt;/em&gt;).&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;The job of &lt;i style="mso-bidi-font-style: normal;"&gt;enter&lt;/i&gt; is to go into word definitions. It pushes the interpreter (i) register onto the return stack so we can get back out upon &lt;i style="mso-bidi-font-style: normal;"&gt;exit&lt;/i&gt;. It then points i at the body of the word and does a &lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt;.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;enter&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;enter !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;i r push,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;r.push(i)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;2 t literal, t w i add,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\ i = w + 8 (skip over enter,)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;\ falls through to next,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;It emits the following UM-32 code to the image (falling through to &lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt;):&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00002&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00003&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00004&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00005&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z r i store&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00006&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00007&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i w t add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;To make it easy to jump to this, here’s a convenience word:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: enter,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;&amp;amp;enter @ x literal,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x jump, ;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Next comes &lt;i style="mso-bidi-font-style: normal;"&gt;next,&lt;/i&gt; whose job is to jump to the next word in a sequence and advance the interpreter to the one following.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;next&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;next !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;i z w fetch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;w = M[i]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;i inc,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;i++&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;w jump,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;And the same kind of convenience macro:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: next,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;&amp;amp;next @ x literal,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x jump, ;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Remember that all primitive words are plain machine code followed by a &lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt;. All secondary words begin with &lt;i style="mso-bidi-font-style: normal;"&gt;enter&lt;/i&gt; (that is, with machine code to jump to &lt;/font&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;enter&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font style="font-size: 11pt;"&gt;) and are terminated with &lt;i style="mso-bidi-font-style: normal;"&gt;exit.&lt;/i&gt; The job of &lt;i style="mso-bidi-font-style: normal;"&gt;exit&lt;/i&gt; is to leave and rejoin a parent sequence; simply recovering the return address from the return stack and doing &lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt; from there.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;exit&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;exit !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;r i pop,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;i = r.pop()&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;next,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting an inlined &lt;i style="mso-bidi-font-style: normal;"&gt;pop&lt;/i&gt; and a jump to &lt;/font&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;font style="font-size: 11pt;"&gt;next:&lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00012&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i z r fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00013&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00014&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00015&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00016&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;That’s it for the inner interpreter! Just fifteen instructions (plus two for the jump as the start).&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;Hand-packed Primitives&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Now we want to pack a dictionary with primitive and secondary words to exercise things a bit. Using the same example as in the direct threading demo video, we’ll need literals (&lt;i style="mso-bidi-font-style: normal;"&gt;lit&lt;/i&gt;), &lt;i style="mso-bidi-font-style: normal;"&gt;pick&lt;/i&gt; and &lt;i style="mso-bidi-font-style: normal;"&gt;add&lt;/i&gt; primitives then we can define secondary &lt;i style="mso-bidi-font-style: normal;"&gt;dup&lt;/i&gt; (in terms of &lt;i style="mso-bidi-font-style: normal;"&gt;lit&lt;/i&gt; and &lt;i style="mso-bidi-font-style: normal;"&gt;pick&lt;/i&gt;) and &lt;i style="mso-bidi-font-style: normal;"&gt;double&lt;/i&gt; (in terms of &lt;i style="mso-bidi-font-style: normal;"&gt;dup &lt;/i&gt;and &lt;i style="mso-bidi-font-style: normal;"&gt;add&lt;/i&gt;).&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Starting with &lt;i style="mso-bidi-font-style: normal;"&gt;lit,&lt;/i&gt; we push the literal which is packed alongside word addresses and advance the interpreter to skip ahead:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;lit&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;lit !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;i z y fetch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;y = M[i]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;y s push,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;s.push(y)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;i inc,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;i++&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;next,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00017&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z i fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00018&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00019&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00020&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00021&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s y store&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00022&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00023&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00024&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00025&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;The &lt;i style="mso-bidi-font-style: normal;"&gt;pick&lt;/i&gt; word is used to pull a copy of the nth element on the stack to the top:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;pick&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;pick !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s y pop,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;y = s.pop()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s x move,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = s&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;y x x add,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = x + y&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;x z x fetch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = M[x]&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;x s push,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;s.push(x)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;next,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00026&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z s fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00027&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00028&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00029&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00030&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x s t cmove&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00031&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x x y add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00032&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x z x fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00033&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00034&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00035&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00036&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00037&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00038&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;The &lt;i style="mso-bidi-font-style: normal;"&gt;add&lt;/i&gt; word essentially pops two values and pushes back their sum. It could be implemented as:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s y pop,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;y = s.pop()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s x pop,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = s.pop()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;y x x add,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = x + y&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;x s push,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;s.push(x)&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;next,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;But a more efficient implementation just fetches the top of the stack for the second operand (without popping) and pokes back the result (without pushing):&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;add !&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;TODO: More efficient&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s y pop, &lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;y = s.pop()&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;s z x fetch,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = M[s]&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;y x x add,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x = x + y&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;x s z store,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;M[s] = x&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font face="Courier New"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 9.5pt;"&gt;next,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00039&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z s fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00040&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00041&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00042&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x z s fetch&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00043&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x x y add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00044&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00045&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00046&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;For our final primitive in this exercise, we just need a &lt;i style="mso-bidi-font-style: normal;"&gt;halt.&lt;/i&gt; It’s just a single instruction terminating execution (so it doesn’t need to be followed by a &lt;i style="mso-bidi-font-style: normal;"&gt;next&lt;/i&gt;). Later we’ll seed the process by pointing the interpreter here so that once all the nested sequences are complete the machine halts:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;halt&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;halt !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;halt,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00047&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;halt&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;Hand-packed Secondary Words&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Now on to the secondary words, which are quite different. They’re a branch to &lt;i style="mso-bidi-font-style: normal;"&gt;enter&lt;/i&gt; followed by a sequence of addresses rather than of machine code. It’s starting to gain a Forth-like &lt;i style="mso-bidi-font-style: normal;"&gt;feel; &lt;/i&gt;a little more comfortable:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;dup&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;dup !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;enter,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;lit&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;@ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;0&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;pick @ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;exit @ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;" face="Courier New"&gt; &lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00048&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00049&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00050&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;17&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00051&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00052&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;26&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00053&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;12&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Notice how the literal zero is packed in there but otherwise it’s just a list of addresses. This is the essence of threaded code. If you think of the word addresses as op codes for a zero-operand stack machine, you’re not far off!&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;The &lt;i style="mso-bidi-font-style: normal;"&gt;double&lt;/i&gt; word is another secondary, this time defined in terms of another secondary (the &lt;i style="mso-bidi-font-style: normal;"&gt;dup&lt;/i&gt; from above) and primitives:&lt;/font&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE &amp;amp;double&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address &amp;amp;double !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;enter,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;dup&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;@ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;@ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;exit @ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00054&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00055&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00056&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;48&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00057&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;39&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00058&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;12&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;That’s it for the dictionary.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;Sample Program&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Now we want to prime the mechanics to run a sample program. We’ll push a 42 to the stack and execute &lt;i style="mso-bidi-font-style: normal;"&gt;double.&lt;/i&gt; This will &lt;i style="mso-bidi-font-style: normal;"&gt;dup&lt;/i&gt; the 42 by doing a &lt;i style="mso-bidi-font-style: normal;"&gt;0 pick&lt;/i&gt; and &lt;i style="mso-bidi-font-style: normal;"&gt;add&lt;/i&gt; them together. With success we’ll end up with an 84 on the stack and &lt;/font&gt;&lt;i style="mso-bidi-font-style: normal;"&gt;&lt;font style="font-size: 11pt;"&gt;halt.&lt;/font&gt;&lt;/i&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;To kick off the interpreter, we’ll point it at a location in memory containing the address of the halt word in the dictionary. This will be pushed to the return stack upon initially entering double and will be popped and executed upon completion just as we want:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;VARIABLE terminate&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;address terminate !&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;halt @ m,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00059 &lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;47&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Remember the jump at the very start of the image? That is patched to the current address and so here finally begins execution of our sample:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;tohere&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;We’ll partition memory much as we did before with return and data stacks in high memory and the dictionary (already packed) in low memory:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;16383 r literal,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;top of return stack, 3FFF&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;12287 s literal,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;top of data stack, 2FFF&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;And like we said, seed the interpreter pointer with a cell containing the &lt;i style="mso-bidi-font-style: normal;"&gt;halt&lt;/i&gt; address:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;terminate @ i literal,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitted so far:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00060&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;16383 r literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00061&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;12287 s literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00062&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;59 i literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;To set up our little scenario, we manually push a 42 to the stack, point the interpreter (word register) at &lt;i style="mso-bidi-font-style: normal;"&gt;double&lt;/i&gt;and branch into it. The inner interpreter takes it from there; walking the nested primitive and secondary words to completion and halting.&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;42 x literal,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;x s push,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;double @ w literal,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;&amp;amp;double @ branch,&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Emitting:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00063&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;42 x literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00064&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00065&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00066&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00067&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00068&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;54 w literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00069&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;54 y literal&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-themecolor: text2; mso-themeshade: 191; mso-highlight: white; mso-style-textfill-fill-color: #17375e; mso-style-textfill-fill-themecolor: text2; mso-style-textfill-fill-alpha: 100.0%;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(204, 204, 204);" color="#333333" face="Courier New"&gt;00070&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z y loadjump&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font color="#333333" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;We’re done!&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;We can’t quite just load up this 71-cell image in the UM-32 and go however because we’re using memory at much higher addresses for the stack. We could add code to allocate and copy over the image but I think I’ll just take the easy route and pad the rest of the image with zeros; making a nice little 64KB (16K 32-bit cells) image file:&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;: pad,&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;16384 address&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;DO 0 m, LOOP ;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" face="Courier New"&gt;pad, msave&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;font face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;h1&gt;Tracing&lt;/h1&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;I would never have been able to get this all working without some visibility into the UM-32 in action. To get some tracing I added the following to &lt;a style="cursor: auto;" href="http://blogs.msdn.com/b/lukeh/archive/2008/07/10/icfp-programming-contest.aspx"&gt;Luke’s UM-32 implementation&lt;/a&gt; (inside his &lt;/font&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;font style="font-size: 9.5pt;" face="Consolas"&gt;cycle&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font style="font-size: 11pt;"&gt; function):&lt;/font&gt;&lt;/p&gt; &lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;  &lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: green;"&gt;//(* Debugging
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;name = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;0 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;z&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 1 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;t&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 2 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;y&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 3 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;x&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 4 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;w&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 5 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 6 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;s&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 7 &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;r&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an, bn, cn, a2n = (name a), (name b), (name c), (name a2)
printf &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;%05i  &amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;finger
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;match &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;code &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;with
&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 0u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s cmove       %s = %s:%i if %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 1u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s fetch       %s = M[%s:%i][%s:%i]&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 2u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s store       M[%s:%i][%s:%i] = %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an reg.[a] bn reg.[b] cn reg.[c]
| 3u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s add         %s = %s:%i + %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 4u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s mult        %s = %s:%i * %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 5u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s div         %s = %s:%i / %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 6u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;  %s %s %s nand        %s = %s:%i ~&amp;amp; %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;an bn cn an bn reg.[b] cn reg.[c]
| 7u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;        halt&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;| 8u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;    %s %s alloc       new(%s:%i) -&amp;gt; %s&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;bn cn cn reg.[c] bn
| 9u  &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;      %s free        %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;cn cn reg.[c]
| 10u &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;      %s echo        %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;cn cn reg.[c]
| 11u &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;      %s key         %s:%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;cn cn reg.[c]
| 12u &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;    %s %s loadjump    load(%s:%i), jump(%s:%i)&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;bn cn bn reg.[b] cn reg.[c]
| 13u &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;&amp;quot;%5i %s literal     %s = %i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;value a2n a2n value
&lt;/span&gt;&lt;/strong&gt;&lt;span style="background: white; color: green;"&gt;&lt;strong&gt;//Console.ReadLine() |&amp;gt; ignore
//*)&lt;/strong&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font style="font-size: 11pt;"&gt;Now we can run our image and see all the gloriously gory details!&lt;/font&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00000&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;60 y literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y = 60&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00001&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z y loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(y:60)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00060&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;16383 r literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r = 16383&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00061&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;12287 s literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s = 12287&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00062&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;59 i literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = 59&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00063&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;42 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 42&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00064&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00065&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = t:0 ~&amp;amp; t:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00066&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s = t:4294967295 + s:12287&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00067&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;M[z:0][s:12286] = x:42&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00068&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;54 w literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = 54&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00069&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;54 y literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y = 54&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00070&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z y loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(y:54)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00054&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00055&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:2)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00002&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00003&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = t:0 ~&amp;amp; t:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00004&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r = t:4294967295 + r:16383&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00005&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z r i store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;M[z:0][r:16382] = i:59&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00006&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00007&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i w t add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = w:54 + t:2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:56]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:56&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:48)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00048&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00049&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:2)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00002&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00003&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = t:0 ~&amp;amp; t:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00004&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r = t:4294967295 + r:16382&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00005&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z r i store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;M[z:0][r:16381] = i:57&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00006&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;2 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00007&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i w t add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = w:48 + t:2&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:50]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:50&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:17)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00017&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y = M[z:0][i:51]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00018&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00019&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = t:0 ~&amp;amp; t:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00020&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s = t:4294967295 + s:12286&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00021&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s y store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;M[z:0][s:12285] = y:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00022&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00023&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:51&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00024&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 8&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00025&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:8)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:52]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:52&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:26)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00026&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z s fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y = M[z:0][s:12285]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00027&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00028&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s = t:1 + s:12285&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00029&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00030&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x s t cmove&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = s:12286 if t:1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00031&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x x y add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = x:12286 + y:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00032&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x z x fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = M[z:0][x:12286]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00033&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;0 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00034&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t t t nand&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = t:0 ~&amp;amp; t:0&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00035&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&lt;/span&gt;s = t:4294967295 + s:12286&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00036&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;M[z:0][s:12285] = x:42&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00037&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 8&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00038&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:8)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:53]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:53&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:12)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00012&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i z r fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = M[z:0][r:16381]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00013&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00014&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r = t:1 + r:16381&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00015&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 8&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00016&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:8)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:57]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:57&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:39)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00039&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y z s fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;y = M[z:0][s:12285]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00040&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00041&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s t s add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;s = t:1 + s:12285&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00042&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x z s fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = M[z:0][s:12286]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00043&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x x y add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = x:42 + y:42&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;font face="Courier New"&gt;&lt;font color="#000000"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;"&gt;00044&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z s x store&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: yellow;"&gt;&lt;font style="font-size: 9.5pt; background-color: rgb(255, 255, 0);"&gt;M[z:0][s:12286] = x:84&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00045&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 8&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00046&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:8)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:58]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:58&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:12)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00012&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i z r fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = M[z:0][r:16382]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00013&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00014&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r t r add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;r = t:1 + r:16382&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00015&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;8 x literal &lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;x = 8&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00016&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z x loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(x:8)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00008&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w z i fetch&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;w = M[z:0][i:59]&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00009&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;1 t literal&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;t = 1&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00010&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i t i add&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;i = t:1 + i:59&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00011&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;z w loadjump&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;load(z:0), jump(w:47)&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"&gt;&lt;font style="font-size: 9.5pt;" color="#000000" face="Courier New"&gt;00047&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;#160;&amp;#160; &lt;/span&gt;halt&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font color="#000000" face="Courier New"&gt;&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;And viola! We indeed end up with 84 on the stack. Not a particularly impressive feat, but it shows that all seems to be working as expected.&lt;/font&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;h1&gt;To be continued…&lt;/h1&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;

&lt;p class="MsoNormal" style="margin: 0in 0in 0pt; list-style-type: disc;"&gt;&lt;font style="font-size: 11pt;"&gt;Next, we’ll work on building an outer interpreter to process Forth source code and get out of this assembly language business. However, we’ll always keep the assembler handy and we’ll always be free to dip down to defining Forth words at this lowest level; for performance and to take advantage of machine-level functionality as needed. This spanning from bare metal all the way up to very high levels of abstraction is a unique beauty of Forth.&lt;/font&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;/b&gt;&lt;/p&gt;
&lt;font style="font-size: 12pt;"&gt;&lt;/font&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10254316" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/TransForth/">TransForth</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Forth/">Forth</category></item><item><title>Lego KinNXT</title><link>http://blogs.msdn.com/b/ashleyf/archive/2011/12/23/lego-kinnxt.aspx</link><pubDate>Fri, 23 Dec 2011 21:08:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10250761</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>14</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10250761</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10250761</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2011/12/23/lego-kinnxt.aspx#comments</comments><description>&lt;p&gt;I’ve been having some fun playing with the &lt;a href="http://kinectforwindows.org/"&gt;Kinect SDK&lt;/a&gt; and the &lt;a href="http://mindstorms.lego.com"&gt;Lego NXT kit&lt;/a&gt;. The &lt;a href="http://mindstorms.lego.com/en-us/support/files/default.aspx"&gt;protocol to talk to the Lego brick over Bluetooth&lt;/a&gt; is pretty straight forward. Below is a little F# module for most of the basic commands. I’ll fill out the full set soon and put it up on GitHub.&lt;/p&gt;  &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/aNjUOjnGTZs" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/IiqNIKpWH9c" frameborder="0" width="560" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;Using this along with Kinect skeletal tracking makes for a quick, pretty cool little project with the boys!&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;p&gt;The code is just:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;LegoBot
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Microsoft.Research.Kinect.Nui

printfn &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Connecting...&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;bot = &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black"&gt;LegoBot &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;COM3&amp;quot;

&lt;/span&gt;&lt;span style="background: white; color: black"&gt;printfn &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Initializing Kinect...&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;Runtime.Kinects.Count = 0 &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black"&gt;failwith &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Kinect missing&amp;quot;
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;kinect = Runtime.Kinects.Item 0
kinect.Initialize(RuntimeOptions.UseDepth ||| RuntimeOptions.UseSkeletalTracking)
kinect.SkeletonEngine.IsEnabled &amp;lt;- &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;true
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;kinect.SkeletonEngine.TransformSmooth &amp;lt;- &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;true
&lt;/span&gt;&lt;span style="background: white; color: black"&gt;kinect.SkeletonFrameReady.Add(&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black"&gt;frame &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;-&amp;gt;
    let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;drive port position =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;power = position * 2.f * 100.f |&amp;gt; int
        bot.SetOutputState power port OutputMode.MotorOn RegulationMode.Idle 0 RunState.Running 0ul
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;joints = frame.SkeletonFrame.Skeletons.[0].Joints
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;left = joints.[JointID.HandLeft]
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;right = joints.[JointID.HandRight]
    printfn &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Left: %A Right %A&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;left right
    drive 0 left.Position.Y
    drive 2 right.Position.Y)

System.Console.ReadLine() |&amp;gt; ignore

bot.Disconnect()&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;strong&gt;&lt;/strong&gt;

&lt;p&gt;Given the LegoBot defined below of course. One issue is the latency and the “chattiness” of the protocol. I tried and couldn’t get the “Segway Bot” to work. Next, I’m thinking of doing a Forth to run directly on the brick and use the Lego brick’s message box protocol to communicate back to a PC only as needed.&lt;/p&gt;

&lt;p&gt;Here’s the F# module. Have fun with it!&lt;/p&gt;

&lt;pre class="code"&gt;&lt;strong&gt;&lt;span style="background: white; color: blue"&gt;module &lt;/span&gt;&lt;span style="background: white; color: black"&gt;LegoBot

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;System
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;System.IO
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;System.IO.Ports
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;open &lt;/span&gt;&lt;span style="background: white; color: black"&gt;System.Text

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;SensorKind =
    | None          = 0x0
    | Switch        = 0x1
    | Temperature   = 0x2
    | Reflection    = 0x3
    | Angle         = 0x4
    | LightActive   = 0x5
    | LightInactive = 0x6
    | SoundDB       = 0x7
    | SoundDBA      = 0x8
    | Custom        = 0x9
    | LowSpeed      = 0xA
    | LowSpeed9V    = 0xB
    | Color         = 0xD

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;SensorMode =
    | Raw             = 0x00
    | Boolean         = 0x20
    | TransitionCount = 0x40
    | PeriodCounter   = 0x60
    | PCTFullScale    = 0x80
    | Celsius         = 0xA0
    | Fahrenheit      = 0xC0
    | AngleSteps      = 0xE0
    | SlopeMask       = 0x1F

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;InputValue = {
    IsValid      : bool
    IsCalibrated : bool
    Kind         : SensorKind
    Mode         : SensorMode
    Raw          : int
    Normalized   : int
    Scaled       : int
    Calibrated   : int }

[&amp;lt;Flags&amp;gt;]
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;OutputMode =
    | None      = 0
    | MotorOn   = 1
    | Brake     = 2
    | Regulated = 4

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;RegulationMode =
    | Idle       = 0
    | MotorSpeed = 1
    | MotorSync  = 2

[&amp;lt;Flags&amp;gt;]
&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;RunState =
    | Idle     = 0x00
    | RampUp   = 0x10
    | Running  = 0x20
    | RampDown = 0x40

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;OutputState = {
    Power         : int
    Mode          : OutputMode
    Regulation    : RegulationMode
    Turn          : int
    Run           : RunState
    Limit         : uint32
    TachoCount    : int
    BlockCount    : int
    RotationCount : int }

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;DeviceInfo = {
    Name      : string
    BTAddress : byte[]
    Signal    : int32
    Memory    : int32 }

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;VersionInfo = {
    Protocol : float
    Firmware : float }

&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;type &lt;/span&gt;&lt;span style="background: white; color: black"&gt;LegoBot(port : string) =
    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;reader, writer =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;com = &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black"&gt;SerialPort(port)
        com.Open()
        com.ReadTimeout &amp;lt;- 1500
        com.WriteTimeout &amp;lt;- 1500
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;stream = com.BaseStream
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black"&gt;BinaryReader(stream), &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black"&gt;BinaryWriter(stream)

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;send (message : byte[]) =
        int16 message.Length |&amp;gt; writer.Write
        writer.Write message
        writer.Flush()

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;expect (bytes : byte[]) =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;actual = reader.ReadBytes bytes.Length
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;actual &amp;lt;&amp;gt; bytes &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black"&gt;failwith &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Invalid response&amp;quot;

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;file (name : string) =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;name.Length &amp;gt; 19 &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black"&gt;failwith &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;Name too long.&amp;quot;
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;bytes = (Seq.map byte name |&amp;gt; List.ofSeq)
        bytes @ List.init (20 - bytes.Length) (&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black"&gt;_ &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;0uy)

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;bytesToString bytes =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;len = Array.findIndex ((=) 0uy) bytes
        Encoding.ASCII.GetString(bytes, 0, len)

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;intToBytes i = [byte i; i &amp;gt;&amp;gt;&amp;gt; 8 |&amp;gt; byte; i &amp;gt;&amp;gt;&amp;gt; 16 |&amp;gt; byte; i &amp;gt;&amp;gt;&amp;gt; 24 |&amp;gt; byte]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;shortToBytes (s : int16) = [byte s; s &amp;gt;&amp;gt;&amp;gt; 8 |&amp;gt; byte]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.KeepAlive () = send [|0x80uy; 0x80uy; 0x0Duy|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.GetDeviceInfo () =
        send [|1uy; 0x9Buy|]
        expect [|33uy; 0uy; 2uy; 0x9Buy; 0uy|]
        { Name = Encoding.ASCII.GetString(reader.ReadBytes 15)
          BTAddress = reader.ReadBytes 7
          Signal = reader.ReadInt32()
          Memory = reader.ReadInt32() }

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.GetVersion () =
        send [|1uy; 0x88uy|]
        expect [|7uy; 0uy; 2uy; 0x88uy; 0uy|]
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;readMajorMinor () = Double.Parse(sprintf &lt;/span&gt;&lt;span style="background: white; color: maroon"&gt;&amp;quot;%i.%i&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;(reader.ReadByte()) (reader.ReadByte()))
        { Protocol = readMajorMinor (); Firmware = readMajorMinor () }

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.GetBatteryLevel () =
        send [|0uy; 0xBuy|]
        expect [|5uy; 0uy; 2uy; 0xBuy; 0uy|]
        (reader.ReadInt16() |&amp;gt; float) / 1000.

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.SetBrickName (name : string) =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;truncated = Seq.map byte name |&amp;gt; Seq.take (min name.Length 15) |&amp;gt; List.ofSeq
        [1uy; 0x98uy] @ truncated @ [byte truncated.Length] |&amp;gt; Array.ofList |&amp;gt; send
        expect [|3uy; 0uy; 2uy; 0x98uy; 0uy|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.PlayTone frequency (duration : TimeSpan) =
        writer.Write [|6uy; 0uy; 0x80uy; 3uy|]
        int16 frequency |&amp;gt; writer.Write
        int16 duration.TotalMilliseconds |&amp;gt; writer.Write
        writer.Flush()

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.SetInputMode port (kind : SensorKind) (mode : SensorMode) =
        send [|0x80uy; 5uy; byte port; byte kind; byte mode|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.GetInputValues port =
        send [|0uy; 7uy; byte port|]
        expect [|16uy; 0uy; 2uy; 7uy; 0uy|]
        reader.ReadByte() |&amp;gt; ignore
        { IsValid = (reader.ReadByte() = 1uy)
          IsCalibrated = (reader.ReadByte() = 1uy)
          Kind = reader.ReadByte() |&amp;gt; int |&amp;gt; enum
          Mode = reader.ReadByte() |&amp;gt; int |&amp;gt; enum
          Raw = reader.ReadInt16() |&amp;gt; int
          Normalized = reader.ReadInt16() |&amp;gt; int
          Scaled = reader.ReadInt16() |&amp;gt; int
          Calibrated = reader.ReadInt16() |&amp;gt; int }

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.ResetInputScaledValue port = send [|0x80uy; 8uy; byte port|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.SetOutputState port power (mode : OutputMode) (regulation : RegulationMode) turn (run : RunState) (limit : uint32) = &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// port 0xFF means 'all'
        &lt;/span&gt;&lt;span style="background: white; color: black"&gt;writer.Write [|12uy; 0uy; 0uy; 4uy; byte port; byte power; byte mode; byte regulation; byte turn; byte run|]
        writer.Write limit
        writer.Flush()
        expect [|3uy; 0uy; 2uy; 4uy; 0uy|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.GetOutputState port =
        send [|0uy; 6uy; byte port|]
        expect [|25uy; 0uy; 2uy; 6uy; 0uy|]
        reader.ReadByte() |&amp;gt; ignore
        { Power = reader.ReadByte() |&amp;gt; int32
          Mode = reader.ReadByte() |&amp;gt; int32 |&amp;gt; enum
          Regulation = reader.ReadByte() |&amp;gt; int32 |&amp;gt; enum
          Turn = reader.ReadByte() |&amp;gt; int32
          Run = reader.ReadByte() |&amp;gt; int32 |&amp;gt; enum
          Limit = reader.ReadUInt32()
          TachoCount = reader.ReadInt32()
          BlockCount = reader.ReadInt32()
          RotationCount = reader.ReadInt32() }    
&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.ResetMotorPosition port relative =
        send [|0x80uy; 0xAuy; byte port; (&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black"&gt;relative &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;then &lt;/span&gt;&lt;span style="background: white; color: black"&gt;1uy &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;else &lt;/span&gt;&lt;span style="background: white; color: black"&gt;0uy)|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.MessageWrite box (message : string) =
        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;let &lt;/span&gt;&lt;span style="background: white; color: black"&gt;truncated = Seq.map byte message |&amp;gt; Seq.take (min message.Length 59) |&amp;gt; List.ofSeq
        [0x0uy; 0x09uy; byte box] @ [byte truncated.Length + 1uy] @ truncated @ [0uy] |&amp;gt; Array.ofList |&amp;gt; send
        expect [|3uy; 0uy; 2uy; 0x09uy; 0uy|]

 &lt;/span&gt;&lt;span style="background: white; color: black"&gt;   &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.StartProgram name =
        [0uy; 0uy] @ file name |&amp;gt; Array.ofList |&amp;gt; send
        expect [|3uy; 0uy; 2uy; 0uy; 0uy|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.StopProgram () =
        send [|0uy; 1uy|]
        expect [|3uy; 0uy; 2uy; 1uy; 0uy|]

    &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;member &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.Disconnect () =
        List.iter (&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black"&gt;p &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.SetInputMode p SensorKind.None SensorMode.Raw) [0..3]
        List.iter (&lt;/span&gt;&lt;span style="background: white; color: blue"&gt;fun &lt;/span&gt;&lt;span style="background: white; color: black"&gt;p &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;-&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black"&gt;x.SetOutputState p 0 OutputMode.MotorOn RegulationMode.Idle 0 RunState.Idle 0ul) [0..2]
        reader.Close()
        writer.Close()
&lt;/span&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10250761" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Robotics/">Robotics</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/LegoNXT/">LegoNXT</category></item><item><title>Programming a 2000 Year Old Sandstone Computer</title><link>http://blogs.msdn.com/b/ashleyf/archive/2011/09/18/programming-a-2000-year-old-sandstone-computer.aspx</link><pubDate>Mon, 19 Sep 2011 05:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10213301</guid><dc:creator>Ashley Nathan Feniello</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/rsscomments.aspx?WeblogPostID=10213301</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/ashleyf/commentapi.aspx?WeblogPostID=10213301</wfw:comment><comments>http://blogs.msdn.com/b/ashleyf/archive/2011/09/18/programming-a-2000-year-old-sandstone-computer.aspx#comments</comments><description>&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Segoe UI;" face="Segoe UI"&gt;&lt;span class="apple-style-span"&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-size: 9pt;"&gt;[The eleventh in a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 9pt;"&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 11.0pt;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="apple-style-span"&gt;&lt;span style="background-image: none; line-height: 10pt; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-bidi-font-size: 11.0pt;"&gt;&lt;span style="font-size: 9pt;"&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/tags/transforth/"&gt;&lt;span&gt;&lt;span style="color: #0066dd;" color="#0066dd"&gt;series of posts on the evolution of TransForth&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 10pt; mso-bidi-font-size: 11.0pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;If you think coding with punch cards is old school, you should try using sandstone tablets! Legend has it that members of the &lt;i style="mso-bidi-font-style: normal;"&gt;Cult of the Bound Variable&lt;/i&gt; designed and may have even constructed a city-sized machine powered by falling sand more than two millennia ago; dwarfing our ENIAC of the last century and beating us to an understanding of computation by thousands of years.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;What the heck am I talking about?! &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://boundvariable.org/task.shtml"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;Learn more here&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;. Really, go check it out right now! But try not to get so sucked into unlocking the Cult&amp;rsquo;s mysteries that you spend days without sleep and forget to come back here.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;So far the TransForth project has taken a top-down approach; starting with high-level F# and stripping it away &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2011/09/04/meta-circular-chicken-and-egg.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;until we have a VM and a meta-circular interpreter&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;. Now I want to completely switch gears and build things bottom-up, starting with raw machine code. No kidding. We&amp;rsquo;re going to build our own assembler, use it to write a Forth inner interpreter, manually pack a dictionary to bootstrap an outer interpreter, and finally again reach the nirvana of meta-circularity. Should be fun!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Bring Your Own VM&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;The Universal Machine is an extremely simple 32-bit RISC architecture, yet powerful enough to run a UNIX-like operating system. Emulating it on modern hardware (&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Silicon#Electronics"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;still made of sand by the way&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;) is pretty straightforward. Luke Hoban has posted a &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/lukeh/archive/2008/07/10/icfp-programming-contest.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;very nice 40-line implementation in F#&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt; and has a &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/lukeh/archive/2009/06/26/icfp-programming-contest-2009.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;VM running in Silverlight&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;. It&amp;rsquo;s also been done in tons of other languages. The package from CMU includes a SML compiler (um\humlock) and an assembler (um\whistleock) for it and VMs in Awk, C, C#, Haskell, Java, OCaml, Perl, PostScript, Python, Scheme, SML, Tweif, x86 assembly and in UM machine code itself. I&amp;rsquo;ve also &lt;/span&gt;&lt;a href="https://github.com/tobin/um.js"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;seen it in JavaScript&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; and Ruby.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;I&amp;rsquo;ve been using &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://blogs.msdn.com/b/lukeh/archive/2008/07/10/icfp-programming-contest.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;Luke&amp;rsquo;s F# version&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; for my exploration. I won&amp;rsquo;t repost his code here. You can go grab it from his blog. I did have to make a one-line fix to bring it up to date with current F#:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="background-color: #ff0000;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-themecolor: background1; mso-themeshade: 128; mso-style-textfill-fill-color: #7f7f7f; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-colortransforms: lumm=50000; mso-highlight: red;"&gt;&lt;span style="color: #7f7f7f;" color="#7f7f7f"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;&amp;lt;!&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: red;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: red;"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; mem = ResizeArray.create 1 p0AsUInts&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="background-color: #ffff00;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-themecolor: background1; mso-themeshade: 128; mso-style-textfill-fill-color: #7f7f7f; mso-style-textfill-fill-themecolor: background1; mso-style-textfill-fill-alpha: 100.0%; mso-style-textfill-fill-colortransforms: lumm=50000; mso-highlight: yellow;"&gt;&lt;span style="color: #7f7f7f;" color="#7f7f7f"&gt;&lt;span style="font-size: 11pt;"&gt;!&amp;gt;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: yellow;"&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%; mso-highlight: yellow;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt; mem = &lt;/span&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; ResizeArray&amp;lt;uint32[]&amp;gt;([|p0AsUInts|])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Bring Your Own Assembler&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Running the codex and uncovering all the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.cs.cmu.edu/~rwh/papers/contest/icfp2006.pdf"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;astoundingly wonderful mysteries within&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; is worth a weekend of your life I assure you, but perhaps more fun will be to write our own codex! The eventual goal is a codex image that, when loaded, is a full Forth.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;What we&amp;rsquo;re going to do is build an assembler for ourselves in TransForth, but targeting the new machine. We&amp;rsquo;ll assemble in memory and spit out to a file from which the Universal Machine can boot. First, let&amp;rsquo;s add a couple of utility words to TransForth. We&amp;rsquo;re going to need left/right bit shifts and also add a word to dump a range of memory to a file with the correct endianness for the UM:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;let&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; um () =&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;use&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; file = File.Open(&lt;/span&gt;&lt;span&gt;&lt;span style="color: #800000;" color="#800000"&gt;"transforth.um"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt;, FileMode.Create)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; i &lt;/span&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; pop () .. pop () &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: #0000ff; font-size: 11pt;" color="#0000ff"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;let&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; m = mem.[i]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;m &amp;gt;&amp;gt;&amp;gt; 24 |&amp;gt; byte |&amp;gt; file.WriteByte&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;m &amp;gt;&amp;gt;&amp;gt; 16 |&amp;gt; byte |&amp;gt; file.WriteByte&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;m &amp;gt;&amp;gt;&amp;gt; 8 |&amp;gt; byte |&amp;gt; file.WriteByte&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;m |&amp;gt; byte |&amp;gt; file.WriteByte&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt; &lt;br /&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;and&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; execute () =&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;match&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; instruction &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: #0000ff; font-size: 11pt;" color="#0000ff"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;| 35 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; dyadic (&amp;lt;&amp;lt;&amp;lt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;| 36 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; dyadic (&amp;gt;&amp;gt;&amp;gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="mso-spacerun: yes;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;| 37 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #0000ff;" color="#0000ff"&gt;-&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; um ()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt; &lt;br /&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;primitive &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #800000;" color="#800000"&gt;"LSH"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; LSH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;primitive &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #800000;" color="#800000"&gt;"RSH"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; RSH&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt;primitive &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;span&gt;&lt;span style="color: #800000;" color="#800000"&gt;"UM"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; UM&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;That&amp;rsquo;s all the F# we&amp;rsquo;re going to need. Let&amp;rsquo;s start putting together our little assembler. What we&amp;rsquo;ll be doing is appending UM machine code in memory and then dumping it out.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;\ UM-32 Assembler &lt;br /&gt; &lt;br /&gt;: ORIGIN 32768 ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;VARIABLE target&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;ORIGIN target !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: m, target @ !&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;target ++! ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: msave&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;target @ 1- ORIGIN UM ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;So we can use &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;m,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; to append as we go and &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;msave&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; to spit out the final transforth.um file.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Understanding the UM-32&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Between Luke&amp;rsquo;s F# code and &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.boundvariable.org/um-spec.txt"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;the (purposely somewhat obfuscated) spec&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;, you may have already pieced together how the machine works for yourself.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;It&amp;rsquo;s a 32-bit RISC machine with only 14 instructions, 8 registers, dynamically allocated memory and single byte I/O. Upon booting, it loads memory block 0 from a &amp;ldquo;codex&amp;rdquo; file and begins executing at address 0.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Instructions may refer to up to three registers (e.g. the addition instruction, a = b + c). You can see in the spec how they&amp;rsquo;re packed into 32-bit &amp;ldquo;sandstone platters&amp;rdquo;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;For example, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #ff0000;" color="#ff0000"&gt;0011&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt;0000000000000000000&lt;/span&gt;&lt;span&gt;&lt;span style="color: #00b050;" color="#00b050"&gt;001&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: #0070c0;" color="#0070c0"&gt;010&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: #7030a0;" color="#7030a0"&gt;011&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt; adds (&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #ff0000;" color="#ff0000"&gt;0011&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt;) registers 3 (&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #7030a0;" color="#7030a0"&gt;011&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt;) and 2 (&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #0070c0;" color="#0070c0"&gt;010&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt;), placing the sum in register 1 (&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #00b050;" color="#00b050"&gt;001&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt;). We can build these by shifting and ORing a set of register numbers (a, b, and c) and an instruction:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: instruction,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( cbai-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;22 LSH OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;3 LSH OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;3 LSH OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;m, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;I&amp;rsquo;m going to start using lowercase names for UM-related words and the trailing comma in the name signifies words that emit instructions to the target area.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;The first thirteen instructions follow this format. We can make mnemonic words for these:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: cmove,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b if a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: fetch,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;1 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b[a]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: store,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;2 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c[b] = a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: add,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;3 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b + a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: mult,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;4 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b * a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: div,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;5 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b / a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: nand,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;6 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b ~&amp;amp; a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: halt,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 0 0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;7 instruction, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: alloc,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;8 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;new(b) -&amp;gt; a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: free,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;9 instruction, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: echo,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;10 instruction, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: key,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;11 instruction, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: loadjump,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;12 instruction, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;load(b), jump(a)&lt;/span&gt;&lt;/span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;The only operations that index through registers are load and store. All others operate on registers only. Notice however that not all of the instructions make use of all the registers. For unused registers we can embed 0s.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;The 14&lt;sup&gt;th&lt;/sup&gt; instruction is for loading literal values; packing a 25-bit value with a register number. For example, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #ff0000;" color="#ff0000"&gt;0011&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color: #00b050;" color="#00b050"&gt;001&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt;0000000000000000000101010&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt; places 42 (&lt;b style="mso-bidi-font-weight: normal;"&gt;101010&lt;/b&gt;) into register 1 (&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="color: #00b050;" color="#00b050"&gt;001&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #000000;" color="#000000"&gt;). We can construct like so:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( va -- m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;13 3 LSH OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;25 LSH OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;m, ;&lt;/span&gt;&lt;/span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;An interesting aspect of the UM is the dynamic memory system with &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;alloc,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; and &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;free,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;. These dynamically manipulate the &amp;ldquo;array of platters.&amp;rdquo; The &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;loadjump,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; instruction seems to be meant for loading programs from one array into the zero array and jumping to a particular instruction within. In fact, this instruction is used extremely frequently in the codex to do regular jumps within the zero array. The VM doesn&amp;rsquo;t clone anything when copying from zero to zero; only updates the &amp;ldquo;finger.&amp;rdquo; As the spec says, the zero &amp;ldquo;shall be the most sublime choice for loading, and shall be handled with the utmost velocity.&amp;rdquo; We can make a macro for direct jumps within the zero array:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: jump,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 loadjump, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;jump(a)&lt;/span&gt;&lt;/span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Hello World!&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Just to make sure everything is functioning, let&amp;rsquo;s assemble our first UM-32 program. To print &amp;ldquo;Hello World!&amp;rdquo; to the console, we&amp;rsquo;ll have to load a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;literal,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; for each character into a register and &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;echo,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; it. For example, we can print &amp;ldquo;Hi&amp;rdquo; by loading and echoing the literal ASCII values (using registers 0 and 1):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;72&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;'H'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;105 1 literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;'i'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;0 echo,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;1 echo,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;halt,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Hosting our assembler in Forth means that we can use its full power at assembly-time to simplify our lives. How about a helper for dealing with ASCII:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: chr WORD HERE 1+ @ ; IMMEDIATE&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;This works by parsing the next word and taking the first character (presumably a single character word).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Another advantage of hosting the assembler in Forth is that we can use it as a sort of &amp;ldquo;macro assembler&amp;rdquo;; creating words that simplify the generation of common instruction sequences. For example, loading and echoing a literal.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: output,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;0 echo, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;Now we can simply push a value (perhaps an ASCII character with &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;chr&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;) and echo it with a single word:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;chr H output,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;chr i output,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;halt,&lt;/span&gt;&lt;/span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Or we can further factor to:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: cout, ( '-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;chr output, ;&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;br style="mso-special-character: line-break;" /&gt; &lt;br style="mso-special-character: line-break;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;And:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;\ Hello World!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, H&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, l&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, l&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, o&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;SP output,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, W&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, o&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, r&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, l&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, d&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;cout, !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;halt,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;msave&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;Go ahead and run this in TransForth and you end up with a boot image file for the Universal Machine that prints &amp;ldquo;Hello World!&amp;rdquo;. Nice, we have the beginnings of a working assembler!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Missing Instructions&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;The Universal Machine seems to take RISC to a pretty ridiculous extreme. There is no conditional jump, no subtraction, etc. I&amp;rsquo;m encouraged by the fact that UMIX runs on this thing. Certainly these limitations can be overcome.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;Let&amp;rsquo;s add macros for a few instructions that would be expected. To start with, I think it will be helpful to assign purposes to a few registers. Having zero constant value always handy will simplify things (other constants such as 1 and &amp;ndash;1 would be nice too, but I&amp;rsquo;m afraid we&amp;rsquo;ll run out of registers when we try to build the inner interpreter later). Let&amp;rsquo;s just use the 0 register and since all registers are initialized to zero we don&amp;rsquo;t need to do anything other than to remember not to touch register 0. We&amp;rsquo;ll define a convent name for it:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: z 0 ; \ Zero constant register &lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: t 2 ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ &lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;Temp register&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;There is a conditional &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;move,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; between registers but no unconditional move. We can build this by embedding our new constant:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: move,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;1 t literal, t -ROT cmove, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;b = a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;There&amp;rsquo;s also no increment instruction. We can build this again by embedding our new constant in an &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;add,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: inc,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;DUP 1 t literal, t SWAP add, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a++&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Other notable things missing include bit shifting and bitwise operations other than nand. Everything can be defined in terms of nand &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2011/02/02/refactor-fat-trim-build.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;just as we did some time ago&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;, but I&amp;rsquo;d rather do this in Forth-world later. For now, we&amp;rsquo;ll just need a &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;not,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; instruction:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: not,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;SWAP DUP ROT nand, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;b = ~a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Subtraction doesn&amp;rsquo;t exist either. In fact, the UM-32 works only with unsigned numbers. After brushing up on our &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Two's_complement"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;understanding of 2s compliment&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; though we realize that we can represent negative numbers in this unsigned world by flipping the bits and incrementing. We can then define subtraction in terms of addition (with carry overflow) of negatives:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: neg, &lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;(&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;DUP -ROT not, inc, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;b = -a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: sub, &lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;( abc-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;2 PICK DUP neg, -ROT add, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;c = b - a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Decrement can be defined in terms of &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;sub,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; of course. It will be helpful here and elsewhere to have one of the registers set aside as a temporary:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: t 2 ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;Temp register&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: dec, &lt;span style="mso-spacerun: yes;"&gt;&lt;/span&gt;( a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;1 t literal, t SWAP DUP sub, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a--&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Notice that this expands to four instructions at assembly-time. For example, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;x dec,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; expands to:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;1 t literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ t = 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;t t t nand,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;1 t t add,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ t = -1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;t x x add,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ x += -1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;If we wanted to use up another register to maintain a constant -1 value then we could reduce &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;dec,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; to a single instruction. I wanted to do this but I believe we&amp;rsquo;ll later run out of registers when we start building the Forth inner interpreter. Still, if you&amp;rsquo;d like (assuming say, &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; contains -1):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: dec,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;DUP n SWAP add, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;a--&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;This way the same &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;x dec,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; for example expands to simply &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;n x x add,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Thinking more about this, we may realize that there&amp;rsquo;s no need to treat decrementing as generally as subtracting 1. Rather than four instructions, it can be done in three! This is the kind of micro-optimizations that we can have fun with when working close to the hardware (well, the VM). Negative 1 is just all bits on in two&amp;rsquo;s compliment which we can produce in two instructions, then add that:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;0 t literal,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ t = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;t t t nand, \ t = -1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span lang="FR" style="mso-ansi-language: fr;"&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;t x x add,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\ x += -1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Branching&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;The&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt; jump,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; macro jumps to an address in a given register. If the address is known at assembly-time then it needs to be loaded into a register first. Let&amp;rsquo;s make a simple macro that jumps to an address from the assembly-time stack:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: branch,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( a-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;t literal, t jump, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;jump to a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;We still need a conditional branch with which to build control flow primitives. Having only conditional move at our disposal, we can do this by essentially unconditionally branching, but&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;either to a given address or just to the next address:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: 0branch,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( ab-m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;t literal, address 1+ t cmove, t jump, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;if a = 0, jump to b&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;That reminds me! We don&amp;rsquo;t have a no-op instruction. We can build this effectively as &amp;ldquo;branch never&amp;rdquo;. An old assembler I used to use for the 6809E actually did have a BNE instruction as a silly no-op. We could do it as a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;0 0 0 add,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; or something else but whatever:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: noop,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;( -m )&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;address 1+ t literal, t jump, ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;skip&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Unconditional &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; and conditional &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;0branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; can be used to create all types of control flow as we built back &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2011/02/04/if-else-then.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;when we did IF, ELSE and THEN&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-family: Calibri;" face="Calibri" color="#000000"&gt; and later &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2011/02/06/loopty-do-i-loop.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri;" face="Calibri" color="#0000ff"&gt;when we built BEGIN/UNTIL, WHILE/REPEAT, LEAVE, DO/LOOP&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Labels&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;So far our assembler give us mnemonics for the UM instruction set, it gives us extremely powerful macros in the form of full Forth at assembly-time, and we&amp;rsquo;ve built enough up to really get started coding for this machine. The one thing missing that assemblers provide is labeling. All of our branching is to addresses on the assembly-time stack but how do they get there?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;We can calculate the current address relative to the origin of the image very easily: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: address&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;target @ ORIGIN - ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Given this, we can mark positions in the code by pushing the current address to the stack just before emitting the next instruction. We can then proceed with the code; leaving the address for much later use by a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; or &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;0branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt;. For example infinite looping words could easily be defined:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: loop&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;address ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: again,&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;branch, ;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;If you&amp;rsquo;d rather, you can store the address in a variable: &lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="font-size: 11pt;"&gt;VARIABLE my-label address my-label !&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;This all works great for branches &lt;i style="mso-bidi-font-style: normal;"&gt;back &lt;/i&gt;to previous addresses. But what about branches that make &lt;i style="mso-bidi-font-style: normal;"&gt;forward&lt;/i&gt; references to future addresses? We can handle this similar to a single-pass assembler by tracking the forward branch points and later patching the address once it&amp;rsquo;s known:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;: forward&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;target @ 0 ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;leave target address on stack for later patching&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;: tohere&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;DUP&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;@ address OR&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;SWAP ! ;&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;\&lt;span style="mso-spacerun: yes;"&gt; &lt;/span&gt;patch previous forward branch,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Remember that the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; and &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;0branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; macros begin with a &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;t literal,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; representing the address. The phrase &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;forward branch,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; for example will push the current target address to the stack (notice, not the UM address relative to the image origin, but the actual location of the &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;literal,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; instruction being assembled) and then will emit a branch (temporarily to zero). The zero is later patched to the real address with &lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;tohere&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: 11pt;"&gt; which goes back and ORs in the current address at this point.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;That&amp;rsquo;s it; single-pass label resolution for both forward and backward references.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;Summary&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt; &lt;br /&gt;In 15 lines of F# and 40 lines of Forth we&amp;rsquo;ve built a pretty much complete single-pass macro assembler for the UM-32. It is very Forth-like; using the stack for anonymous labels (or named variables if you like) and using the full facilities of Forth for assembly-time macros.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height: 13pt; margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;&lt;a href="http://transforth.codeplex.com"&gt;Have fun with it!&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="line-height: 15pt; margin: 10pt 0in 0pt; padding: 0px;"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;&lt;span style="color: #4f81bd; font-size: 13pt;" color="#4f81bd"&gt;More to come...&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="line-height: 13pt; mso-ansi-language: en-us; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-bidi-language: ar-sa;"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="color: #000000; font-size: 11pt;" color="#000000"&gt;We&amp;rsquo;ll be using it to build a Forth inner interpreter so that we can move away from this low-level assembly. However, we will always have the ability to define new primitive Forth words in terms of raw assembly. This ability is one of the things that give Forth amazing breadth; abstracting far from the machine while never losing the option of dipping back down to bare metal.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;&lt;a title="Next &gt;" href="http://blogs.msdn.com/b/ashleyf/archive/2012/01/07/introducing-the-cult-of-the-bound-variable-to-the-cult-of-forth.aspx"&gt;Next &amp;gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10213301" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/F_2300_/">F#</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/TransForth/">TransForth</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/Forth/">Forth</category><category domain="http://blogs.msdn.com/b/ashleyf/archive/tags/VMs/">VMs</category></item></channel></rss>