<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0">
    <tool name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="3"/>
      <a name="incoming" val="12"/>
      <a name="appear" val="right"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="0"/>
      <a name="bit3" val="0"/>
      <a name="bit4" val="1"/>
      <a name="bit5" val="1"/>
      <a name="bit6" val="1"/>
      <a name="bit7" val="1"/>
      <a name="bit8" val="2"/>
      <a name="bit9" val="2"/>
      <a name="bit10" val="2"/>
      <a name="bit11" val="2"/>
    </tool>
    <tool name="Pin">
      <a name="facing" val="north"/>
    </tool>
    <tool name="Probe">
      <a name="facing" val="west"/>
    </tool>
    <tool name="Clock">
      <a name="facing" val="north"/>
    </tool>
  </lib>
  <lib desc="#Gates" name="1">
    <tool name="NOT Gate">
      <a name="facing" val="south"/>
    </tool>
    <tool name="AND Gate">
      <a name="inputs" val="2"/>
    </tool>
    <tool name="XOR Gate">
      <a name="facing" val="west"/>
      <a name="inputs" val="2"/>
    </tool>
  </lib>
  <lib desc="#Plexers" name="2">
    <tool name="Multiplexer">
      <a name="width" val="2"/>
    </tool>
  </lib>
  <lib desc="#Arithmetic" name="3">
    <tool name="Comparator">
      <a name="width" val="2"/>
      <a name="mode" val="unsigned"/>
    </tool>
    <tool name="Shifter">
      <a name="width" val="3"/>
    </tool>
  </lib>
  <lib desc="#Memory" name="4">
    <tool name="Counter">
      <a name="width" val="12"/>
      <a name="max" val="0xfff"/>
    </tool>
    <tool name="Random">
      <a name="width" val="1"/>
    </tool>
    <tool name="ROM">
      <a name="addrWidth" val="3"/>
      <a name="dataWidth" val="2"/>
      <a name="contents">addr/data: 3 2
0 0 1 0 3 2 1
</a>
    </tool>
  </lib>
  <lib desc="#I/O" name="5"/>
  <lib desc="#Base" name="6">
    <tool name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
  </lib>
  <main name="main"/>
  <options>
    <a name="gateUndefined" val="ignore"/>
    <a name="simlimit" val="1000"/>
    <a name="simrand" val="0"/>
  </options>
  <mappings>
    <tool lib="6" map="Button2" name="Menu Tool"/>
    <tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
    <tool lib="6" map="Button3" name="Menu Tool"/>
  </mappings>
  <toolbar>
    <tool lib="6" name="Poke Tool"/>
    <tool lib="6" name="Edit Tool"/>
    <tool lib="6" name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
    <sep/>
    <tool lib="0" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
    </tool>
    <tool lib="0" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
      <a name="labelloc" val="east"/>
    </tool>
    <tool lib="1" name="NOT Gate"/>
    <tool lib="1" name="AND Gate"/>
    <tool lib="1" name="OR Gate"/>
  </toolbar>
  <circuit name="main">
    <a name="circuit" val="main"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(540,370)" to="(540,390)"/>
    <wire from="(670,320)" to="(670,370)"/>
    <wire from="(300,370)" to="(360,370)"/>
    <wire from="(260,250)" to="(260,370)"/>
    <wire from="(620,390)" to="(620,410)"/>
    <wire from="(740,220)" to="(740,230)"/>
    <wire from="(610,390)" to="(610,410)"/>
    <wire from="(300,140)" to="(670,140)"/>
    <wire from="(600,410)" to="(600,430)"/>
    <wire from="(280,140)" to="(280,220)"/>
    <wire from="(300,140)" to="(300,220)"/>
    <wire from="(500,370)" to="(540,370)"/>
    <wire from="(620,410)" to="(630,410)"/>
    <wire from="(670,180)" to="(670,320)"/>
    <wire from="(200,140)" to="(280,140)"/>
    <wire from="(300,370)" to="(300,390)"/>
    <wire from="(830,180)" to="(850,180)"/>
    <wire from="(670,180)" to="(690,180)"/>
    <wire from="(670,320)" to="(700,320)"/>
    <wire from="(600,410)" to="(610,410)"/>
    <wire from="(540,370)" to="(600,370)"/>
    <wire from="(260,370)" to="(300,370)"/>
    <wire from="(670,140)" to="(670,180)"/>
    <wire from="(630,370)" to="(670,370)"/>
    <wire from="(630,410)" to="(630,430)"/>
    <wire from="(410,410)" to="(410,420)"/>
    <wire from="(590,380)" to="(600,380)"/>
    <comp lib="0" loc="(600,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Clock"/>
    </comp>
    <comp lib="4" loc="(500,370)" name="ROM">
      <a name="addrWidth" val="3"/>
      <a name="dataWidth" val="2"/>
      <a name="contents">addr/data: 3 2
