<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Machine [
<!ELEMENT Machine (PunctChar*, Field*, FileChannel*, Register*, RegisterArray*, ConditionBit*, RAM*, Set*, Test*, Increment*, Shift*, Logical*, Arithmetic*, Branch*, TransferRtoR*, TransferRtoA*, TransferAtoR*, Decode*, SetCondBit*, IO*, MemoryAccess*, End, EQU*, FetchSequence, MachineInstruction*, HighlightingInfo?, LoadingInfo?, ModuleWindowsInfo?) >
<!ATTLIST Machine name CDATA "unnamed">
<!ELEMENT PunctChar EMPTY>
<!ATTLIST PunctChar char CDATA #REQUIRED use  (symbol|token|label|comment|pseudo|illegal) #REQUIRED>
<!ELEMENT Field (FieldValue*)>
<!ATTLIST Field name CDATA #REQUIRED type  (required|optional|ignored) #REQUIRED numBits CDATA #REQUIRED relativity (absolute|pcRelativePreIncr|pcRelativePostIncr) #REQUIRED defaultValue CDATA #REQUIRED signed (true|false) #REQUIRED offset CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT FieldValue EMPTY>
<!ATTLIST FieldValue name CDATA #REQUIRED value CDATA #REQUIRED>
<!ELEMENT FileChannel EMPTY>
<!ATTLIST FileChannel file CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Register EMPTY>
<!ATTLIST Register name CDATA #REQUIRED width CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT RegisterArray (Register+)>
<!ATTLIST RegisterArray name CDATA #REQUIRED width CDATA #REQUIRED length CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT ConditionBit EMPTY>
<!ATTLIST ConditionBit name CDATA #REQUIRED bit CDATA #REQUIRED register IDREF #REQUIRED halt (true|false) "false" id ID #REQUIRED>
<!ELEMENT RAM EMPTY>
<!ATTLIST RAM name CDATA #REQUIRED length CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Increment EMPTY>
<!ATTLIST Increment name CDATA #REQUIRED register IDREF #REQUIRED overflowBit IDREF #IMPLIED delta CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Arithmetic EMPTY>
<!ATTLIST Arithmetic name CDATA #REQUIRED type (ADD|SUBTRACT|MULTIPLY|DIVIDE) #REQUIRED source1 IDREF #REQUIRED source2 IDREF #REQUIRED destination IDREF #REQUIRED overflowBit IDREF #IMPLIED  carryBit IDREF #IMPLIED  id ID #REQUIRED>
<!ELEMENT TransferRtoR EMPTY>
<!ATTLIST TransferRtoR name CDATA #REQUIRED source IDREF #REQUIRED srcStartBit CDATA #REQUIRED dest IDREF #REQUIRED destStartBit CDATA #REQUIRED numBits CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT TransferRtoA EMPTY>
<!ATTLIST TransferRtoA name CDATA #REQUIRED source IDREF #REQUIRED srcStartBit CDATA #REQUIRED dest IDREF #REQUIRED destStartBit CDATA #REQUIRED numBits CDATA #REQUIRED index IDREF #REQUIRED indexStart CDATA #IMPLIED indexNumBits CDATA #IMPLIED id ID #REQUIRED>
<!ELEMENT TransferAtoR EMPTY>
<!ATTLIST TransferAtoR name CDATA #REQUIRED source IDREF #REQUIRED srcStartBit CDATA #REQUIRED dest IDREF #REQUIRED destStartBit CDATA #REQUIRED numBits CDATA #REQUIRED index IDREF #REQUIRED indexStart CDATA #IMPLIED indexNumBits CDATA #IMPLIED id ID #REQUIRED>
<!ELEMENT Shift EMPTY>
<!ATTLIST Shift name CDATA #REQUIRED source IDREF #REQUIRED destination IDREF #REQUIRED type (logical | arithmetic | cyclic) #REQUIRED direction (right | left) #REQUIRED distance CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Branch EMPTY>
<!ATTLIST Branch name CDATA #REQUIRED amount CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Logical EMPTY>
<!ATTLIST Logical name CDATA #REQUIRED source1 IDREF #REQUIRED source2 IDREF #REQUIRED destination IDREF #REQUIRED type (AND | OR | NAND | NOR | XOR | NOT) #REQUIRED id ID #REQUIRED>
<!ELEMENT Set EMPTY>
<!ATTLIST Set name CDATA #REQUIRED register IDREF #REQUIRED start CDATA #REQUIRED numBits CDATA #REQUIRED value CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Test EMPTY >
<!ATTLIST Test name CDATA #REQUIRED register IDREF #REQUIRED start CDATA #REQUIRED numBits CDATA #REQUIRED comparison (EQ | NE | LT | GT | LE | GE ) #REQUIRED value CDATA #REQUIRED omission CDATA #REQUIRED id ID #REQUIRED>
<!ELEMENT Decode EMPTY >
<!ATTLIST Decode name CDATA #REQUIRED ir IDREF #REQUIRED id ID #REQUIRED>
<!ELEMENT IO EMPTY >
<!ATTLIST IO name CDATA #REQUIRED direction (input | output) #REQUIRED type (integer | ascii | unicode) #REQUIRED buffer IDREF #REQUIRED connection CDATA #IMPLIED id ID #REQUIRED>
<!ELEMENT MemoryAccess EMPTY >
<!ATTLIST MemoryAccess name CDATA #REQUIRED direction (read | write ) #REQUIRED memory IDREF #REQUIRED data IDREF #REQUIRED address IDREF #REQUIRED id ID #REQUIRED>
<!ELEMENT SetCondBit EMPTY >
<!ATTLIST SetCondBit name CDATA #REQUIRED bit IDREF #REQUIRED value (0 | 1) #REQUIRED id ID #REQUIRED>
<!ELEMENT End EMPTY>
<!ATTLIST End id ID #REQUIRED>
<!ELEMENT Microinstruction EMPTY>
<!ATTLIST Microinstruction microRef IDREF #REQUIRED>
<!ELEMENT MachineInstruction (Microinstruction*)>
<!ATTLIST MachineInstruction name CDATA #REQUIRED opcode CDATA #REQUIRED format CDATA #REQUIRED>
<!ELEMENT FetchSequence (Microinstruction*) >
<!ELEMENT EQU EMPTY>
<!ATTLIST EQU name CDATA #REQUIRED value CDATA #REQUIRED>
<!ELEMENT HighlightingInfo (RegisterRAMPair*)>
<!ELEMENT RegisterRAMPair EMPTY>
<!ATTLIST RegisterRAMPair register IDREF #REQUIRED ram IDREF #REQUIRED dynamic (true|false) #REQUIRED>
<!ELEMENT LoadingInfo EMPTY>
<!ATTLIST LoadingInfo ram IDREF #IMPLIED startingAddress CDATA "0">
<!ELEMENT ModuleWindowsInfo ((RegisterWindowInfo | RegisterArrayWindowInfo | RAMWindowInfo)*) >
<!ELEMENT RegisterWindowInfo EMPTY>
<!ATTLIST RegisterWindowInfo top CDATA "50" left CDATA "50" width CDATA "300" height CDATA "150" base (Decimal|Binary|Hexadecimal|Ascii)  "Decimal">
<!ELEMENT RegisterArrayWindowInfo EMPTY>
<!ATTLIST RegisterArrayWindowInfo array IDREF #REQUIRED top CDATA "50" left CDATA "50" width CDATA "300" height CDATA "150" base (Decimal|Binary|Hexadecimal|Ascii) "Decimal">
<!ELEMENT RAMWindowInfo EMPTY>
<!ATTLIST RAMWindowInfo ram IDREF #REQUIRED cellSize CDATA "1" top CDATA "50" left CDATA "50" width CDATA "450" height CDATA "450" contentsbase (Decimal|Binary|Hexadecimal|Ascii) "Decimal" addressbase (Decimal|Binary|Hexadecimal) "Decimal">
]>

