{"id":15,"date":"2008-12-12T20:14:30","date_gmt":"2008-12-13T04:14:30","guid":{"rendered":"http:\/\/www.mirandabanda.org\/cogblog\/?p=15"},"modified":"2008-12-12T21:42:01","modified_gmt":"2008-12-13T05:42:01","slug":"simulate-out-of-the-bochs","status":"publish","type":"post","link":"http:\/\/www.mirandabanda.org\/cogblog\/2008\/12\/12\/simulate-out-of-the-bochs\/","title":{"rendered":"Simulate Out Of The Bochs"},"content":{"rendered":"<p><body>When I worked in Paris for a short time I was hugely amused to hear the colloquialism &quot;Quesque c&#8217;est ta bo&icirc;te?&quot;, &quot;What&#8217;s your job?&quot; or &quot;what&#8217;s your company?&quot;, which translates literally as &quot;What&#8217;s your box&quot;?  I know we all love working but occasionally &quot;box&quot; describes one&#8217;s lot perfectly, hein?<\/p>\n<p>Anyway, if I&#8217;m to implement the Cog JIT in Smalltalk and use the Slang translation-to-C route to generate the C source of the production VM I need a way of emulating the JIT&#8217;s target processor from within Smalltalk.  Using the real processor ties the development platform to one&#8217;s real hardware and potentially leaves one open to random crashes of the entire IDE if one generates incorrect code.  Communicating through a ptrace-like interface to another process would mean the existing InterpreterSimulator&#8217;s memory, a large Bitmap instance, would have to be replaced and mapped onto the remote process, and still one is tied to the available hardware.  A software simulator is much more attractive.<\/p>\n<p>Searching for such a beast I stumbled on <a href=\"http:\/\/bochs.sourceforge.net\">Bochs<\/a>, a C++ implementation of an entire x86-based PC that is capable of running Windows or Linux and emulating a sound blaster, and more.  At first I thought of trying to translate the code into Smalltalk but wiser heads than mine, specifically my colleague Josh Gargus, pointed out that this would be a bad idea (complex, error-prone and time consuming) and that I&#8217;d be better off using the actual C++ code, wrapping it in some kind of primitive interface.<\/p>\n<p>The first thing I needed was an interface to Bochs&#8217; C++ cpu object and that means Alien.  <a href=\"http:\/\/wiki.squeak.org\/squeak\/uploads\/6100\/Alien%20FFI.pdf\">Alien<\/a> is a minimal <a href=\"http:\/\/en.wikipedia.org\/wiki\/Foreign_function_interface\">FFI<\/a> I wrote for the Newspeak team at Cadence, under <a href=\"http:\/\/gbracha.blogspot.com\/2008\/12\/unidentified-foreign-objects-ufos.html\">the direction of Gilad Bracha<\/a>.  The part I need for Bochs is the external data modelling code.  To quote from the class comment:<\/p>\n<p><font size=\"3.0\" face=\"'Times'\">Aliens represent ABI (C language) data.  They can hold data directly in their bytes or indirectly by pointing to data on the C heap.  Alien instances are at least 5 bytes in length. The first 4 bytes of an Alien hold the size, as a signed integer, of the datum the instance is a proxy for.  If the size is positive then the Alien is &quot;direct&quot; and the actual datum resides in the object itself, starting at the 5th byte.  If the size is negative then the proxy is &quot;indirect&quot;, is at least 8 bytes in length and the second 4 bytes hold the address of the datum, which is assumed to be on the C heap.  Any attempt to access data beyond the size will fail.  If the size is zero then the Alien is a pointer, the second 4 bytes hold a pointer, as for &quot;indirect&quot; Aliens, and accessing primitives indirect through the pointer to access data, but no bounds checking is performed.<\/p>\n<p>When Aliens are used as parameters in FFI calls then all are &quot;passed by value&quot;, so that e.g. a 4 byte direct alien will have its 4 bytes of data passed, and a 12-byte indirect alien will have the 12 bytes its address references passed.  Pointer aliens will have their 4 byte pointer passed.  So indirect and pointer aliens are equivalent for accessing data but different when passed as parameters, indirect Aliens passing the data and pointer Aliens passing the pointer.<\/font><\/p>\n<p>Once I had the Alien framework in the VM I needed to generate an interface to the Bochs cpu.  Here&#8217;s the program that does that:<br \/>\n&#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;- printcpu.c &#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;-<br \/>\n<font face=\"'Courier'\">\/*<br \/>\n% g++ -I.. -I..\/cpu -I..\/instrument\/stubs -Wno-invalid-offsetof @ -o #<br \/>\n *\/<\/p>\n<p>#include &lt;stddef.h&gt;<br \/>\n#include &lt;bochs.h&gt;<br \/>\n#define NEED_CPU_REG_SHORTCUTS<br \/>\n#include &lt;cpu.h&gt;<\/p>\n<p>static char buf[10];<\/p>\n<p>char *<br \/>\nlower(char *s)<br \/>\n{<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 0; i &lt; strlen(s); i++)<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[i] = tolower(s[i]);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[i] = 0;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return buf;<br \/>\n}<\/p>\n<p>int<br \/>\nmain()<br \/>\n{<br \/>\n#define stoffsetof(type,field) (offsetof(type,field)+1)<br \/>\n#define print(r,n) \\<br \/>\nprintf(&quot;!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem %d\/%d\/%d %d:%d&#8217;!\\r&quot;\\<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;%s\\r\\t^self unsignedLongAt: %d! !\\r&quot;, m,d,y,h,i, lower(#r), \\<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\\<br \/>\nprintf(&quot;!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem %d\/%d\/%d %d:%d&#8217;!\\r&quot;\\<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;%s: anUnsignedInteger\\r\\t^self unsignedLongAt: %d put: anUnsignedInteger! !\\r&quot;, m,d,y,h,i, lower(#r), \\<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\\<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t nowsecs = time(0);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct tm now = *localtime(&amp;nowsecs);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int m = now.tm_mon + 1; \/* strange but true *\/<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int d = now.tm_mday;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int y = now.tm_year + 1900;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int h = now.tm_hour;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i = now.tm_min;<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;\\&quot;Hello world!!\\&quot;!\\r&quot;);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;!BochsIA32Alien class methodsFor: &#8216;instance creation&#8217; stamp: &#8216;eem %d\/%d\/%d %d:%d&#8217;!\\r&quot;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;dataSize\\r\\t^%d! !\\r&quot;, m,d,y,h,i, sizeof(BX_CPU_C));<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem %d\/%d\/%d %d:%d&#8217;!\\r&quot;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;eflags\\r\\t^self unsignedLongAt: %d! !\\r&quot;, m,d,y,h,i,<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stoffsetof(BX_CPU_C,eflags));<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EAX,BX_32BIT_REG_EAX);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EBX,BX_32BIT_REG_EBX);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(ECX,BX_32BIT_REG_ECX);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EDX,BX_32BIT_REG_EDX);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(ESP,BX_32BIT_REG_ESP);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EBP,BX_32BIT_REG_EBP);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(ESI,BX_32BIT_REG_ESI);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EDI,BX_32BIT_REG_EDI);<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(EIP,BX_32BIT_REG_EIP);<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br \/>\n}<\/font><br \/>\n&#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;- printcpu.c &#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>xc is an old unix program written by David MacKenzie from 1989 that I love.  You say<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xc printcpu.c<br \/>\nand it evaluates<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g++ -I.. -I..\/cpu -I..\/instrument\/stubs -Wno-invalid-offsetof printcpu.c -o printcpu<br \/>\ngrabing the instructions from the comment and the front of printcpu.c.  Say xc again and it remembers which file you last ran.  No need for a makefile for simple one-file programs.  Neat.<\/p>\n<p>printcpu.c then produces output looking like<br \/>\n&#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;- BochsIA32Alien.st &#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;-<br \/>\n<font size=\"3.0\" face=\"'Times'\">&quot;Hello world!!&quot;!<br \/>\n!BochsIA32Alien class methodsFor: &#8216;instance creation&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\ndataSize<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^18000! !<br \/>\n!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\neflags<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^self unsignedLongAt: 513! !<br \/>\n!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\neax<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^self unsignedLongAt: 469! !<br \/>\n!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\neax: anUnsignedInteger<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^self unsignedLongAt: 469 put: anUnsignedInteger! !<br \/>\n!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\nebx<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^self unsignedLongAt: 481! !<br \/>\n!BochsIA32Alien methodsFor: &#8216;accessing&#8217; stamp: &#8216;eem 12\/11\/2008 18:46&#8217;!<br \/>\nebx: anUnsignedInteger<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^self unsignedLongAt: 481 put: anUnsignedInteger! !<br \/>\n<\/font>etc&#8230;<br \/>\n&#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;- BochsIA32Alien.st &#8212;&#8212;&#8212;&#8212;-8&lt;&#8212;&#8212;&#8212;&#8212;-<br \/>\nwhich files straight into Squeak once I&#8217;ve defined the class:<\/p>\n<p><font color=\"#000000\">Alien <\/font><font color=\"#000080\">variableByteSubclass:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">#BochsIA32Alien<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">instanceVariableNames:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8221;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">classVariableNames:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8221;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">poolDictionaries:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8221;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">category:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;Cog-Processors&#8217;<\/font><\/font><\/p>\n<p>With a little bit of fiddling pairing away the bits of Bochs I don&#8217;t need I&#8217;ve got down to just the CPU.  Here&#8217;s the plugin that interfaces to it:<\/p>\n<p><font color=\"#000000\">SmartSyntaxInterpreterPlugin <\/font><font color=\"#000080\">subclass:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">#BochsIA32Plugin<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">instanceVariableNames:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8221;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">classVariableNames:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;BaseHeaderSize BytesPerOop&#8217;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">poolDictionaries:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8221;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">category:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;Cog-ProcessorPlugins&#8217;<\/font><\/font><\/p>\n<p><font color=\"#000000\"><i>BochsIA32Plugin methods for primitives<\/i><\/font><br \/>\n<b>primitiveNewCPU<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"> <\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">var:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">#cpu<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">type:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;void *&#8217;<\/font><\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitive:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;primitiveNewCPU&#8217;<\/font><\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">parameters:<\/font><font color=\"#000000\"> #().<\/p>\n<p>\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">cCode:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;newcpu()&#8217;<\/font><\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">inSmalltalk:<\/font><font color=\"#000000\"> [<\/font><font color=\"#800000\">0<\/font><font color=\"#000000\">].<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ifTrue:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">interpreterProxy <\/font><font color=\"#000080\">primitiveFail<\/font><font color=\"#000000\">].<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interpreterProxy<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">pop:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">1<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">thenPush:<\/font><font color=\"#000000\"> (interpreterProxy <\/font><font color=\"#000080\">positive32BitIntegerFor:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008000\">(<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">cCoerceSimple:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">to:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;unsigned long&#8217;<\/font><\/font><font color=\"#008000\">)<\/font><font color=\"#000000\">)<\/p>\n<p><\/font><font color=\"#008080\">&quot;cpuAlien &lt;BochsIA32Alien&gt;&quot;<\/font><font color=\"#000000\"> <\/font><b>primitiveSingleStepIn:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">memory<\/font><font color=\"#000000\"> <\/font><font color=\"#008080\">&quot;&lt;Bitmap|ByteArray|WordArray&gt;&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Single-step the cpu using the argument as the memory.&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpuAlien<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">maybeErr<\/font><font color=\"#000000\"> <\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">var:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">#cpu<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">type:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;void *&#8217;<\/font><\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">cpuAlien<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitive:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;primitiveSingleStepIn&#8217;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">parameters:<\/font><font color=\"#000000\"> #(<\/font><font color=\"#000080\">WordsOrBytes<\/font><font color=\"#000000\">)<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">receiver:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">#Oop<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">startOfData:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpuAlien<\/font><font color=\"#000000\">) <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ifTrue:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">interpreterProxy <\/font><font color=\"#000080\">primitiveFailFor:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>PrimErrBadReceiver<\/b><\/font><font color=\"#000000\">].<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">maybeErr<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">singleStep:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">cpu<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">In:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">memory<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">Size:<\/font><font color=\"#000000\"> (interpreterProxy <\/font><font color=\"#000080\">byteSizeOf:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">memory<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">cPtrAsOop<\/font><font color=\"#000000\">).<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">maybeErr<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">~=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ifTrue:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">interpreterProxy <\/font><font color=\"#000080\">primitiveFailFor:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>PrimErrInappropriate<\/b><\/font><font color=\"#000000\">].<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^<\/font><font color=\"#404040\">cpuAlien<\/font><\/p>\n<p><font color=\"#000000\"><i>BochsIA32Plugin methods for alien support<br \/>\n<\/i><\/font><b>sizeField:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Answer the first field of rcvr which is assumed to be an Alien of at least 8 bytes&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">inline:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">true<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">+<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>BaseHeaderSize<\/p>\n<p><\/b><\/font><b>startOfData:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\"> <\/font><font color=\"#008080\">&quot;&lt;Alien oop&gt; ^&lt;Integer&gt;&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Answer the start of rcvr&#8217;s data.  For direct aliens this is the address of<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the second field.  For indirect and pointer aliens it is what the second field points to.&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">inline:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">true<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">(<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">sizeField:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\">) <\/font><font color=\"#000080\">&gt;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">ifTrue:<\/font><font color=\"#000000\"> [<\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">+<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>BaseHeaderSize<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">+<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>BytesPerOop<\/b><\/font><font color=\"#000000\">]<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">ifFalse:<\/font><font color=\"#000000\"> [<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">rcvr<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">+<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>BaseHeaderSize<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">+<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\"><b>BytesPerOop<\/b><\/font><font color=\"#000000\">]<\/font><\/p>\n<p>BochsIA32Alien hooks up to this code via<\/p>\n<p><font color=\"#000000\"><i>BochsIA32Alien class methods for instance creation<br \/>\n<\/i><\/font><b>new<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">atAddress:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitiveNewCPU<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32Alien class methods for primitives<\/i><\/font><br \/>\n<b>primitiveNewCPU<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Answer the address of a new Bochs C++ class bx_cpu_c\/BX_CPU_C x86 CPU emulator instance.&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<\/font><font color=\"#008000\"><b>primitive:<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;primitiveNewCPU&#8217;<\/font><\/font><font color=\"#000000\"> <\/font><font color=\"#008000\"><b>module:<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;BochsIA32Plugin&#8217;<\/font><\/font><font color=\"#000000\">&gt;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitiveFailed<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32Alien methods for execution<\/i><\/font><font color=\"#000080\"><br \/>\n<\/font><b>singleStepIn:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">aMemory<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">result<\/font><font color=\"#000000\"> <\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">result<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitiveSingleStepIn:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">aMemory<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">result<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">~~<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ifTrue:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">error:<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;eek!&#8217;<\/font><\/font><font color=\"#000000\">]<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32Alien methods for primitives<br \/>\n<\/i><\/font><b>primitiveSingleStepIn:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">memoryArray<\/font><font color=\"#000000\"> <\/font><font color=\"#008080\">&quot;&lt;Bitmap|ByteArray&gt;&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Single-step the receiver using the argument as the store.&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<\/font><font color=\"#008000\"><b>primitive:<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;primitiveSingleStepIn&#8217;<\/font><\/font><font color=\"#000000\"> <\/font><font color=\"#008000\"><b>module:<\/b><\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;BochsIA32Plugin&#8217;<\/font><\/font><font color=\"#000000\">&gt;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">primitiveFailed<\/font><\/p>\n<p>where<font color=\"#000000\"> <\/font><font color=\"#000080\">atAddress:<\/font><font color=\"#000000\"> <\/font>is part of Alien&#8217;s standard instance creation facilities.<\/p>\n<p>And lo and behold the following test passes, yeah!!<\/p>\n<p><font color=\"#000000\"><i>BochsIA32AlienTests methods for tests<\/i><\/font><br \/>\n<b>testCPUID<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">vendorString<\/font><font color=\"#000000\"> <\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">eip:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">eax:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\">. <\/font><font color=\"#008080\">&quot;get vendor identfication string&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">singleStepIn:<\/font><font color=\"#000000\"> (ByteArray <\/font><font color=\"#000080\">with:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r0F<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">with:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rA2<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">with:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r90<\/font><font color=\"#000000\">) <\/font><font color=\"#008080\">&quot;cpuid;nop&quot;<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">assert:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">eip<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">2<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">assert:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">eax<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">~=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">vendorString<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> (ByteArray <\/font><font color=\"#000080\">new:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">12<\/font><font color=\"#000000\">)<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">1<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">put:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ebx<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">bigEndian:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">false<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">5<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">put:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">edx<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">bigEndian:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">false<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">9<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">put:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">ecx<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">bigEndian:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">false<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">asString<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">assert:<\/font><font color=\"#000000\"> (<\/font><font color=\"#404040\">vendorString<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;GenuineIntel&#8217;<\/font><\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">or:<\/font><font color=\"#000000\"> <\/font><font color=\"#008000\">[<\/font><font color=\"#404040\">vendorString<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800080\"><font size=\"0.9\" face=\"'Accuny'\">&#8216;AuthenticAMD&#8217;<\/font><\/font><font color=\"#008000\">]<\/font><font color=\"#000000\">)<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32AlienTests methods for accessing<\/i><\/font><font color=\"#000000\"><br \/>\n<\/font><b>processor<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processor <\/font><font color=\"#000080\">ifNil:<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[processor <\/font><b>:=<\/b><font color=\"#000000\"> BochsIA32Alien <\/font><font color=\"#000080\">new<\/font><font color=\"#000000\">].<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">processor<\/p>\n<p>I am a happy chappie!<\/p>\n<p>A little more work figuring out that the Bochs emulation is accurate and boots the processor into real mode with 16-bit default operand sizes for the CS and SS segments and that I need to put it into protected 32-bit mode with 32-bit default operand sizes and the following works, yay!<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32AlienTests methods for tests<\/i><\/font><font color=\"#000000\"><br \/>\n<\/font><b>testNfib4<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;self new testNfib4&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">runNFib:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">assert:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">eip<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">nfib<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">size<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">assert:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">eax<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">=<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">benchFib<\/font><font color=\"#000000\"><br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32AlienTests methods for execution<\/i><\/font><font color=\"#000000\"><br \/>\n<\/font><b>runNFib:<\/b><font color=\"#000000\"> <\/font><font color=\"#000080\">n<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;Run nfib wth the argument. Answer the result.&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">finalSP<\/font><font color=\"#000000\"> <\/font><font color=\"#808080\">|<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> ByteArray <\/font><font color=\"#000080\">new:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4096<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">withAll:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">nopOpcode<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">finalSP<\/font><font color=\"#000000\"> <\/font><b>:=<\/b><font color=\"#000000\"> <\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">size<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">&#8211;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4<\/font><font color=\"#000000\">. <\/font><font color=\"#008080\">&quot;Stop when we return to the nop following nfib&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">replaceFrom:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">1<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">to:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">nfib<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">size<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">with:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">nfib<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">asByteArray<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">startingAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">1<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4093<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">put:<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">n<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">bigEndian:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">false<\/font><font color=\"#000000\">; <\/font><font color=\"#008080\">&quot;argument n&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">longAt:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">4089<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">put:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">nfib<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">size<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">bigEndian:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">false<\/font><font color=\"#000000\">.  <\/font><font color=\"#008080\">&quot;return address&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">eip:<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">0<\/font><font color=\"#000000\">;<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#000080\">esp:<\/font><font color=\"#000000\"> (<\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">size<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">&#8211;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">8<\/font><font color=\"#000000\">). <\/font><font color=\"#008080\">&quot;Room for return address and argument n&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">singleStepIn:<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">memory<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><font color=\"#800000\">self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">esp<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">~=<\/font><font color=\"#000000\"> <\/font><font color=\"#404040\">finalSP<\/font><font color=\"#000000\">] <\/font><font color=\"#000080\">whileTrue<\/font><font color=\"#000000\">.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^self<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">processor<\/font><font color=\"#000000\"> <\/font><font color=\"#000080\">eax<br \/>\n<\/font><br \/>\n<font color=\"#000000\"><i>BochsIA32AlienTests methods for accessing<\/i><\/font><font color=\"#000080\"><br \/>\n<\/font><b>nfib<\/b><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;long fib(long n) { return n &lt;= 1 ? 1 : fib(n-1) + fib(n-2) + 1; }<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as compiled by Microsoft Visual C++ V6 (12.00.8804) cl \/O2 \/Fc&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;| bat nfib ip |<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bat := BochsIA32AlienTests new.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nfib := bat nfib asByteArray.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip := 0.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20 timesRepeat:<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[bat processor disassembleInstructionAt: ip In: nfib into:<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[:da :len|<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Transcript nextPutAll: da; cr; flush.<br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip := ip + len]]&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#800000\">^<\/font><font color=\"#000000\">#(<\/font><font color=\"#008080\">&quot;00000&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r56<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;push    esi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00001&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r8B<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r74<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r24<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r08<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  <\/font><font color=\"#008080\">&quot;mov     esi, DWORD PTR _n$[esp]&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00005&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r83<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFE<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r01<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;cmp     esi, 1&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00008&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r7F<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r07<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;jg      SHORT $L528&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0000a&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rB8<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r01<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r00<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r00<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r00<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;mov     eax, 1&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/font><font color=\"#008080\">&quot;0000f&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r5E<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;pop     esi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00010&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rC3<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;ret     0&quot;<\/font><font color=\"#000000\"><br \/>\n<\/font><font color=\"#008080\">&quot;<br \/>\n$L528:&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00011&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r8D<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r46<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFE<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;lea     eax, DWORD PTR [esi-2]&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00014&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r57<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;push    edi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00015&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r50<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;push    eax&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00016&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rE8<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rE5<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\">   <\/font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#008080\">&quot;call    _fib&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0001b&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r4E<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;dec     esi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0001c&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r8B<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rF8<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;mov     edi, eax&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0001e&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r56<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;push    esi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0001f&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rE8<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rDC<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rFF<\/font><font color=\"#000000\">   <\/font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=\"#008080\">&quot;call    _fib&quot;<\/font><font color=\"#000000\"><br \/>\n\t\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00024&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r83<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rC4<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r08<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;add     esp, 8&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;00027&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r8D<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r44<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r07<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r01<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;lea     eax, DWORD PTR [edi+eax+1]&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0002b&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r5F<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;pop     edi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0002c&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16r5E<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;pop     esi&quot;<\/font><font color=\"#000000\"><br \/>\n\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;0002d&quot;<\/font><font color=\"#000000\"> <\/font><font color=\"#800000\">16rC3<\/font><font color=\"#000000\">\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/font><font color=\"#008080\">&quot;ret     0&quot;<\/font><font color=\"#000000\">)<\/p>\n<p>I&#8217;m ready to start work on the JIT.  No more machine-level debugging for quite a while I hope \ud83d\ude42<br \/>\n<\/font><\/p>\n<div class=\"pdf24Plugin-cp\"> \t<form name=\"pdf24Form0\" method=\"post\" action=\"https:\/\/doc2pdf.pdf24.org\/wordpress.php\" target=\"pdf24PopWin\" onsubmit=\"var pdf24Win = window.open('about:blank', 'pdf24PopWin', 'resizable=yes,scrollbars=yes,width=600,height=250,left='+(screen.width\/2-300)+',top='+(screen.height\/3-125)+''); pdf24Win.focus(); if(typeof pdf24OnCreatePDF === 'function'){void(pdf24OnCreatePDF(this,pdf24Win));}\"> \t\t<input type=\"hidden\" name=\"blogCharset\" value=\"Cw1x07UAAA==\" \/><input type=\"hidden\" name=\"blogPosts\" value=\"MwQA\" \/><input type=\"hidden\" name=\"blogUrl\" value=\"yygpKbDS1y8vL9fLzSxKzEtJTAIRevlF6frJ+elJOfnpAA==\" \/><input type=\"hidden\" name=\"blogName\" value=\"c85PV3DKyU8HAA==\" \/><input type=\"hidden\" name=\"blogValueEncoding\" value=\"gzdeflate base64\" \/><input type=\"hidden\" name=\"postId_0\" value=\"MzQFAA==\" \/><input type=\"hidden\" name=\"postTitle_0\" value=\"C87MLc1JLElV8C8tUfBPUwjJSFVwyk\/OKAYA\" \/><input type=\"hidden\" name=\"postLink_0\" value=\"FcRRCoAgDADQE82ZX9Ft1GwTtIVOdv0QHo9VvwvRzFyvI753TDsngzALpSaEwfsTj7DN2leLWkCWgjygXCBJ5ok\/\" \/><input type=\"hidden\" name=\"postAuthor_0\" value=\"S0zJzcwDAA==\" \/><input type=\"hidden\" name=\"postDateTime_0\" value=\"MzIwsNA1NAIiBSMDK0MjK2MDAA==\" \/><input type=\"hidden\" name=\"postContent_0\" value=\"7T3rets2lr93ngJJphm7sXWLkyp24q6vrbpt4o3cZvbLxR9EQhIakmAB0LI6mfmxb7G\/9hX3EfYcgKRkRdaF1DVRL4lNEgfAueOcA+B5ePi8Idzu4Zs2C0iNdIT8yFzCA3JBJVekKSShRLWF1ERzn+EnVJF21GJel1A\/UvC1FqTNqCS6zYgjPE\/8EXHqceWTh39EQh\/8Z8TUHxG8e\/igWil\/d8AUAKOkIR5yh0vnQLPv7Yc7cYM3barjbxXpikiS30Uj\/obAiOxPnc++coQf0qCbQuu0udMmWtJAeVQzRTyumaQeDl3d2VdD3NhX3xOY7sdAdEiHEWhFPHHNDIp40CKNSBPhOFRxERiQtlHamrhMOZI3oFsRsLQLT2gSMtlkjva6O4A4Hnz\/vBge\/uV5eHgUdDsUHvImqcUNfMQu90OP+SzQBsUnokV+ql0ikeo+9Kyp95HQwCVADPNB3aMwvmTaMLxdLXZPiBSRZgiuxQLAgrYfnxAFk3YYEU3zeyiFGznYivz2C8w\/YEBhClTv4hfMjxAkgodvYRTpvDSVLaaxucOUAiI1pfBJh+t2\/zgLhPyqkuaSUa+vgeaAKnzusmvmidBMOITugAkNGvrRaNq2qXQ7VDIz+1BoaMANKTxGry3eiQiBsaExYMOFATmSqja+srPFFtC+dnqGSMfvE+QowK8jpAQ6AV+5DEZ+Inw\/CriTIAAQ2moDbkJAtcN2Pf6RQSPgsCb8in3SQEAnMpkjsE7kucRnNLCd33BlQNWwUSgZ\/FnnBsNCpjP1mS8kMAUlHqKYHHPt0xA6UpoGDtuJobZhxthnA\/EKWHOQbIAW+DaEH0UA7yzSfUBUMqQd8w2MArgbZw8iD2QwIo0f02vKPdrwWIpqQMMRcExTG7yrZLTY0I9A2GCs0EwjRjS\/ZoWEteugIJw2ThZVisJPQQMwCqqgBv1HPnSCoyTPKWlL1nxxv611uF8sNoTTVgXLo9C0xQoB0\/cPj\/Hx8yI9RMScPHrUkxHD8UhfwHJM3pvq090GRVV1cQLzohqH69DQzAy+lFEQ4NDecOCRjkIV8zMPohuDnB7LUxQVeNLwYNhMWtzhhBEpmjS5NLPRbeQLbVhMdg2riJ4SirWka1hF9Ekw6pMOV8AuoExdlASYgM8DoLAKmcObwHjI237XKFlGW6BSfxKqTX4AvoiAlKFA7gMsRtrOEmQvYTpgC8A3BdXuMkq2UFN67GaHMCmF3AVuCKwUGSXviEBF0HVr2z5DWIlCMqAaTAMCYIZNUDqJOAPFIxBKJAbODxhTAu\/hW65RWSkBoEF1uoiZUHKfI4f0JCbllUsAZpGpDcdYJQQTQ9MDSLklY4YR4rHZvsOIiMbvKLfp4FHkFDnyOAuAVoMs1uEfeQEtFP1YAA4r2h+LUegJIETxablUKpq231RK5+e1Qug27x+aB8iAyEsUCcWBlJ\/Bhg4RPIggpwY4\/lY8B6bhreCqGQVG1V6lU7p\/CD0YsGBpJUoqygui9yXrAB\/Qj0Qz6oOIkRPqMqMAgCeBGIM9txogg21aaHiipUA5FoDmxUqpVC2WK0VQYy4KRxOEfbdpR7NrsaZ2o6ZQhbb2vfuHRh1zVIKxUP0A+sAlxwY0DhPQieQKqdSJscABG6oYbWL0HEwObCRxKZh9H3jD85CusVq9FAQNJrMWw4gHCJhCa47yvJ+wxfMmKDFQOX+yF\/cfF0r3CeLrxf2\/XQLLqr\/FFEHLAJpUoe04Oq6RrROC1jCiLbZt+rcDBhkCRmoLkAwzKDtHkC5uVDMHL6CLNgA1W5C+bHStjMUybVqKIDajILUhKgIcRaqdgTWMPkSLBPz8JAYLvXgsaOl2gfSYfS\/p06guC8eMEOHjtHfQawElBLQyPppmLdRCsSmD0UQWfUnnljNBtm+6SBQYXK2ZAsOXoVBWBjV6f\/gmHn3iHNmZx\/6MlaZUzm1\/gGrgJBXjLRE8rhXzmqC4wCuwqtO6Lk9020zy86EErEVvD8WOOx1KQobEt8O5JWitDqI1HatioMvcFLUpOqnrSrTI\/bhL\/EWErED\/WTMI2u4zEgddNHHMD7Wx8o4x7oYbGqwrgh7FQKGDYW2CEf18xn8yKYYgnsZqHAh71wT6PqHWRR+GIgsytvB2jEiJVPGqlLNTV8ag3YIemNiOMU8BoAMtIMhmmznGC0YuAs0FHhpzUwVuFhOxOCL\/m1UCDBW0BPXRyzGkAkVH0KQpiwV0sPFjO\/oQSACNQOKuqRexhOpKWIXOCq0C4MGiJZZegIA4NCg33hBwYb9QGQJZuDFSSLmyawCkmBgEgRgpVxL2AngJ44CmZZIZCbcggcAXMeqonfktKKBR4sEmCE6b1UVf\/8aRvQUGccJgRQV4QKVmVmQpNS3TAWlc3jQDAh8CkRmj7xbOd3rdxLTBrxLrbSD1dz\/km\/gV0BlV8WFC7leoa2owVbePlZvYLa6VEtWQriasXKWLkEGDjt9a8wGWHNDzI0yrt8qwiqEFwC0juMIsGiiYiYYkxcO\/mE8rB0P\/2q0+9PTByC9QPgKNPTskJ6h4QNZsxbbqBPxYziRYq+K38ftvSAu8lt1aoWD+KKL\/Yn5ANS4jNIFFcJAbiuy+CcQuD4ARuLsLvpdiGtj638muIA9iYOTbYkKVB7B+8SLwM3GgSrsuaxbaD1v6IP701nvrZd96Dd+D80lenp2dXp1c\/Hr1+uyHq\/qPr15fnvx6WR8GA5FmIcQjUOiLO6ArKJjTqPm2XHqfvjMPExR4osPkln2ktuOH\/4j\/\/reHQUOFB5P\/CfQj\/CBra5SvLU5ekNIB4WZeYMUkiN6W2oYnjx5tZ4U8dQPEGX8PQ9HCYkjBr9uZZ5aCK2UGAUvUSAZIzATEPxOCAtbjRz7lwdYgFRN2Ujph3C3dDdkOOKCeu022hj19VN4eaG2Ec0vuBNvkXfzKPGpuWQNxzyiO2tHjilVCoPjawlXgbu9baX56kOrOZM0AXOqH6WvGfPKNWzT\/wQ\/737jxd\/feSdvHu6zIs82\/Ue\/kO\/0B\/SNw3K0v97MIWkd6H\/q7R9J+doi\/4+50d9o7fIdY+j+Q2zskc\/99qD\/+uxHpkx3QwleStd4G7wsuKGu3wOTN9vbB+iJ3H+zJrzFaa9ZDHoVvEkZ6SJOVIUMsXFN3gsv4K3TYOuBAKlQh8GCrlF15oClCT9FHmADvW0+A72agPgQSH8Q9Ze8AtbYPgAFQQftXPjjdj0j5gBS\/Rf0LSzhm\/BwYBkMjl6MXt68Xl3Zzjbjbg9XFEDgM+VmplAtkuweyDd5CLli8b6o8OMjMTrf0wDv714+wihcYDffce\/fiZ6nUZOeDkSrHBgaGKJ50yetIZgKAWRVQPv2DTnQd1ndG5dytzXEJ2Cf+IOmzocwiNHQ+BLGmR1tZLOAsta0dRG6sb50d\/X0HgD6uHNcujXsMD3Iy\/tbZ8SDM4\/wwTwZhnuSHeToI8zQ\/zPrFAMz6RX58DsI8zg+zXhscZy0\/PgdhnuaHWRuce+0iB9PHzn+pz\/W3YYCVW3jHM7xxTEAtIBg0iwJ+k4YOOpJrDQqy0SWn9Jq75Bfq\/AcL\/uRxELr8rPosTnuYpG+BkP8SEVG0m5UiMJbeBGMgGG3hmjCMcGHGMSvsfPGDPrzvivS3eCyArUYS\/bHwTCZA9cXqbZQ+jbjCi0CTW3AxxkW7BFBAW7A2JPG8JfOZ38BgoI27NrnHMANPML2G+Vpo91L0cgqU+PQjM1+ZHKLJ+GHWctc8i2mrsBX4AGkwsm9+Js5oE9wYEow0eP9AX2EimZi+nREr3zbDBZjNLENJd2dAhjhmsWMQA5iHP1WuFMtlk1gi5er+3tPEYYi7TFyirMz9oVwtlUrgFdwxhWw+zphBWw8h85CHujZPyo8XPQt6M9sp7D19tvgpDFmez3xWd4cBFjrZxqzpVS0vfgrzp1e1PJZesWvCtKk5e5z6LKuq2XsWUJlwB8cCElsgYooRwMxhjiXG9jXWSGFA1O2lywfS5I7whHxx\/0HJ\/BMnx0nisX32SRU+uaaSY0XMcVezetRIoN7RAoGOhvfgNrJGQsrKISMHkBix3+KJvaRgJrPMqBoD7Le\/pcKz1P4eOU4UdNEAA30q5XRUC5+xodnXM91QCO+UG48U5vyl0xaWCC0hu3OfJGj6E9HavUgKM5PqqoGZJ7l+juUWWFmrwQlvcOP7N7nrmhKfkHJp6j+wfhR1VQOT6PCFzfDWiJu6ltp6+n06riUwv9sx5Zu\/Ryqufr34dWhS2ItaJtFMdS+drEzxrB6jGus+lbreDTS96SvEvLAAR5JEzVRL2h43avKLVJMgVMdUsR8ZdbHI909G0MyqCyZfiXC4gG306JelR618j9amd+CBHw5oicR7N5GQXknX8yI\/vB2Ve944TF+\/ZB3Qns+LjUWgu1qqGlR9yoDmvRL+C6QKo0xEmqTnGU\/WAsX1Sg5bAB54LlOSDV9Jc6y8WIRQXAvukm+n0HmFVaRVKlWLQNmACE+BuzGTSIsDx8ziwdZ2IXPiYDYy3jjcf3G37iLzpLVzItyF0DlgHcDH1vbMCMyDdIPJmPG\/HYnA0sjG72crofnUfzL1FxnpNX66Y1DevJTRGG5ZWAnhaKp+GDlI3rcYMrX4k+nDc8q9OXHL4IgWhsYx3nO4n4PXyqvBKaNdgzYLLiLVHjPPrSlZJt5+8rhyzHUcwsVw9GogZNNgNRrcwQ1Vww1bczb7TDqsbhLN+3Ncx2x4etMgj3YWi\/BNkzQc8USaIBztoFoR3R45tu008nEXDByjrWIAMbJpLMyq3U4u4baTuD5xwsVE6q\/UedDyWF2zsBbsT7vASEhgN+ln0jX9MzQTM\/v7P2F48EhK2v30RkjX\/DThJGccNesfn8XVrgJk2cxjGPVvAJetyNYC2Zi8RUph0UOeUeRpfNJyHsGrpLVPuw12JuUm\/rWJf81tdT0Fiy8x+rKcSFu\/WVhAfuaLd1KmCDWOhIPWUL2SJns2xrPYkGI4CiVzGHB4Pl37SoTzUVpbax8uNqdevGqeUk335+2DbG+CoKsaBB0byhpNfuDgCwAHPuAxdV\/HIms4egmh+Onc0WXKXmq2NwGbJZgWs4TOTLwJVtEbzN+BO6wpmm14Hk+rQaivmnOm6Zgo7IWWR2qcu7G9Cnpv6Pj\/tbHBX4ANrgU0DKUA4FSzRVvh0Wi6y1\/MU1Jmz8FSURgKqdM9FX3FZYe4lD7HY1oyx0ylcy2XFcg8ClSH2XMV7eF75sQZcxYojOqug+DSY\/nwiL6Bw+cWH+Wcib\/EA48HLE\/+Gk\/kWEL51oecE\/fsbqIcEMby7+jmj\/LppdvVxL0sSqNfRm8tRBuLneVgXiOWHBFiGoN8wEdxzn\/5eY0+dWBwliiCdItBfHIomJNbhw0qe8RufM5p71DJrEPtP\/LRaKS4z1HnA3JzmnGnHR+x2d\/afoq7IAob9bRg9TSyz635LoF7lnl+ym1M4MmeAzgnvzezeM1448wEDvYddZWraUMah0scS287zHj3ejWq4njznHqK5Sqs3Xgxa8qBtxdZA3vr20J8VCQK7Xm2eNkAHvh\/zenki7IhB3SYldlnJ3MMXZ0FrLOwfT6z8cepPrLuUx5jP6tMc7xT6tZZArfOYMlCuZXcpnWnH9x3QjolwE7xjl1zw4KZWuPmygmjK6eYnKuG12zg9tz4xow+Xp2n94nriJH1Z\/2o3c+oYZa\/Xyediy\/cyFvYRAZiRFNMpO8o6dVSNLfig8zNJeT94s1umBMZhdwn3UNHMNhlX9IqRwki\/WV+2ZO51dmBiok8vR5FblnGvAplUwMFrtkt9AQMVlg6xofnYP61PKdijdIwOWdq7pJaRJEeYx\/vTWGK3s9Mx\/e5cMO87nnUlJvK77kUlq9eOXlSmDaiplxpvG\/tq\/UnM1albrzKRXuVt8MDnTaTbAGrYq7sTWywaLPbYpL8Ba7DXCrdz8MHSCPucbx8s9C7hxR3+ZhkQ4Old2Y18WrXjhFMvMHVXDGkdkiX0fa9e1MGNi4Bwu3VMcIcvjDGN7CIqp2u0ckl1yxwhaxrPPzqq9rCkV7nuqZVXKMdHJ5rp\/fopMbBuiKF3swPKYVJnBu8d9gKHDG3WjbNFb2g2pSRvzVNfU4mSZNWw45d+m2lfuFokHijc67jDp7K0nmOKc2g\/6PKcvt\/VsqWWR3YC8vdg0CEE3D3Sp6fhN6D1EsN9ueXLzAISzqhprKh+HIoTm9WsxZ4PpG36f3YMRHPSc1MwDq5tGxlszdwMe5f9gqEyQ5AGiPS0dorlEYehdLgrbPA5TTIg4UmVrGs69rk65OXJ1+3vLgbednIyzTkevZ1y4uzkZevSV6omsBbX9\/14dY8w+55F+bT5MB+YEHEA4ZbYLyv83yZkSQQGU8nsRnNt18KlxxFePSq5s7RL6dTnLn3fqLVb6Z6iM8zd+mtYSML30rDCt\/6DNysU3sp6HHVOS+5tyrFOZ+PeUw0ZaBUZVxEZXX2LCed9jGAzR\/XCPUJJW0ahl3i4F+cpcnlo+SaIV9IhjdcfiRN3orMDUMCL4dPNsHZWmVbh4yJINzJC5IlqWY2qy2Eju8NSlFubluTjHoA3QXoeK9R+eku3mjksiaNPE1EyCQ2R7mNs9Z4I1HdwKzXiWItrFVR8WWo5vpYc6kRQMarRnl8pxt0qpmj4cXjiumg12P8YHiP6R2raSYecYA5eNq9N1uh\/iwdP5lAY7OXTd7YW0r5urkuEGvV02Gsae5PRsHLc97I43TvbRIEX1lKKOfkA5CXnLtONyy3hjmpF3NTMmNCCyxw2udjeG62Rm2yLRpDDVtPI2cr5g2WVWP7OgoIijbpgHfRX1FbIH27vWyF\/Voe1Zz5gKkEQJMH1KtfrNcmlGlmPW4RsZCM7F7p2dOcZTdHnrfmmjoQ4asQ9wIvIZU\/FZtn2beUWyAndiXGHD2BcZLywfx850nqs+pahKTThkV5B7WrjmRgN4MzAkzQt4JD3bxotTsFpVbjpAXJQo867FwKf1mVBtkv2VgD33y+JY\/LnTxVqYHLe6Yzn2+py8FqCFv+jCvY+seLT7pO5mqvRr5zEhOSbn0L5mgfVo91quubr1+uml4Q7xbIJMwbuzzxKSJf9BaMzWamL2gzkwpzFSCs\/9qnOuaY7UmE\/7UQvgm43dYCJn+1EKv29gvamJWX3zJHE1Y\/7q3CRe\/FmCaY8n7MqqrNPXa5nocnzyprsYQ6lKEHMFnHbQkZa3SYCXS+ZX4Itsk\/Ep1pb7l8Qcrke\/h\/33wU7Ja3yaP4xwr+WD4g\/8ws3xTPJfRDPK+ANLrkF+5IoURTk9+4iqhnznr77SnZKlcKpVKhWi3tbRPHI8VXFVI8d5Z7dMgn0qDaJjZ4SD5l7QmB7L8gw1grYJ3MwmfGBXDTMfYFIbLffh4iyFLm9pUS0dxn6jULGYVl0sLKmhALvToblyvMuvoNj9UCpWXkYEYOVo1ISLCGMVEDDLitrBP5dt+lZN9jwafVHeOlpIFyJA+BB9mNvog0JlCISw+IIw9I04tUu7C6w7fsDn8+IoDn9++XtYYcXcB2522F\/crKfDvN9cR37Rx\/MjqFtimfX+wN9D0KhyBLBP5hiq9BsG6QN8uz4M3qcb723+3la1\/J2b5UXbJsTe2\/TbIU98U1iRlzh5y+efX6lFxcviZXwV\/fwvLp\/Roy65OZMOvjfO3Pz3IyW\/mLV+STHGLihz3mLK8hL1ZnwYvfnefkpe82TsEiCP57yzArqf\/46vUl+evPTyrVNWRZOguWPa7OVf2Nb19a6fZzN\/3TGH56s2K6lUzIqc2ZrJjONspxNVdMIrX966dFyzNZzZ883vDmSvKmZNrwZmlyzpwAavylcRz215DnZxMlOM3Xfu\/pXBduXwmDe4z2nINeVOAtKOPdyhoGBcp7M\/EVNgupFY+uuuvoK8wkYPWktOHN1eZNerOGvPl0Frx5ljMacPYkp00\/X+32aaB+aiKOip1Sz0O+u5rv\/qF5MV5jFoy3t1ncr6ZSdJmzxot7ZxXSoefVDW8vguBpnNTlO2tqxNmmtGRTWrKivNlcBQfz9GTjYC7KwVyF3BcMqLK3CmUiJ+tek7QSeoS6buxNhjtkDXPule9WInK+N9cyk4WXPK10HN3lj+DZo\/IaxtIrM1maPznfuJOrnXdfx1h6xdnUhGxqQlaUN91NTcimJiQ+YD05zTo+s93Hg6XdLp4AZg4SsmdXi8CcB\/ZT7bJAyEthT7X2qdPmAdv12DXziMsaUauF54ThDtc\/Io4HWBOzdZjUSFuEjPzf\/\/7Pfw8UoWDv\/w8=\" \/> \t\t<a href=\"https:\/\/www.pdf24.org\" target=\"_blank\" title=\"www.pdf24.org\" rel=\"nofollow\"><img src=\"http:\/\/www.mirandabanda.org\/cogblog\/wp-content\/plugins\/pdf24-post-to-pdf\/img\/pdf_32x32.png\" alt=\"\" border=\"0\" height=\"32\" \/><\/a> \t\t<span class=\"pdf24Plugin-cp-space\">&nbsp;&nbsp;<\/span> \t\t<span class=\"pdf24Plugin-cp-text\">Send article as PDF<\/span> \t\t<span class=\"pdf24Plugin-cp-space\">&nbsp;&nbsp;<\/span> \t\t<input class=\"pdf24Plugin-cp-input\" style=\"margin: 0px;\" type=\"text\" name=\"sendEmailTo\" placeholder=\"Enter email address\" \/> \t\t<input class=\"pdf24Plugin-cp-submit\" style=\"margin: 0px;\" type=\"submit\" value=\"Send\" \/> \t<\/form> <\/div>","protected":false},"excerpt":{"rendered":"<p>When I worked in Paris for a short time I was hugely amused to hear the colloquialism &quot;Quesque c&#8217;est ta bo&icirc;te?&quot;, &quot;What&#8217;s your job?&quot; or &quot;what&#8217;s your company?&quot;, which translates literally as &quot;What&#8217;s your box&quot;? I know we all love working but occasionally &quot;box&quot; describes one&#8217;s lot perfectly, hein? Anyway, if I&#8217;m to implement the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/posts\/15"}],"collection":[{"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":0,"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.mirandabanda.org\/cogblog\/wp-json\/wp\/v2\/tags?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}