0 1 2 0 1 2
</a>
    </comp>
    <comp lib="0" loc="(700,320)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
      <a name="label" val="Present State"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(590,380)" name="Constant"/>
    <comp lib="4" loc="(630,370)" name="Register">
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(630,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(540,390)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
      <a name="label" val="Next State"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(300,220)" name="Splitter">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(410,420)" name="Constant">
      <a name="facing" val="north"/>
    </comp>
    <comp lib="4" loc="(830,180)" name="ROM">
      <a name="addrWidth" val="2"/>
      <a name="dataWidth" val="1"/>
      <a name="contents">addr/data: 2 1
1
</a>
    </comp>
    <comp lib="0" loc="(200,140)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Input"/>
    </comp>
    <comp lib="0" loc="(300,390)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="PS + I"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(850,180)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(740,230)" name="Constant">
      <a name="facing" val="north"/>
    </comp>
    <comp lib="0" loc="(260,250)" name="Splitter">
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
    </comp>
  </circuit>
  <circuit name="RandomTester">
    <a name="circuit" val="RandomTester"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(180,60)" to="(410,60)"/>
    <wire from="(180,60)" to="(180,120)"/>
    <wire from="(210,320)" to="(210,510)"/>
    <wire from="(630,450)" to="(630,460)"/>
    <wire from="(240,140)" to="(270,140)"/>
    <wire from="(260,430)" to="(260,460)"/>
    <wire from="(350,50)" to="(350,130)"/>
    <wire from="(320,110)" to="(320,130)"/>
    <wire from="(410,430)" to="(410,450)"/>
    <wire from="(300,130)" to="(320,130)"/>
    <wire from="(470,510)" to="(520,510)"/>
    <wire from="(280,570)" to="(540,570)"/>
    <wire from="(400,180)" to="(560,180)"/>
    <wire from="(350,450)" to="(350,460)"/>
    <wire from="(560,480)" to="(560,500)"/>
    <wire from="(270,540)" to="(530,540)"/>
    <wire from="(180,190)" to="(400,190)"/>
    <wire from="(180,540)" to="(270,540)"/>
    <wire from="(630,450)" to="(670,450)"/>
    <wire from="(470,320)" to="(530,320)"/>
    <wire from="(390,320)" to="(470,320)"/>
    <wire from="(690,140)" to="(730,140)"/>
    <wire from="(440,250)" to="(440,270)"/>
    <wire from="(310,450)" to="(350,450)"/>
    <wire from="(670,430)" to="(670,450)"/>
    <wire from="(520,430)" to="(520,460)"/>
    <wire from="(570,330)" to="(690,330)"/>
    <wire from="(300,480)" to="(300,500)"/>
    <wire from="(530,520)" to="(530,540)"/>
    <wire from="(260,460)" to="(340,460)"/>
    <wire from="(400,40)" to="(410,40)"/>
    <wire from="(570,450)" to="(610,450)"/>
    <wire from="(350,50)" to="(410,50)"/>
    <wire from="(440,270)" to="(530,270)"/>
    <wire from="(130,570)" to="(280,570)"/>
    <wire from="(180,190)" to="(180,540)"/>
    <wire from="(610,450)" to="(610,460)"/>
    <wire from="(540,520)" to="(540,570)"/>
    <wire from="(370,450)" to="(410,450)"/>
    <wire from="(320,130)" to="(350,130)"/>
    <wire from="(400,260)" to="(530,260)"/>
    <wire from="(660,260)" to="(660,310)"/>
    <wire from="(280,250)" to="(440,250)"/>
    <wire from="(280,150)" to="(280,250)"/>
    <wire from="(560,480)" to="(590,480)"/>
    <wire from="(290,500)" to="(300,500)"/>
    <wire from="(130,250)" to="(280,250)"/>
    <wire from="(570,160)" to="(570,200)"/>
    <wire from="(270,520)" to="(270,540)"/>
    <wire from="(400,190)" to="(400,260)"/>
    <wire from="(100,120)" to="(180,120)"/>
    <wire from="(100,250)" to="(130,250)"/>
    <wire from="(570,430)" to="(570,450)"/>
    <wire from="(480,130)" to="(480,140)"/>
    <wire from="(370,450)" to="(370,460)"/>
    <wire from="(130,250)" to="(130,570)"/>
    <wire from="(180,120)" to="(270,120)"/>
    <wire from="(470,320)" to="(470,510)"/>
    <wire from="(520,460)" to="(600,460)"/>
    <wire from="(300,480)" to="(330,480)"/>
    <wire from="(360,430)" to="(360,460)"/>
    <wire from="(570,310)" to="(660,310)"/>
    <wire from="(310,430)" to="(310,450)"/>
    <wire from="(690,140)" to="(690,330)"/>
    <wire from="(210,510)" to="(260,510)"/>
    <wire from="(560,160)" to="(560,180)"/>
    <wire from="(480,140)" to="(480,250)"/>
    <wire from="(440,200)" to="(570,200)"/>
    <wire from="(210,320)" to="(360,320)"/>
    <wire from="(280,520)" to="(280,570)"/>
    <wire from="(400,180)" to="(400,190)"/>
    <wire from="(480,140)" to="(530,140)"/>
    <wire from="(180,120)" to="(180,190)"/>
    <wire from="(350,130)" to="(480,130)"/>
    <wire from="(660,260)" to="(730,260)"/>
    <wire from="(480,250)" to="(530,250)"/>
    <wire from="(620,430)" to="(620,460)"/>
    <wire from="(550,500)" to="(560,500)"/>
    <wire from="(580,140)" to="(690,140)"/>
    <wire from="(590,260)" to="(660,260)"/>
    <wire from="(440,200)" to="(440,250)"/>
    <comp lib="0" loc="(240,140)" name="Constant">
      <a name="facing" val="north"/>
    </comp>
    <comp lib="5" loc="(360,430)" name="Hex Digit Display"/>
    <comp lib="1" loc="(360,320)" name="NOT Gate">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(330,480)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="16"/>
      <a name="appear" val="right"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="0"/>
      <a name="bit3" val="0"/>
      <a name="bit4" val="1"/>
      <a name="bit5" val="1"/>
      <a name="bit6" val="1"/>
      <a name="bit7" val="1"/>
      <a name="bit8" val="2"/>
      <a name="bit9" val="2"/>
      <a name="bit10" val="2"/>
      <a name="bit11" val="2"/>
      <a name="bit12" val="3"/>
      <a name="bit13" val="3"/>
      <a name="bit14" val="3"/>
      <a name="bit15" val="3"/>
    </comp>
    <comp lib="0" loc="(400,40)" name="Constant"/>
    <comp loc="(590,260)" name="Modder"/>
    <comp lib="4" loc="(300,130)" name="Random">
      <a name="width" val="1"/>
    </comp>
    <comp lib="4" loc="(410,50)" name="Shift Register">
      <a name="length" val="32"/>
    </comp>
    <comp lib="4" loc="(290,500)" name="Counter">
      <a name="width" val="16"/>
      <a name="max" val="0xffff"/>
      <a name="trigger" val="falling"/>
    </comp>
    <comp lib="0" loc="(100,250)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
    </comp>
    <comp lib="5" loc="(620,430)" name="Hex Digit Display"/>
    <comp loc="(580,140)" name="main"/>
    <comp lib="0" loc="(730,260)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(320,110)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="5" loc="(410,430)" name="Hex Digit Display"/>
    <comp lib="4" loc="(550,500)" name="Counter">
      <a name="width" val="16"/>
      <a name="max" val="0xffff"/>
    </comp>
    <comp lib="5" loc="(310,430)" name="Hex Digit Display"/>
    <comp lib="5" loc="(570,430)" name="Hex Digit Display"/>
    <comp lib="0" loc="(590,480)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="16"/>
      <a name="appear" val="right"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="0"/>
      <a name="bit3" val="0"/>
      <a name="bit4" val="1"/>
      <a name="bit5" val="1"/>
      <a name="bit6" val="1"/>
      <a name="bit7" val="1"/>
      <a name="bit8" val="2"/>
      <a name="bit9" val="2"/>
      <a name="bit10" val="2"/>
      <a name="bit11" val="2"/>
      <a name="bit12" val="3"/>
      <a name="bit13" val="3"/>
      <a name="bit14" val="3"/>
      <a name="bit15" val="3"/>
    </comp>
    <comp lib="5" loc="(260,430)" name="Hex Digit Display"/>
    <comp lib="1" loc="(530,320)" name="XOR Gate">
      <a name="facing" val="west"/>
      <a name="size" val="30"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(730,140)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(100,120)" name="Clock">
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="5" loc="(520,430)" name="Hex Digit Display"/>
    <comp lib="5" loc="(670,430)" name="Hex Digit Display"/>
  </circuit>
  <circuit name="Modder">
    <a name="circuit" val="Modder"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(770,220)" to="(870,220)"/>
    <wire from="(90,200)" to="(240,200)"/>
    <wire from="(610,110)" to="(610,130)"/>
    <wire from="(540,110)" to="(540,140)"/>
    <wire from="(790,290)" to="(820,290)"/>
    <wire from="(280,150)" to="(280,310)"/>
    <wire from="(730,170)" to="(760,170)"/>
    <wire from="(840,60)" to="(840,130)"/>
    <wire from="(190,150)" to="(190,260)"/>
    <wire from="(360,150)" to="(420,150)"/>
    <wire from="(680,150)" to="(710,150)"/>
    <wire from="(610,170)" to="(610,220)"/>
    <wire from="(250,170)" to="(250,240)"/>
    <wire from="(890,140)" to="(930,140)"/>
    <wire from="(870,160)" to="(870,220)"/>
    <wire from="(260,150)" to="(280,150)"/>
    <wire from="(810,60)" to="(810,80)"/>
    <wire from="(90,60)" to="(360,60)"/>
    <wire from="(460,120)" to="(460,140)"/>
    <wire from="(860,300)" to="(910,300)"/>
    <wire from="(570,160)" to="(590,160)"/>
    <wire from="(350,160)" to="(420,160)"/>
    <wire from="(440,140)" to="(460,140)"/>
    <wire from="(610,220)" to="(740,220)"/>
    <wire from="(930,140)" to="(930,260)"/>
    <wire from="(90,240)" to="(250,240)"/>
    <wire from="(810,150)" to="(860,150)"/>
    <wire from="(810,130)" to="(810,150)"/>
    <wire from="(540,140)" to="(590,140)"/>
    <wire from="(220,160)" to="(230,160)"/>
    <wire from="(360,60)" to="(360,150)"/>
    <wire from="(780,150)" to="(810,150)"/>
    <wire from="(480,90)" to="(480,100)"/>
    <wire from="(730,160)" to="(760,160)"/>
    <wire from="(500,60)" to="(500,70)"/>
    <wire from="(190,120)" to="(190,150)"/>
    <wire from="(500,60)" to="(810,60)"/>
    <wire from="(300,150)" to="(330,150)"/>
    <wire from="(840,130)" to="(860,130)"/>
    <wire from="(350,170)" to="(420,170)"/>
    <wire from="(190,150)" to="(230,150)"/>
    <wire from="(280,150)" to="(300,150)"/>
    <wire from="(810,60)" to="(840,60)"/>
    <wire from="(280,310)" to="(820,310)"/>
    <wire from="(490,90)" to="(490,100)"/>
    <wire from="(630,150)" to="(680,150)"/>
    <wire from="(680,110)" to="(680,150)"/>
    <wire from="(300,120)" to="(300,150)"/>
    <wire from="(190,260)" to="(930,260)"/>
    <wire from="(880,160)" to="(880,170)"/>
    <wire from="(240,170)" to="(240,200)"/>
    <wire from="(460,140)" to="(540,140)"/>
    <comp lib="0" loc="(680,110)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
    </comp>
    <comp lib="0" loc="(90,60)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Input"/>
    </comp>
    <comp lib="0" loc="(780,150)" name="Splitter">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(330,150)" name="Splitter">
      <a name="appear" val="right"/>
    </comp>
    <comp lib="0" loc="(880,170)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(810,80)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(910,300)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="Output"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(710,150)" name="Splitter">
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
      <a name="appear" val="right"/>
    </comp>
    <comp lib="0" loc="(790,290)" name="Constant">
      <a name="width" val="2"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(460,120)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
      <a name="appear" val="right"/>
    </comp>
    <comp lib="0" loc="(300,120)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
    </comp>
    <comp lib="3" loc="(630,150)" name="Subtractor">
      <a name="width" val="3"/>
    </comp>
    <comp lib="1" loc="(770,220)" name="NOT Gate"/>
    <comp lib="4" loc="(260,150)" name="Register">
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(220,160)" name="Constant"/>
    <comp lib="2" loc="(890,140)" name="Multiplexer">
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(610,110)" name="Constant">
      <a name="facing" val="west"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(540,110)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
    </comp>
    <comp lib="3" loc="(860,300)" name="Comparator">
      <a name="width" val="2"/>
      <a name="mode" val="unsigned"/>
    </comp>
    <comp lib="0" loc="(570,160)" name="Constant">
      <a name="facing" val="north"/>
      <a name="width" val="3"/>
      <a name="value" val="0x3"/>
    </comp>
    <comp lib="0" loc="(500,70)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="appear" val="right"/>
    </comp>
    <comp lib="0" loc="(90,200)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Clock"/>
    </comp>
    <comp lib="0" loc="(440,140)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
    </comp>
    <comp lib="0" loc="(810,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(190,120)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="2"/>
    </comp>
    <comp lib="0" loc="(90,240)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
    </comp>
  </circuit>
</project>