<Machine name="Jvm1.cpu" >
	<!--............. Punctuation Options .............-->
	<PunctChar char="!" use="symbol" />
	<PunctChar char="#" use="symbol" />
	<PunctChar char="$" use="symbol" />
	<PunctChar char="%" use="symbol" />
	<PunctChar char="&amp;" use="symbol" />
	<PunctChar char="^" use="symbol" />
	<PunctChar char="_" use="symbol" />
	<PunctChar char="`" use="symbol" />
	<PunctChar char="*" use="symbol" />
	<PunctChar char="?" use="symbol" />
	<PunctChar char="@" use="symbol" />
	<PunctChar char="~" use="symbol" />
	<PunctChar char="+" use="symbol" />
	<PunctChar char="-" use="symbol" />
	<PunctChar char="(" use="token" />
	<PunctChar char=")" use="token" />
	<PunctChar char="," use="token" />
	<PunctChar char="/" use="token" />
	<PunctChar char="=" use="token" />
	<PunctChar char="[" use="token" />
	<PunctChar char="\" use="token" />
	<PunctChar char="]" use="token" />
	<PunctChar char="{" use="token" />
	<PunctChar char="|" use="token" />
	<PunctChar char="}" use="token" />
	<PunctChar char="." use="pseudo" />
	<PunctChar char=":" use="label" />
	<PunctChar char=";" use="comment" />

	<!--......... machine instruction fields ............-->
	<Field name="relAddr16" type="required" numBits="16" relativity="pcRelativePreIncr" signed="true" offset="-1" defaultValue="0" id="Field52f49">
	</Field>
	<Field name="sgn8" type="required" numBits="8" relativity="absolute" signed="true" offset="-1" defaultValue="0" id="Field3f5ff8">
	</Field>
	<Field name="indx" type="required" numBits="8" relativity="absolute" signed="false" offset="-1" defaultValue="0" id="Field4179ba">
	</Field>
	<Field name="op" type="required" numBits="8" relativity="absolute" signed="false" offset="-1" defaultValue="0" id="Field956f6b">
	</Field>
	<Field name="1" type="required" numBits="1" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field7aa2a8">
	</Field>
	<Field name="-1" type="ignored" numBits="1" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field4ce427">
	</Field>
	<Field name="2" type="required" numBits="2" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field16c2c0">
	</Field>
	<Field name="-2" type="ignored" numBits="2" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field4bd173">
	</Field>
	<Field name="3" type="required" numBits="3" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fielda3eab6">
	</Field>
	<Field name="-3" type="ignored" numBits="3" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field867fad">
	</Field>
	<Field name="4" type="required" numBits="4" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field285d14">
	</Field>
	<Field name="-4" type="ignored" numBits="4" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldf6ef01">
	</Field>
	<Field name="5" type="required" numBits="5" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldc54654">
	</Field>
	<Field name="-5" type="ignored" numBits="5" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field8c6982">
	</Field>
	<Field name="6" type="required" numBits="6" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field62e703">
	</Field>
	<Field name="-6" type="ignored" numBits="6" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field2c7ac5">
	</Field>
	<Field name="7" type="required" numBits="7" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field303a60">
	</Field>
	<Field name="-7" type="ignored" numBits="7" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field487ae0">
	</Field>
	<Field name="8" type="required" numBits="8" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field7b21ea">
	</Field>
	<Field name="-8" type="ignored" numBits="8" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldefa490">
	</Field>
	<Field name="9" type="required" numBits="9" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field1d2b8e">
	</Field>
	<Field name="-9" type="ignored" numBits="9" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field169fb2">
	</Field>
	<Field name="10" type="required" numBits="10" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field4e8edc">
	</Field>
	<Field name="-10" type="ignored" numBits="10" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field854b38">
	</Field>
	<Field name="11" type="required" numBits="11" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldd81b4">
	</Field>
	<Field name="-11" type="ignored" numBits="11" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldbe7667">
	</Field>
	<Field name="12" type="required" numBits="12" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field4f8358">
	</Field>
	<Field name="-12" type="ignored" numBits="12" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field38462a">
	</Field>
	<Field name="13" type="required" numBits="13" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field869470">
	</Field>
	<Field name="-13" type="ignored" numBits="13" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field7b79a6">
	</Field>
	<Field name="14" type="required" numBits="14" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field6f8834">
	</Field>
	<Field name="-14" type="ignored" numBits="14" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field57211f">
	</Field>
	<Field name="15" type="required" numBits="15" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field3f99af">
	</Field>
	<Field name="-15" type="ignored" numBits="15" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field82c23d">
	</Field>
	<Field name="16" type="required" numBits="16" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field9e4585">
	</Field>
	<Field name="-16" type="ignored" numBits="16" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fielde62121">
	</Field>

	<!--............. FileChannels .................-->
	<!-- none -->

	<!--............. registers .....................-->
	<Register name="cpp" width="32" id="module.Register7056d5" />
	<Register name="h" width="32" id="module.Register54c054" />
	<Register name="lv" width="32" id="module.Register1edceb" />
	<Register name="mar" width="32" id="module.Register39d115" />
	<Register name="mbr" width="8" id="module.Registercdba53" />
	<Register name="mdr" width="32" id="module.Register83de21" />
	<Register name="opc" width="32" id="module.Register6c75ed" />
	<Register name="pc" width="32" id="module.Registerb2380e" />
	<Register name="sp" width="32" id="module.Register7e60a1" />
	<Register name="status" width="1" id="module.Registerf9f0f2" />
	<Register name="tos" width="32" id="module.Register39d325" />

	<!--............. register arrays ...............-->
	<!-- none -->

	<!--............. condition bits ................-->
	<ConditionBit name="halt-bit" bit="0" register="module.Registerf9f0f2" halt="true" id="module.ConditionBit5539d8" />

	<!--............. rams ..........................-->
	<RAM name="ConstantPool" length="256" id="module.RAM48c02f" />
	<RAM name="Main" length="256" id="module.RAM4189d0" />
	<RAM name="Stack" length="256" id="module.RAMbef5e8" />

	<!--............. set ...........................-->
	<Set name="mar=0" register="module.Register39d115" start="0" numBits="32" value="0" id="microinstruction.CpusimSet3a83cc" />
	<Set name="mdr=-1" register="module.Register83de21" start="0" numBits="32" value="-1" id="microinstruction.CpusimSeta2d304" />
	<Set name="mdr=0" register="module.Register83de21" start="0" numBits="32" value="0" id="microinstruction.CpusimSetcbd4f7" />
	<Set name="mdr=1" register="module.Register83de21" start="0" numBits="32" value="1" id="microinstruction.CpusimSetade7e" />
	<Set name="pc=0" register="module.Registerb2380e" start="0" numBits="32" value="0" id="microinstruction.CpusimSet956254" />

	<!--............. test ..........................-->
	<Test name="mar!=0?skip1" register="module.Register39d115" start="0" numBits="32" comparison="NE" value="0" omission="1" id="microinstruction.Test5726ec" />
	<Test name="mdr&lt;0?skip2" register="module.Register83de21" start="0" numBits="32" comparison="LT" value="0" omission="2" id="microinstruction.Testbc6007" />
	<Test name="mdr=0?skip2" register="module.Register83de21" start="0" numBits="32" comparison="EQ" value="0" omission="2" id="microinstruction.Test44752d" />
	<Test name="sp&lt;0?skip2" register="module.Register7e60a1" start="0" numBits="32" comparison="LT" value="0" omission="2" id="microinstruction.Test68e429" />

	<!--............. increment .....................-->
	<Increment name="dec1-pc" register="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" delta="-1" id="microinstruction.Incrementb35031" />
	<Increment name="dec4-sp" register="module.Register7e60a1" overflowBit="module.ConditionBit5539d8" delta="-4" id="microinstruction.Increment5b4492" />
	<Increment name="inc1-pc" register="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" delta="1" id="microinstruction.Incrementf2f0d0" />
	<Increment name="inc2-pc" register="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" delta="2" id="microinstruction.Incrementa01e8a" />
	<Increment name="inc3-pc" register="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" delta="3" id="microinstruction.Increment353154" />
	<Increment name="inc4-pc" register="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" delta="4" id="microinstruction.Increment398cac" />
	<Increment name="inc4-sp" register="module.Register7e60a1" overflowBit="module.ConditionBit5539d8" delta="4" id="microinstruction.Increment429cf1" />

	<!--............. shift .........................-->
	<Shift name="mar&lt;&lt;2" type="logical" source="module.Register39d115" destination="module.Register39d115" direction="left" distance="2" id="microinstruction.Shifted13da" />
	<Shift name="mdr&lt;&lt;2" type="logical" source="module.Register83de21" destination="module.Register83de21" direction="left" distance="2" id="microinstruction.Shiftb25a82" />
	<Shift name="mdr&lt;&lt;8" type="logical" source="module.Register83de21" destination="module.Register83de21" direction="left" distance="8" id="microinstruction.Shiftb94ea2" />
	<Shift name="mdr&gt;&gt;24" type="logical" source="module.Register83de21" destination="module.Register83de21" direction="right" distance="24" id="microinstruction.Shiftd99277" />
	<Shift name="mdr&gt;&gt;&gt;16" type="arithmetic" source="module.Register83de21" destination="module.Register83de21" direction="right" distance="16" id="microinstruction.Shifta85567" />
	<Shift name="mdr&gt;&gt;&gt;24" type="arithmetic" source="module.Register83de21" destination="module.Register83de21" direction="right" distance="24" id="microinstruction.Shift1eef2c" />

	<!--............. logical .......................-->
	<Logical name="mdr&lt;-mdr&amp;h" type="AND" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" id="microinstruction.Logicalae3da8" />
	<Logical name="mdr&lt;-mdr|h" type="OR" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" id="microinstruction.Logical721965" />

	<!--............. arithmetic ....................-->
	<Arithmetic name="mar=mar-sp" type="SUBTRACT" source1="module.Register39d115" source2="module.Register7e60a1" destination="module.Register39d115" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmetice14ebc" />
	<Arithmetic name="mdr=mdr*h" type="MULTIPLY" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmeticf82253" />
	<Arithmetic name="mdr=mdr+h" type="ADD" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmetic957a34" />
	<Arithmetic name="mdr=mdr+tos" type="ADD" source1="module.Register83de21" source2="module.Register39d325" destination="module.Register83de21" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmetic8a2006" />
	<Arithmetic name="mdr=mdr-h" type="SUBTRACT" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmetic15470e" />
	<Arithmetic name="mdr=mdr/h" type="DIVIDE" source1="module.Register83de21" source2="module.Register54c054" destination="module.Register83de21" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmeticebf4ff" />
	<Arithmetic name="pc=mdr+pc" type="ADD" source1="module.Registerb2380e" source2="module.Register83de21" destination="module.Registerb2380e" overflowBit="module.ConditionBit5539d8" id="microinstruction.Arithmeticb3e42b" />

	<!--............. branch ........................-->
	<Branch name="branch+3" amount="3" id="microinstruction.Brancha51312" />
	<Branch name="branch+5" amount="5" id="microinstruction.Branchc1ef16" />

	<!--............. transferRtoR ..................-->
	<TransferRtoR name="h-&gt;mdr" source="module.Register54c054" srcStartBit="0" dest="module.Register83de21" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR455aa8" />
	<TransferRtoR name="lv-&gt;h" source="module.Register1edceb" srcStartBit="0" dest="module.Register54c054" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR43073a" />
	<TransferRtoR name="mdr-&gt;h" source="module.Register83de21" srcStartBit="0" dest="module.Register54c054" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR8facfb" />
	<TransferRtoR name="mdr-&gt;mar" source="module.Register83de21" srcStartBit="0" dest="module.Register39d115" destStartBit="0" numBits="32" id="microinstruction.TransferRtoRa59490" />
	<TransferRtoR name="mdr-&gt;opc" source="module.Register83de21" srcStartBit="0" dest="module.Register6c75ed" destStartBit="0" numBits="32" id="microinstruction.TransferRtoRbca1c3" />
	<TransferRtoR name="mdr-&gt;tos" source="module.Register83de21" srcStartBit="0" dest="module.Register39d325" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR2022b7" />
	<TransferRtoR name="mdr0-16-&gt;mar" source="module.Register83de21" srcStartBit="0" dest="module.Register39d115" destStartBit="16" numBits="16" id="microinstruction.TransferRtoRc74910" />
	<TransferRtoR name="mdr0-16-&gt;pc" source="module.Register83de21" srcStartBit="0" dest="module.Registerb2380e" destStartBit="16" numBits="16" id="microinstruction.TransferRtoR8dfa76" />
	<TransferRtoR name="opc-&gt;mdr" source="module.Register6c75ed" srcStartBit="0" dest="module.Register83de21" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR3680c1" />
	<TransferRtoR name="pc-&gt;mar" source="module.Registerb2380e" srcStartBit="0" dest="module.Register39d115" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR3f1179" />
	<TransferRtoR name="tos-&gt;h" source="module.Register39d325" srcStartBit="0" dest="module.Register54c054" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR945b95" />
	<TransferRtoR name="tos-&gt;mdr" source="module.Register39d325" srcStartBit="0" dest="module.Register83de21" destStartBit="0" numBits="32" id="microinstruction.TransferRtoR8a6fc" />

	<!--............. transferRtoA ..................-->
	<!-- none -->

	<!--............. transferAtoR ..................-->
	<!-- none -->

	<!--............. decode ........................-->
	<Decode name="decode" ir="module.Registercdba53" id="microinstruction.Decode107304" />

	<!--............. set condition bit .............-->
	<SetCondBit name="setHalt" bit="module.ConditionBit5539d8" value="1" id="microinstruction.SetCondBitef4599" />

	<!--............. io ............................-->
	<IO name="mdr-&gt;output" direction="output" type="integer" buffer="module.Register83de21" connection="[console]" id="microinstruction.IO82a13a" />
	<IO name="mdr&lt;-input" direction="input" type="integer" buffer="module.Register83de21" connection="[console]" id="microinstruction.IO2726b2" />

	<!--............. memory access .................-->
	<MemoryAccess name="mbr&lt;-Main[pc]" direction="read" memory="module.RAM4189d0" data="module.Registercdba53" address="module.Registerb2380e" id="microinstruction.MemoryAccess6270b" />
	<MemoryAccess name="mdr-&gt;Main[mar]" direction="write" memory="module.RAM4189d0" data="module.Register83de21" address="module.Register39d115" id="microinstruction.MemoryAccessed54a0" />
	<MemoryAccess name="mdr-&gt;Stack[mar]" direction="write" memory="module.RAMbef5e8" data="module.Register83de21" address="module.Register39d115" id="microinstruction.MemoryAccess4ef630" />
	<MemoryAccess name="mdr-&gt;Stack[sp]" direction="write" memory="module.RAMbef5e8" data="module.Register83de21" address="module.Register7e60a1" id="microinstruction.MemoryAccess4ec59" />
	<MemoryAccess name="mdr&lt;-CP[mar]" direction="read" memory="module.RAM48c02f" data="module.Register83de21" address="module.Register39d115" id="microinstruction.MemoryAccess38d56e" />
	<MemoryAccess name="mdr&lt;-Main[mar]" direction="read" memory="module.RAM4189d0" data="module.Register83de21" address="module.Register39d115" id="microinstruction.MemoryAccess442c76" />
	<MemoryAccess name="mdr&lt;-Stack[mar]" direction="read" memory="module.RAMbef5e8" data="module.Register83de21" address="module.Register39d115" id="microinstruction.MemoryAccessc30993" />
	<MemoryAccess name="mdr&lt;-Stack[sp]" direction="read" memory="module.RAMbef5e8" data="module.Register83de21" address="module.Register7e60a1" id="microinstruction.MemoryAccessa9cf52" />

	<!--............. end ...........................-->
	<End id="microinstruction.End6a23cf" />

	<!--............. global equs ..................-->
	<!-- none -->

	<!--............. fetch sequence ................-->
	<FetchSequence>
		<Microinstruction microRef="microinstruction.MemoryAccess6270b" />
		<Microinstruction microRef="microinstruction.Incrementf2f0d0" />
		<Microinstruction microRef="microinstruction.Decode107304" />
	</FetchSequence>

	<!--............. machine instructions ..........-->

	<MachineInstruction name="iinc" opcode="84" format=" op indx sgn8" >
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.TransferRtoRbca1c3" />
		<Microinstruction microRef="microinstruction.Shiftd99277" />
		<Microinstruction microRef="microinstruction.Shiftb25a82" />
		<Microinstruction microRef="microinstruction.TransferRtoR43073a" />
		<Microinstruction microRef="microinstruction.Arithmetic957a34" />
		<Microinstruction microRef="microinstruction.TransferRtoRa59490" />
		<Microinstruction microRef="microinstruction.MemoryAccessc30993" />
		<Microinstruction microRef="microinstruction.TransferRtoR8facfb" />
		<Microinstruction microRef="microinstruction.TransferRtoR3680c1" />
		<Microinstruction microRef="microinstruction.Shiftb94ea2" />
		<Microinstruction microRef="microinstruction.Shift1eef2c" />
		<Microinstruction microRef="microinstruction.Arithmetic957a34" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ef630" />
		<Microinstruction microRef="microinstruction.Incrementa01e8a" />
		<Microinstruction microRef="microinstruction.Arithmetice14ebc" />
		<Microinstruction microRef="microinstruction.Test5726ec" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="istore" opcode="36" format=" op indx" >
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoRbca1c3" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Shiftd99277" />
		<Microinstruction microRef="microinstruction.Shiftb25a82" />
		<Microinstruction microRef="microinstruction.TransferRtoR43073a" />
		<Microinstruction microRef="microinstruction.Arithmetic957a34" />
		<Microinstruction microRef="microinstruction.TransferRtoRa59490" />
		<Microinstruction microRef="microinstruction.TransferRtoR3680c1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ef630" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.Incrementf2f0d0" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iload" opcode="15" format=" op indx" >
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Shiftd99277" />
		<Microinstruction microRef="microinstruction.Shiftb25a82" />
		<Microinstruction microRef="microinstruction.TransferRtoR43073a" />
		<Microinstruction microRef="microinstruction.Arithmetic957a34" />
		<Microinstruction microRef="microinstruction.TransferRtoRa59490" />
		<Microinstruction microRef="microinstruction.MemoryAccessc30993" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.Incrementf2f0d0" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="ifeq" opcode="99" format=" op relAddr16" >
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Test44752d" />
		<Microinstruction microRef="microinstruction.Incrementa01e8a" />
		<Microinstruction microRef="microinstruction.Branchc1ef16" />
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Incrementb35031" />
		<Microinstruction microRef="microinstruction.Shifta85567" />
		<Microinstruction microRef="microinstruction.Arithmeticb3e42b" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iflt" opcode="9b" format=" op relAddr16" >
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Testbc6007" />
		<Microinstruction microRef="microinstruction.Incrementa01e8a" />
		<Microinstruction microRef="microinstruction.Branchc1ef16" />
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Shifta85567" />
		<Microinstruction microRef="microinstruction.Incrementb35031" />
		<Microinstruction microRef="microinstruction.Arithmeticb3e42b" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="if_icmpeq" opcode="9f" format=" op relAddr16" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Arithmetic15470e" />
		<Microinstruction microRef="microinstruction.Test44752d" />
		<Microinstruction microRef="microinstruction.Incrementa01e8a" />
		<Microinstruction microRef="microinstruction.Branchc1ef16" />
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Incrementb35031" />
		<Microinstruction microRef="microinstruction.Shifta85567" />
		<Microinstruction microRef="microinstruction.Arithmeticb3e42b" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="dup_x2" opcode="5b" format=" op" >
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="idiv" opcode="6c" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Arithmeticebf4ff" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="imul" opcode="68" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Arithmeticf82253" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="isub" opcode="64" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Arithmetic15470e" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="ior" opcode="80" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Logical721965" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iand" opcode="7e" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Logicalae3da8" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="ldc_w" opcode="13" format=" op 16" >
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.CpusimSet3a83cc" />
		<Microinstruction microRef="microinstruction.TransferRtoRc74910" />
		<Microinstruction microRef="microinstruction.Shifted13da" />
		<Microinstruction microRef="microinstruction.MemoryAccess38d56e" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="nop" opcode="0" format=" op" >
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="swap" opcode="5f" format=" op" >
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR8facfb" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.TransferRtoR455aa8" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="pop" opcode="57" format=" op" >
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="dup_x1" opcode="5a" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="dup" opcode="59" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR8a6fc" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="goto" opcode="a7" format=" op relAddr16" >
		<Microinstruction microRef="microinstruction.TransferRtoR3f1179" />
		<Microinstruction microRef="microinstruction.MemoryAccess442c76" />
		<Microinstruction microRef="microinstruction.Incrementb35031" />
		<Microinstruction microRef="microinstruction.Shifta85567" />
		<Microinstruction microRef="microinstruction.Arithmeticb3e42b" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="exit" opcode="fc" format=" op" >
		<Microinstruction microRef="microinstruction.SetCondBitef4599" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iconst_0" opcode="3" format=" op" >
		<Microinstruction microRef="microinstruction.CpusimSetcbd4f7" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iconst_-1" opcode="2" format=" op" >
		<Microinstruction microRef="microinstruction.CpusimSeta2d304" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iconst_1" opcode="4" format=" op" >
		<Microinstruction microRef="microinstruction.CpusimSetade7e" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="output" opcode="ff" format=" op" >
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.IO82a13a" />
		<Microinstruction microRef="microinstruction.Test68e429" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="input" opcode="fe" format=" op" >
		<Microinstruction microRef="microinstruction.IO2726b2" />
		<Microinstruction microRef="microinstruction.Increment429cf1" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<MachineInstruction name="iadd" opcode="60" format=" op" >
		<Microinstruction microRef="microinstruction.TransferRtoR945b95" />
		<Microinstruction microRef="microinstruction.Increment5b4492" />
		<Microinstruction microRef="microinstruction.MemoryAccessa9cf52" />
		<Microinstruction microRef="microinstruction.Arithmetic957a34" />
		<Microinstruction microRef="microinstruction.TransferRtoR2022b7" />
		<Microinstruction microRef="microinstruction.MemoryAccess4ec59" />
		<Microinstruction microRef="microinstruction.End6a23cf" />
	</MachineInstruction>

	<!--............. highlighting info .............-->
	<HighlightingInfo>
		<RegisterRAMPair register="module.Register7e60a1" ram="module.RAMbef5e8" dynamic="true" />
		<RegisterRAMPair register="module.Registerb2380e" ram="module.RAM4189d0" dynamic="false" />
	</HighlightingInfo>

	<!--............. loading info ..................-->
	<LoadingInfo ram="module.RAM4189d0" startingAddress="0" />

	<!--............. module window info ............-->
	<ModuleWindowsInfo>
		<RAMWindowInfo ram="module.RAMbef5e8" cellSize="4" contentsbase="Decimal" addressbase="Decimal" 
			top="392" left="717" width="387" height="230" />
		<RegisterWindowInfo base="Binary" 
			top="638" left="739" width="468" height="271" />
		<RAMWindowInfo ram="module.RAM4189d0" cellSize="1" contentsbase="Binary" addressbase="Decimal" 
			top="2" left="713" width="392" height="450" />
	</ModuleWindowsInfo>

</Machine>
