<?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="Wombat4.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="relAddr" type="required" numBits="8" relativity="pcRelativePostIncr" signed="true" offset="0" defaultValue="0" id="Field86d2c7">
	</Field>
	<Field name="delta8" type="required" numBits="8" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field7827e9">
	</Field>
	<Field name="reg" type="required" numBits="3" relativity="absolute" signed="false" offset="0" defaultValue="0" id="Field845cce">
		<FieldValue name="A0" value="0" />
		<FieldValue name="A1" value="1" />
		<FieldValue name="A2" value="2" />
		<FieldValue name="A3" value="3" />
		<FieldValue name="A4" value="4" />
		<FieldValue name="A5" value="5" />
		<FieldValue name="A6" value="6" />
		<FieldValue name="A7" value="7" />
		<FieldValue name="SP" value="7" />
	</Field>
	<Field name="un3" type="ignored" numBits="3" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fielde914a8">
	</Field>
	<Field name="op" type="required" numBits="5" relativity="absolute" signed="false" offset="0" defaultValue="0" id="Field4b44f0">
	</Field>
	<Field name="un5" type="ignored" numBits="5" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field9afa26">
	</Field>
	<Field name="addr" type="required" numBits="8" relativity="absolute" signed="false" offset="0" defaultValue="0" id="Field9d142f">
	</Field>
	<Field name="un8" type="ignored" numBits="8" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Field985910">
	</Field>
	<Field name="un11" type="ignored" numBits="11" relativity="absolute" signed="true" offset="0" defaultValue="0" id="Fieldff2c4e">
	</Field>

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

	<!--............. registers .....................-->
	<Register name="buffer1" width="16" id="module.Registerb5e07a" />
	<Register name="buffer2" width="16" id="module.Registera488b9" />
	<Register name="ir" width="16" id="module.Registerc4ef1" />
	<Register name="mar" width="12" id="module.Register12c5c8" />
	<Register name="mdr" width="16" id="module.Register76d4af" />
	<Register name="pc" width="12" id="module.Register8567de" />
	<Register name="status" width="3" id="module.Register664cb5" />

	<!--............. register arrays ...............-->
	<RegisterArray name="A" length="8" width="16" id="module.RegisterArray363c50" >
		<Register name="A[0]" width="16" id="module.Registerb1d7ff" />
		<Register name="A[1]" width="16" id="module.Registerdbb073" />
		<Register name="A[2]" width="16" id="module.Register1d4e75" />
		<Register name="A[3]" width="16" id="module.Registera1001" />
		<Register name="A[4]" width="16" id="module.Registera0d510" />
		<Register name="A[5]" width="16" id="module.Register4198e" />
		<Register name="A[6]" width="16" id="module.Register29da77" />
		<Register name="A[7]" width="16" id="module.Registerc5e234" />
	</RegisterArray>

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

	<!--............. rams ..........................-->
	<RAM name="Main" length="256" id="module.RAMa140c2" />
	<RAM name="Stack" length="256" id="module.RAMa28708" />

	<!--............. set ...........................-->
	<Set name="clear-buf1" register="module.Registerb5e07a" start="0" numBits="16" value="0" id="microinstruction.CpusimSet4f3623" />
	<Set name="clear-buf2" register="module.Registera488b9" start="0" numBits="16" value="0" id="microinstruction.CpusimSet6b4c9c" />
	<Set name="clear-mar" register="module.Register12c5c8" start="0" numBits="12" value="0" id="microinstruction.CpusimSet72a664" />
	<Set name="clear-pc" register="module.Register8567de" start="0" numBits="12" value="0" id="microinstruction.CpusimSeta22c1" />

	<!--............. test ..........................-->
	<Test name="if(buf1!=0)skip6" register="module.Registerb5e07a" start="0" numBits="16" comparison="NE" value="0" omission="6" id="microinstruction.Test6fbedf" />
	<Test name="if(buf1&gt;=0)skip6" register="module.Registerb5e07a" start="0" numBits="16" comparison="GE" value="0" omission="6" id="microinstruction.Test5c5b1d" />
	<Test name="if(mar=IO)skip3" register="module.Register12c5c8" start="0" numBits="12" comparison="EQ" value="254" omission="3" id="microinstruction.Test620378" />
	<Test name="if(mar=IO)skip4" register="module.Register12c5c8" start="0" numBits="12" comparison="EQ" value="254" omission="4" id="microinstruction.Testd1e713" />

	<!--............. increment .....................-->
	<Increment name="Inc2-A[7]" register="module.Registerc5e234" overflowBit="module.ConditionBit8600d7" delta="2" id="microinstruction.Increment999b96" />
	<Increment name="Inc2-pc" register="module.Register8567de" overflowBit="module.ConditionBit8600d7" delta="2" id="microinstruction.Incrementb598bf" />
	<Increment name="dec2-A[7]" register="module.Registerc5e234" overflowBit="module.ConditionBit8600d7" delta="-2" id="microinstruction.Increment3f5ff8" />

	<!--............. shift .........................-->
	<Shift name="buf2&gt;&gt;8" type="arithmetic" source="module.Registera488b9" destination="module.Registera488b9" direction="right" distance="8" id="microinstruction.Shiftb5c6b6" />

	<!--............. logical .......................-->
	<!-- none -->

	<!--............. arithmetic ....................-->
	<Arithmetic name="buf1*buf2-&gt;buf1" type="MULTIPLY" source1="module.Registerb5e07a" source2="module.Registera488b9" destination="module.Registerb5e07a" overflowBit="module.ConditionBit8600d7" id="microinstruction.Arithmetic8e90a" />
	<Arithmetic name="buf1+buf2-&gt;buf1" type="ADD" source1="module.Registerb5e07a" source2="module.Registera488b9" destination="module.Registerb5e07a" overflowBit="module.ConditionBit8600d7" id="microinstruction.Arithmeticfbca86" />
	<Arithmetic name="buf1-buf2-&gt;buf1" type="SUBTRACT" source1="module.Registerb5e07a" source2="module.Registera488b9" destination="module.Registerb5e07a" overflowBit="module.ConditionBit8600d7" id="microinstruction.Arithmeticad4b69" />
	<Arithmetic name="buf1/buf2-&gt;buf1" type="DIVIDE" source1="module.Registerb5e07a" source2="module.Registera488b9" destination="module.Registerb5e07a" overflowBit="module.ConditionBit8600d7" id="microinstruction.Arithmetic320256" />

	<!--............. branch ........................-->
	<!-- none -->

	<!--............. transferRtoR ..................-->
	<TransferRtoR name="buffer1-&gt;mdr" source="module.Registerb5e07a" srcStartBit="0" dest="module.Register76d4af" destStartBit="0" numBits="16" id="microinstruction.TransferRtoR3772c5" />
	<TransferRtoR name="buffer1-&gt;pc" source="module.Registerb5e07a" srcStartBit="4" dest="module.Register8567de" destStartBit="0" numBits="12" id="microinstruction.TransferRtoR4fe736" />
	<TransferRtoR name="ir(8-15)-&gt;buf2" source="module.Registerc4ef1" srcStartBit="8" dest="module.Registera488b9" destStartBit="8" numBits="8" id="microinstruction.TransferRtoRd4afd4" />
	<TransferRtoR name="ir(8-15)-&gt;buf2(0-7)" source="module.Registerc4ef1" srcStartBit="8" dest="module.Registera488b9" destStartBit="0" numBits="8" id="microinstruction.TransferRtoR639615" />
	<TransferRtoR name="ir(8-15)-&gt;mar" source="module.Registerc4ef1" srcStartBit="8" dest="module.Register12c5c8" destStartBit="4" numBits="8" id="microinstruction.TransferRtoR12656b" />
	<TransferRtoR name="ir(8-15)-&gt;pc" source="module.Registerc4ef1" srcStartBit="8" dest="module.Register8567de" destStartBit="4" numBits="8" id="microinstruction.TransferRtoRc05d95" />
	<TransferRtoR name="mdr-&gt;buffer1" source="module.Register76d4af" srcStartBit="0" dest="module.Registerb5e07a" destStartBit="0" numBits="16" id="microinstruction.TransferRtoR3feff2" />
	<TransferRtoR name="mdr-&gt;ir" source="module.Register76d4af" srcStartBit="0" dest="module.Registerc4ef1" destStartBit="0" numBits="16" id="microinstruction.TransferRtoRa205d1" />
	<TransferRtoR name="mdr-&gt;pc" source="module.Register76d4af" srcStartBit="4" dest="module.Register8567de" destStartBit="0" numBits="12" id="microinstruction.TransferRtoR2bf755" />
	<TransferRtoR name="pc-&gt;buf1" source="module.Register8567de" srcStartBit="0" dest="module.Registerb5e07a" destStartBit="4" numBits="12" id="microinstruction.TransferRtoR7b2b99" />
	<TransferRtoR name="pc-&gt;mar" source="module.Register8567de" srcStartBit="0" dest="module.Register12c5c8" destStartBit="0" numBits="12" id="microinstruction.TransferRtoR6b653d" />

	<!--............. transferRtoA ..................-->
	<TransferRtoA name="buf1-&gt;A[ir(5-7)]" source="module.Registerb5e07a" srcStartBit="0" dest="module.RegisterArray363c50" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="5" indexNumBits="3" id="microinstruction.TransferRtoAc39d09" />
	<TransferRtoA name="buf1-&gt;A[ir(8-10)]" source="module.Registerb5e07a" srcStartBit="0" dest="module.RegisterArray363c50" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="8" indexNumBits="3" id="microinstruction.TransferRtoA7adfb4" />
	<TransferRtoA name="buf2-&gt;A[ir(5-7)]" source="module.Registera488b9" srcStartBit="0" dest="module.RegisterArray363c50" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="5" indexNumBits="3" id="microinstruction.TransferRtoAf4c81c" />

	<!--............. transferAtoR ..................-->
	<TransferAtoR name="A[ir(5-7)]-&gt;buf1" source="module.RegisterArray363c50" srcStartBit="0" dest="module.Registerb5e07a" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="5" indexNumBits="3" id="microinstruction.TransferAtoR7db7ae" />
	<TransferAtoR name="A[ir(8-10)]-&gt;buf1" source="module.RegisterArray363c50" srcStartBit="0" dest="module.Registerb5e07a" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="8" indexNumBits="3" id="microinstruction.TransferAtoRa62840" />
	<TransferAtoR name="A[ir(8-10)]-&gt;buf2" source="module.RegisterArray363c50" srcStartBit="0" dest="module.Registera488b9" destStartBit="0" numBits="16" index="module.Registerc4ef1" indexStart="8" indexNumBits="3" id="microinstruction.TransferAtoR9cbfa1" />

	<!--............. decode ........................-->
	<Decode name="Decode-ir" ir="module.Registerc4ef1" id="microinstruction.Decodee916a1" />

	<!--............. set condition bit .............-->
	<SetCondBit name="set-halt-bit" bit="module.ConditionBit8600d7" value="1" id="microinstruction.SetCondBitccdcea" />

	<!--............. io ............................-->
	<IO name="input-int-&gt;buf1" direction="input" type="integer" buffer="module.Registerb5e07a" connection="[console]" id="microinstruction.IObb8b29" />
	<IO name="output-buf1-&gt;int" direction="output" type="integer" buffer="module.Registerb5e07a" connection="[console]" id="microinstruction.IOad5275" />

	<!--............. memory access .................-->
	<MemoryAccess name="Main[mar]-&gt;mdr" direction="read" memory="module.RAMa140c2" data="module.Register76d4af" address="module.Register12c5c8" id="microinstruction.MemoryAccessc0cf" />
	<MemoryAccess name="Stack[A[7]]-&gt;mdr" direction="read" memory="module.RAMa28708" data="module.Register76d4af" address="module.Registerc5e234" id="microinstruction.MemoryAccess727d04" />
	<MemoryAccess name="mdr-&gt;Main[mar]" direction="write" memory="module.RAMa140c2" data="module.Register76d4af" address="module.Register12c5c8" id="microinstruction.MemoryAccess6db53a" />
	<MemoryAccess name="mdr-&gt;Stack[A[7]]" direction="write" memory="module.RAMa28708" data="module.Register76d4af" address="module.Registerc5e234" id="microinstruction.MemoryAccess9523c8" />

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

	<!--............. global equs ..................-->
	<EQU name="IO" value="254" />
	<EQU name="A7" value="7" />
	<EQU name="A6" value="6" />
	<EQU name="A5" value="5" />
	<EQU name="A4" value="4" />
	<EQU name="A3" value="3" />
	<EQU name="A2" value="2" />
	<EQU name="A1" value="1" />
	<EQU name="A0" value="0" />

	<!--............. fetch sequence ................-->
	<FetchSequence>
		<Microinstruction microRef="microinstruction.TransferRtoR6b653d" />
		<Microinstruction microRef="microinstruction.MemoryAccessc0cf" />
		<Microinstruction microRef="microinstruction.TransferRtoRa205d1" />
		<Microinstruction microRef="microinstruction.Incrementb598bf" />
		<Microinstruction microRef="microinstruction.Decodee916a1" />
	</FetchSequence>

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

	<MachineInstruction name="loadc" opcode="11" format="op reg delta8" >
		<Microinstruction microRef="microinstruction.TransferRtoR639615" />
		<Microinstruction microRef="microinstruction.Shiftb5c6b6" />
		<Microinstruction microRef="microinstruction.TransferRtoAf4c81c" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="incr" opcode="12" format="op reg delta8" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferRtoR639615" />
		<Microinstruction microRef="microinstruction.Shiftb5c6b6" />
		<Microinstruction microRef="microinstruction.Arithmeticfbca86" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="push" opcode="b" format="op reg un8" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferRtoR3772c5" />
		<Microinstruction microRef="microinstruction.Increment999b96" />
		<Microinstruction microRef="microinstruction.MemoryAccess9523c8" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="pop" opcode="c" format="op reg un8" >
		<Microinstruction microRef="microinstruction.MemoryAccess727d04" />
		<Microinstruction microRef="microinstruction.Increment3f5ff8" />
		<Microinstruction microRef="microinstruction.TransferRtoR3feff2" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="move" opcode="a" format="op reg reg un5" >
		<Microinstruction microRef="microinstruction.TransferAtoRa62840" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="divide" opcode="6" format="op reg reg un5" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferAtoR9cbfa1" />
		<Microinstruction microRef="microinstruction.Arithmetic320256" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="multiply" opcode="5" format="op reg reg un5" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferAtoR9cbfa1" />
		<Microinstruction microRef="microinstruction.Arithmetic8e90a" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="subtract" opcode="4" format="op reg reg un5" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferAtoR9cbfa1" />
		<Microinstruction microRef="microinstruction.Arithmeticad4b69" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="exit" opcode="0" format="op un11" >
		<Microinstruction microRef="microinstruction.SetCondBitccdcea" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="load" opcode="1" format="op reg addr" >
		<Microinstruction microRef="microinstruction.CpusimSet72a664" />
		<Microinstruction microRef="microinstruction.TransferRtoR12656b" />
		<Microinstruction microRef="microinstruction.Testd1e713" />
		<Microinstruction microRef="microinstruction.MemoryAccessc0cf" />
		<Microinstruction microRef="microinstruction.TransferRtoR3feff2" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
		<Microinstruction microRef="microinstruction.IObb8b29" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="store" opcode="2" format="op reg addr" >
		<Microinstruction microRef="microinstruction.CpusimSet72a664" />
		<Microinstruction microRef="microinstruction.TransferRtoR12656b" />
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.Test620378" />
		<Microinstruction microRef="microinstruction.TransferRtoR3772c5" />
		<Microinstruction microRef="microinstruction.MemoryAccess6db53a" />
		<Microinstruction microRef="microinstruction.End602d9d" />
		<Microinstruction microRef="microinstruction.IOad5275" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="add" opcode="3" format="op reg reg un5" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.TransferAtoR9cbfa1" />
		<Microinstruction microRef="microinstruction.Arithmeticfbca86" />
		<Microinstruction microRef="microinstruction.TransferRtoAc39d09" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="jmp" opcode="7" format="op un3 relAddr" >
		<Microinstruction microRef="microinstruction.CpusimSet4f3623" />
		<Microinstruction microRef="microinstruction.TransferRtoR7b2b99" />
		<Microinstruction microRef="microinstruction.TransferRtoR639615" />
		<Microinstruction microRef="microinstruction.Shiftb5c6b6" />
		<Microinstruction microRef="microinstruction.Arithmeticfbca86" />
		<Microinstruction microRef="microinstruction.TransferRtoR4fe736" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="jmpz" opcode="8" format="op reg relAddr" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.Test6fbedf" />
		<Microinstruction microRef="microinstruction.CpusimSet4f3623" />
		<Microinstruction microRef="microinstruction.TransferRtoR7b2b99" />
		<Microinstruction microRef="microinstruction.TransferRtoR639615" />
		<Microinstruction microRef="microinstruction.Shiftb5c6b6" />
		<Microinstruction microRef="microinstruction.Arithmeticfbca86" />
		<Microinstruction microRef="microinstruction.TransferRtoR4fe736" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<MachineInstruction name="jmpn" opcode="9" format="op reg relAddr" >
		<Microinstruction microRef="microinstruction.TransferAtoR7db7ae" />
		<Microinstruction microRef="microinstruction.Test5c5b1d" />
		<Microinstruction microRef="microinstruction.CpusimSet4f3623" />
		<Microinstruction microRef="microinstruction.TransferRtoR7b2b99" />
		<Microinstruction microRef="microinstruction.TransferRtoR639615" />
		<Microinstruction microRef="microinstruction.Shiftb5c6b6" />
		<Microinstruction microRef="microinstruction.Arithmeticfbca86" />
		<Microinstruction microRef="microinstruction.TransferRtoR4fe736" />
		<Microinstruction microRef="microinstruction.End602d9d" />
	</MachineInstruction>

	<!--............. highlighting info .............-->
	<HighlightingInfo>
		<RegisterRAMPair register="module.Register8567de" ram="module.RAMa140c2" dynamic="false" />
	</HighlightingInfo>

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

	<!--............. module window info ............-->
	<ModuleWindowsInfo>
		<RAMWindowInfo ram="module.RAMa28708" cellSize="2" contentsbase="Decimal" addressbase="Decimal" 
			top="462" left="711" width="450" height="450" />
		<RegisterWindowInfo base="Decimal" 
			top="22" left="1175" width="300" height="223" />
		<RAMWindowInfo ram="module.RAMa140c2" cellSize="2" contentsbase="Binary" addressbase="Decimal" 
			top="8" left="654" width="515" height="450" />
		<RegisterArrayWindowInfo array="module.RegisterArray363c50" base="Decimal" 
			top="252" left="1172" width="312" height="235" />
	</ModuleWindowsInfo>

</Machine>
