tisc

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit e5553fd9582675c277685925d7838399461d4cbf
parent 59b5abc21a7f7542de4b989d2d2773df808b96ee
Author: Paul Longtine <paul@nanner.co>
Date:   Tue, 24 Sep 2019 23:43:21 -0400

Made headway on implementing instructions. Updated behavior of the SB/LB instructions - do not increment the PC when loading a different address to read/write from memory

Diffstat:
MCPU/CPU.circ | 3573++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mexample_assembly.asm | 10++++++----
Mtisc.c | 388++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
3 files changed, 2074 insertions(+), 1897 deletions(-)

diff --git a/CPU/CPU.circ b/CPU/CPU.circ @@ -69,27 +69,26 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(180,180)" to="(230,180)"/> <wire from="(260,220)" to="(260,230)"/> <wire from="(210,230)" to="(210,370)"/> - <wire from="(140,20)" to="(380,20)"/> <wire from="(220,50)" to="(220,130)"/> <wire from="(350,100)" to="(350,180)"/> <wire from="(190,150)" to="(190,170)"/> <wire from="(470,430)" to="(470,460)"/> + <wire from="(130,140)" to="(170,140)"/> <wire from="(270,360)" to="(310,360)"/> <wire from="(400,370)" to="(440,370)"/> <wire from="(290,70)" to="(320,70)"/> <wire from="(260,130)" to="(280,130)"/> <wire from="(160,30)" to="(180,30)"/> + <wire from="(130,200)" to="(150,200)"/> + <wire from="(130,430)" to="(400,430)"/> <wire from="(160,260)" to="(240,260)"/> <wire from="(380,300)" to="(390,300)"/> <wire from="(210,110)" to="(290,110)"/> - <wire from="(180,300)" to="(190,300)"/> <wire from="(230,350)" to="(240,350)"/> <wire from="(220,130)" to="(220,250)"/> <wire from="(470,460)" to="(540,460)"/> - <wire from="(140,140)" to="(140,200)"/> <wire from="(380,140)" to="(380,210)"/> <wire from="(200,320)" to="(200,390)"/> - <wire from="(140,430)" to="(140,440)"/> <wire from="(230,100)" to="(350,100)"/> <wire from="(330,140)" to="(380,140)"/> <wire from="(200,390)" to="(320,390)"/> @@ -104,12 +103,11 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(190,210)" to="(230,210)"/> <wire from="(190,170)" to="(230,170)"/> <wire from="(200,300)" to="(240,300)"/> - <wire from="(160,210)" to="(160,240)"/> <wire from="(180,30)" to="(180,60)"/> <wire from="(180,150)" to="(180,180)"/> + <wire from="(160,210)" to="(160,240)"/> <wire from="(130,580)" to="(230,580)"/> <wire from="(220,50)" to="(250,50)"/> - <wire from="(140,200)" to="(140,430)"/> <wire from="(410,440)" to="(440,440)"/> <wire from="(170,210)" to="(170,310)"/> <wire from="(260,140)" to="(280,140)"/> @@ -117,14 +115,18 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(390,190)" to="(390,300)"/> <wire from="(180,70)" to="(180,120)"/> <wire from="(160,330)" to="(170,330)"/> + <wire from="(140,190)" to="(150,190)"/> <wire from="(230,640)" to="(240,640)"/> <wire from="(180,60)" to="(250,60)"/> <wire from="(160,240)" to="(230,240)"/> - <wire from="(140,20)" to="(140,140)"/> <wire from="(380,20)" to="(380,140)"/> + <wire from="(130,140)" to="(130,200)"/> + <wire from="(140,190)" to="(140,250)"/> <wire from="(310,360)" to="(370,360)"/> <wire from="(440,370)" to="(440,440)"/> + <wire from="(130,20)" to="(380,20)"/> <wire from="(130,590)" to="(130,600)"/> + <wire from="(130,430)" to="(130,440)"/> <wire from="(250,150)" to="(250,160)"/> <wire from="(290,110)" to="(340,110)"/> <wire from="(180,200)" to="(230,200)"/> @@ -135,15 +137,17 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(290,150)" to="(290,160)"/> <wire from="(220,410)" to="(400,410)"/> <wire from="(200,300)" to="(200,320)"/> + <wire from="(140,250)" to="(180,250)"/> <wire from="(540,440)" to="(540,460)"/> <wire from="(210,110)" to="(210,140)"/> <wire from="(460,450)" to="(500,450)"/> - <wire from="(140,140)" to="(170,140)"/> <wire from="(210,370)" to="(240,370)"/> + <wire from="(130,200)" to="(130,430)"/> <wire from="(250,240)" to="(340,240)"/> <wire from="(390,30)" to="(390,190)"/> <wire from="(330,180)" to="(350,180)"/> <wire from="(400,450)" to="(420,450)"/> + <wire from="(190,210)" to="(190,250)"/> <wire from="(240,220)" to="(240,260)"/> <wire from="(180,30)" to="(390,30)"/> <wire from="(230,240)" to="(230,350)"/> @@ -152,10 +156,9 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(230,80)" to="(250,80)"/> <wire from="(220,630)" to="(240,630)"/> <wire from="(360,380)" to="(370,380)"/> - <wire from="(140,200)" to="(150,200)"/> <wire from="(200,140)" to="(210,140)"/> <wire from="(180,70)" to="(250,70)"/> - <wire from="(140,430)" to="(400,430)"/> + <wire from="(130,20)" to="(130,140)"/> <wire from="(330,190)" to="(390,190)"/> <wire from="(270,90)" to="(270,160)"/> <wire from="(160,260)" to="(160,330)"/> @@ -167,87 +170,88 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(310,340)" to="(310,360)"/> <wire from="(400,430)" to="(400,450)"/> <wire from="(130,560)" to="(130,580)"/> - <wire from="(190,210)" to="(190,300)"/> <wire from="(220,320)" to="(220,410)"/> <wire from="(270,220)" to="(270,250)"/> <wire from="(430,410)" to="(450,410)"/> <wire from="(220,320)" to="(240,320)"/> + <wire from="(180,250)" to="(180,300)"/> + <wire from="(180,250)" to="(190,250)"/> <wire from="(220,130)" to="(230,130)"/> <wire from="(320,70)" to="(320,120)"/> <wire from="(130,660)" to="(260,660)"/> <wire from="(230,580)" to="(230,640)"/> - <comp lib="3" loc="(360,380)" name="Comparator"/> - <comp lib="0" loc="(450,410)" name="Splitter"> - <a name="facing" val="south"/> - <a name="incoming" val="8"/> - <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"/> - </comp> - <comp lib="6" loc="(486,480)" name="Text"> - <a name="text" val="For printing hex values from I/O"/> + <comp lib="1" loc="(400,370)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> <comp lib="0" loc="(130,590)" name="Splitter"> <a name="facing" val="south"/> <a name="fanout" val="8"/> <a name="incoming" val="8"/> </comp> - <comp lib="4" loc="(380,300)" name="RAM"> - <a name="bus" val="separate"/> - </comp> <comp lib="4" loc="(430,410)" name="Register"/> - <comp lib="0" loc="(320,370)" name="Constant"> - <a name="width" val="8"/> - <a name="value" val="0xff"/> - </comp> <comp lib="1" loc="(270,360)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp loc="(280,150)" name="GPR"/> - <comp lib="2" loc="(290,70)" name="Multiplexer"> - <a name="select" val="2"/> + <comp lib="0" loc="(320,370)" name="Constant"> <a name="width" val="8"/> - <a name="enable" val="false"/> - </comp> - <comp lib="0" loc="(140,440)" name="Pin"> - <a name="facing" val="north"/> - <a name="tristate" val="false"/> - </comp> - <comp lib="5" loc="(500,440)" name="Hex Digit Display"/> - <comp lib="6" loc="(618,320)" name="Text"> - <a name="text" val="In this case, I have only one Memory Mapped output port mapped @ 0xFF."/> + <a name="value" val="0xff"/> </comp> - <comp loc="(230,170)" name="ISD"/> - <comp loc="(160,210)" name="PC"/> - <comp lib="1" loc="(400,370)" name="AND Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp loc="(280,150)" name="GPR"/> + <comp lib="4" loc="(380,300)" name="RAM"> + <a name="bus" val="separate"/> </comp> - <comp loc="(190,120)" name="STK"/> <comp lib="0" loc="(220,630)" name="Splitter"> <a name="facing" val="north"/> <a name="fanout" val="8"/> <a name="incoming" val="7"/> </comp> - <comp lib="0" loc="(230,440)" name="Clock"> + <comp lib="5" loc="(540,440)" name="Hex Digit Display"/> + <comp lib="0" loc="(130,440)" name="Pin"> <a name="facing" val="north"/> + <a name="tristate" val="false"/> + </comp> + <comp loc="(160,210)" name="PC"/> + <comp loc="(190,120)" name="STK"/> + <comp lib="0" loc="(450,410)" name="Splitter"> + <a name="facing" val="south"/> + <a name="incoming" val="8"/> + <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"/> + </comp> + <comp loc="(230,170)" name="ISD"/> + <comp lib="5" loc="(500,440)" name="Hex Digit Display"/> + <comp lib="6" loc="(486,480)" name="Text"> + <a name="text" val="For printing hex values from I/O"/> </comp> + <comp lib="3" loc="(360,380)" name="Comparator"/> <comp lib="5" loc="(240,640)" name="TTY"/> + <comp lib="6" loc="(618,320)" name="Text"> + <a name="text" val="In this case, I have only one Memory Mapped output port mapped @ 0xFF."/> + </comp> <comp loc="(260,130)" name="ALU"/> <comp lib="0" loc="(290,340)" name="Constant"> <a name="facing" val="north"/> </comp> - <comp lib="5" loc="(540,440)" name="Hex Digit Display"/> + <comp lib="0" loc="(230,440)" name="Clock"> + <a name="facing" val="north"/> + </comp> <comp lib="2" loc="(200,320)" name="Multiplexer"> <a name="selloc" val="tr"/> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> + <comp lib="2" loc="(290,70)" name="Multiplexer"> + <a name="select" val="2"/> + <a name="width" val="8"/> + <a name="enable" val="false"/> + </comp> </circuit> <circuit name="ALU"> <a name="circuit" val="ALU"/> @@ -527,690 +531,690 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(220,690)" to="(230,690)"/> <wire from="(200,270)" to="(210,270)"/> <wire from="(200,750)" to="(210,750)"/> - <comp lib="0" loc="(130,750)" name="Tunnel"> + <comp lib="0" loc="(130,450)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a7"/> + <a name="label" val="b4"/> </comp> - <comp lib="1" loc="(250,280)" name="NOR Gate"> + <comp lib="1" loc="(250,730)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,120)" name="Tunnel"> + <comp lib="0" loc="(670,240)" name="Tunnel"> + <a name="label" val="o0"/> + </comp> + <comp lib="0" loc="(690,180)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a0"/> + <a name="label" val="a4"/> </comp> - <comp lib="1" loc="(280,200)" name="OR Gate"> + <comp lib="1" loc="(270,140)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(770,380)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="CC"/> - </comp> - <comp lib="1" loc="(310,600)" name="OR Gate"> - <a name="facing" val="west"/> + <comp lib="1" loc="(240,220)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,270)" name="Tunnel"> + <comp lib="0" loc="(690,160)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b2"/> + <a name="label" val="a2"/> </comp> - <comp lib="1" loc="(190,760)" name="XOR Gate"> + <comp lib="1" loc="(190,310)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,330)" name="AND Gate"> + <comp lib="1" loc="(190,580)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(340,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="FC"/> + <comp lib="1" loc="(280,200)" name="OR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,450)" name="Tunnel"> + <comp lib="0" loc="(130,270)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b4"/> + <a name="label" val="b2"/> </comp> - <comp lib="1" loc="(190,190)" name="XOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(590,400)" name="Pin"> + <a name="width" val="3"/> + <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(670,250)" name="Tunnel"> - <a name="label" val="o1"/> + <comp lib="0" loc="(130,390)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a3"/> </comp> - <comp lib="1" loc="(310,690)" name="OR Gate"> - <a name="facing" val="west"/> + <comp lib="1" loc="(250,460)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(750,380)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="!B"/> + <comp lib="0" loc="(390,190)" name="Tunnel"> + <a name="label" val="o1"/> </comp> - <comp lib="0" loc="(690,140)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a0"/> + <comp lib="4" loc="(730,400)" name="ROM"> + <a name="addrWidth" val="3"/> + <a name="dataWidth" val="6"/> + <a name="contents">addr/data: 3 6 +8 3b 4 0 2 38 7 12 +</a> </comp> - <comp lib="1" loc="(270,140)" name="AND Gate"> + <comp lib="0" loc="(670,300)" name="Tunnel"> + <a name="label" val="o6"/> + </comp> + <comp lib="1" loc="(330,310)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(670,240)" name="Tunnel"> - <a name="label" val="o0"/> + <comp lib="0" loc="(560,160)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b2"/> </comp> - <comp lib="1" loc="(330,400)" name="AND Gate"> + <comp lib="1" loc="(310,510)" name="OR Gate"> + <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(330,760)" name="AND Gate"> + <comp lib="1" loc="(340,370)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="6" loc="(624,352)" name="Text"> - <a name="text" val="Opcodes"/> + <comp lib="1" loc="(190,370)" name="XOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(560,180)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b4"/> + <comp lib="1" loc="(250,280)" name="NOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(560,190)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b5"/> + <comp lib="1" loc="(300,780)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(240,400)" name="AND Gate"> + <comp lib="1" loc="(340,730)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,100)" name="Tunnel"> - <a name="label" val="o0"/> + <comp lib="1" loc="(190,400)" name="XOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(190,220)" name="XOR Gate"> + <comp lib="1" loc="(340,460)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,240)" name="AND Gate"> + <comp lib="1" loc="(300,690)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(670,260)" name="Tunnel"> - <a name="label" val="o2"/> + <comp lib="0" loc="(390,730)" name="Tunnel"> + <a name="label" val="o7"/> </comp> - <comp lib="0" loc="(580,130)" name="Pin"> - <a name="facing" val="west"/> - <a name="width" val="8"/> - <a name="tristate" val="false"/> + <comp lib="1" loc="(190,280)" name="XOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(310,420)" name="OR Gate"> - <a name="facing" val="west"/> + <comp lib="1" loc="(190,220)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,540)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(330,760)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> <comp lib="1" loc="(300,270)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(560,140)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b0"/> + <comp lib="1" loc="(190,640)" name="XOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(690,170)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a3"/> + <comp lib="0" loc="(390,460)" name="Tunnel"> + <a name="label" val="o4"/> </comp> - <comp lib="1" loc="(280,290)" name="OR Gate"> + <comp lib="1" loc="(340,280)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(270,680)" name="AND Gate"> + <comp lib="1" loc="(300,330)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(250,730)" name="NOR Gate"> + <comp lib="1" loc="(330,580)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(130,90)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b0"/> - </comp> - <comp lib="0" loc="(670,300)" name="Tunnel"> - <a name="label" val="o6"/> - </comp> - <comp lib="0" loc="(130,540)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b5"/> - </comp> - <comp lib="6" loc="(611,272)" name="Text"> - <a name="text" val="Output"/> - </comp> - <comp lib="0" loc="(140,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="!A"/> - </comp> - <comp lib="1" loc="(330,310)" name="AND Gate"> + <comp lib="1" loc="(270,500)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(300,360)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(300,150)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(690,210)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a7"/> + <comp lib="1" loc="(240,490)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,630)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b6"/> + <comp lib="1" loc="(190,760)" name="XOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(690,160)" name="Tunnel"> + <comp lib="0" loc="(560,190)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a2"/> + <a name="label" val="b5"/> </comp> - <comp lib="0" loc="(710,130)" name="Pin"> + <comp lib="1" loc="(310,600)" name="OR Gate"> <a name="facing" val="west"/> - <a name="width" val="8"/> - <a name="tristate" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(250,190)" name="NOR Gate"> + <comp lib="1" loc="(270,230)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="6" loc="(612,164)" name="Text"> - <a name="text" val="Input B"/> + <comp lib="0" loc="(710,130)" name="Splitter"> + <a name="facing" val="west"/> + <a name="fanout" val="8"/> + <a name="incoming" val="8"/> </comp> - <comp lib="0" loc="(690,200)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a6"/> + <comp lib="1" loc="(250,370)" name="NOR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(310,510)" name="OR Gate"> - <a name="facing" val="west"/> + <comp lib="6" loc="(746,165)" name="Text"> + <a name="text" val="Input A"/> + </comp> + <comp lib="1" loc="(280,470)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,300)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a2"/> + <comp lib="0" loc="(710,130)" name="Pin"> + <a name="facing" val="west"/> + <a name="width" val="8"/> + <a name="tristate" val="false"/> </comp> - <comp lib="1" loc="(270,500)" name="AND Gate"> + <comp lib="1" loc="(330,220)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(190,640)" name="XOR Gate"> + <comp lib="0" loc="(690,210)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a7"/> + </comp> + <comp lib="1" loc="(310,690)" name="OR Gate"> + <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(280,740)" name="OR Gate"> + <comp lib="1" loc="(280,290)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,720)" name="Tunnel"> + <comp lib="0" loc="(690,190)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b7"/> + <a name="label" val="a5"/> </comp> - <comp lib="1" loc="(240,490)" name="AND Gate"> + <comp lib="0" loc="(220,70)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="OR"/> + </comp> + <comp lib="0" loc="(260,70)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="CC"/> + </comp> + <comp lib="6" loc="(749,472)" name="Text"> + <a name="text" val="OPCODES: 000: OR, 001: AND, 010: XOR, 011: ADD, 100: CIN, 101: NAND, 110: XNOR, 111: SUB"/> + </comp> + <comp lib="6" loc="(612,164)" name="Text"> + <a name="text" val="Input B"/> + </comp> + <comp lib="1" loc="(280,380)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,400)" name="Pin"> - <a name="width" val="3"/> - <a name="tristate" val="false"/> + <comp lib="0" loc="(670,280)" name="Tunnel"> + <a name="label" val="o4"/> </comp> <comp lib="1" loc="(270,770)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(300,180)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(190,100)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> + <comp lib="0" loc="(130,630)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b6"/> + </comp> + <comp lib="1" loc="(330,670)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + <a name="negate1" val="true"/> + </comp> <comp lib="1" loc="(310,240)" name="OR Gate"> <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,780)" name="AND Gate"> + <comp lib="1" loc="(300,360)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(300,420)" name="AND Gate"> + <comp lib="1" loc="(280,110)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> - </comp> - <comp lib="0" loc="(130,180)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b1"/> </comp> - <comp lib="1" loc="(300,690)" name="AND Gate"> + <comp lib="1" loc="(330,400)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(190,490)" name="XOR Gate"> + <comp lib="1" loc="(300,420)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(300,600)" name="AND Gate"> + <comp lib="1" loc="(250,100)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(690,190)" name="Tunnel"> + <comp lib="0" loc="(560,210)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a5"/> + <a name="label" val="b7"/> </comp> - <comp lib="0" loc="(690,180)" name="Tunnel"> + <comp lib="0" loc="(130,750)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a4"/> + <a name="label" val="a7"/> </comp> - <comp lib="1" loc="(340,640)" name="XNOR Gate"> + <comp lib="0" loc="(390,100)" name="Tunnel"> + <a name="label" val="o0"/> + </comp> + <comp lib="1" loc="(190,130)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,380)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="FC"/> - </comp> - <comp lib="0" loc="(180,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="!B"/> - </comp> - <comp lib="0" loc="(130,390)" name="Tunnel"> + <comp lib="0" loc="(690,170)" name="Tunnel"> <a name="facing" val="east"/> <a name="label" val="a3"/> </comp> - <comp lib="1" loc="(300,720)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(190,550)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,150)" name="AND Gate"> + <comp lib="1" loc="(190,670)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="6" loc="(746,165)" name="Text"> - <a name="text" val="Input A"/> + <comp lib="1" loc="(280,560)" name="OR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(580,130)" name="Splitter"> - <a name="facing" val="west"/> - <a name="fanout" val="8"/> - <a name="incoming" val="8"/> + <comp lib="0" loc="(140,70)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="!A"/> </comp> - <comp lib="1" loc="(340,370)" name="XNOR Gate"> + <comp lib="1" loc="(250,640)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(560,150)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b1"/> + <comp lib="0" loc="(770,380)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="CC"/> </comp> - <comp lib="6" loc="(749,472)" name="Text"> - <a name="text" val="OPCODES: 000: OR, 001: AND, 010: XOR, 011: ADD, 100: CIN, 101: NAND, 110: XNOR, 111: SUB"/> + <comp lib="0" loc="(390,550)" name="Tunnel"> + <a name="label" val="o5"/> </comp> - <comp lib="1" loc="(190,730)" name="XOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(560,140)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b0"/> </comp> - <comp lib="1" loc="(330,130)" name="AND Gate"> + <comp lib="1" loc="(300,720)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(190,460)" name="XOR Gate"> + <comp lib="0" loc="(780,380)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="CI"/> + </comp> + <comp lib="1" loc="(300,630)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(340,550)" name="XNOR Gate"> + <comp lib="1" loc="(270,680)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(390,460)" name="Tunnel"> - <a name="label" val="o4"/> - </comp> - <comp lib="1" loc="(240,670)" name="AND Gate"> + <comp lib="1" loc="(270,320)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(190,400)" name="XOR Gate"> + <comp lib="0" loc="(790,380)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="FC"/> + </comp> + <comp lib="1" loc="(270,590)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(330,490)" name="AND Gate"> + <comp lib="1" loc="(340,550)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(330,670)" name="AND Gate"> + <comp lib="1" loc="(240,670)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(780,380)" name="Tunnel"> + <comp lib="0" loc="(740,380)" name="Tunnel"> <a name="facing" val="south"/> - <a name="label" val="CI"/> - </comp> - <comp lib="0" loc="(390,190)" name="Tunnel"> - <a name="label" val="o1"/> + <a name="label" val="!A"/> </comp> - <comp lib="0" loc="(390,640)" name="Tunnel"> - <a name="label" val="o6"/> + <comp lib="1" loc="(240,400)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(640,440)" name="Constant"/> - <comp lib="1" loc="(250,460)" name="NOR Gate"> + <comp lib="1" loc="(240,310)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(300,810)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="tristate" val="false"/> - <a name="labelloc" val="east"/> + <comp lib="0" loc="(760,380)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="OR"/> </comp> - <comp lib="1" loc="(270,410)" name="AND Gate"> + <comp lib="1" loc="(190,460)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(250,550)" name="NOR Gate"> + <comp lib="1" loc="(310,420)" name="OR Gate"> + <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,730)" name="Tunnel"> - <a name="label" val="o7"/> - </comp> - <comp lib="0" loc="(130,570)" name="Tunnel"> + <comp lib="0" loc="(560,180)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a5"/> + <a name="label" val="b4"/> </comp> - <comp lib="1" loc="(280,650)" name="OR Gate"> + <comp lib="1" loc="(300,810)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,270)" name="Tunnel"> - <a name="label" val="o3"/> + <comp lib="0" loc="(690,150)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a1"/> </comp> <comp lib="0" loc="(130,480)" name="Tunnel"> <a name="facing" val="east"/> <a name="label" val="a4"/> </comp> - <comp lib="0" loc="(300,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="CI"/> - </comp> - <comp lib="1" loc="(190,580)" name="XOR Gate"> + <comp lib="1" loc="(310,330)" name="OR Gate"> + <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(240,580)" name="AND Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="6" loc="(611,272)" name="Text"> + <a name="text" val="Output"/> </comp> - <comp lib="1" loc="(190,280)" name="XOR Gate"> + <comp lib="1" loc="(270,410)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="4" loc="(730,400)" name="ROM"> - <a name="addrWidth" val="3"/> - <a name="dataWidth" val="6"/> - <a name="contents">addr/data: 3 6 -8 3b 4 0 2 38 7 12 -</a> + <comp lib="0" loc="(390,640)" name="Tunnel"> + <a name="label" val="o6"/> </comp> - <comp lib="1" loc="(340,280)" name="XNOR Gate"> + <comp lib="1" loc="(340,190)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(190,310)" name="XOR Gate"> + <comp lib="1" loc="(240,580)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(310,330)" name="OR Gate"> - <a name="facing" val="west"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(390,280)" name="Tunnel"> + <a name="label" val="o2"/> </comp> - <comp lib="1" loc="(270,230)" name="AND Gate"> + <comp lib="1" loc="(330,130)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(280,380)" name="OR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(130,300)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a2"/> </comp> - <comp lib="0" loc="(560,200)" name="Tunnel"> + <comp lib="0" loc="(130,180)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b6"/> + <a name="label" val="b1"/> </comp> - <comp lib="1" loc="(240,310)" name="AND Gate"> + <comp lib="1" loc="(250,550)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(190,670)" name="XOR Gate"> + <comp lib="1" loc="(310,150)" name="OR Gate"> + <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(560,210)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b7"/> - </comp> - <comp lib="1" loc="(280,470)" name="OR Gate"> + <comp lib="1" loc="(190,730)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(270,320)" name="AND Gate"> + <comp lib="1" loc="(330,490)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(190,130)" name="XOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="6" loc="(624,352)" name="Text"> + <a name="text" val="Opcodes"/> </comp> - <comp lib="0" loc="(650,320)" name="Pin"> - <a name="output" val="true"/> - <a name="width" val="8"/> - <a name="labelloc" val="east"/> + <comp lib="0" loc="(130,660)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a6"/> </comp> - <comp lib="1" loc="(190,550)" name="XOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(560,170)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b3"/> </comp> - <comp lib="0" loc="(130,210)" name="Tunnel"> + <comp lib="0" loc="(670,270)" name="Tunnel"> + <a name="label" val="o3"/> + </comp> + <comp lib="0" loc="(130,90)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a1"/> + <a name="label" val="b0"/> </comp> - <comp lib="1" loc="(270,590)" name="AND Gate"> + <comp lib="1" loc="(240,760)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(340,730)" name="XNOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(730,400)" name="Splitter"> + <a name="facing" val="north"/> + <a name="fanout" val="6"/> + <a name="incoming" val="6"/> + <a name="appear" val="right"/> </comp> - <comp lib="1" loc="(300,630)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(130,540)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b5"/> </comp> - <comp lib="1" loc="(250,640)" name="NOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(390,370)" name="Tunnel"> + <a name="label" val="o3"/> </comp> - <comp lib="1" loc="(300,450)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(130,360)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b3"/> </comp> - <comp lib="0" loc="(710,130)" name="Splitter"> + <comp lib="0" loc="(580,130)" name="Splitter"> <a name="facing" val="west"/> <a name="fanout" val="8"/> <a name="incoming" val="8"/> </comp> - <comp lib="0" loc="(260,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="CC"/> - </comp> - <comp lib="0" loc="(670,290)" name="Tunnel"> - <a name="label" val="o5"/> - </comp> - <comp lib="0" loc="(730,400)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="6"/> - <a name="incoming" val="6"/> - <a name="appear" val="right"/> - </comp> - <comp lib="1" loc="(300,810)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(670,260)" name="Tunnel"> + <a name="label" val="o2"/> </comp> - <comp lib="1" loc="(280,110)" name="OR Gate"> + <comp lib="1" loc="(190,190)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(310,150)" name="OR Gate"> + <comp lib="0" loc="(580,130)" name="Pin"> <a name="facing" val="west"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="8"/> + <a name="tristate" val="false"/> </comp> - <comp lib="1" loc="(330,220)" name="AND Gate"> + <comp lib="1" loc="(280,740)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(340,190)" name="XNOR Gate"> + <comp lib="1" loc="(280,650)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(340,100)" name="XNOR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(130,120)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a0"/> </comp> <comp lib="1" loc="(310,780)" name="OR Gate"> <a name="facing" val="west"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,280)" name="Tunnel"> - <a name="label" val="o4"/> - </comp> - <comp lib="1" loc="(190,370)" name="XOR Gate"> + <comp lib="1" loc="(300,180)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(220,70)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="OR"/> - </comp> - <comp lib="0" loc="(390,370)" name="Tunnel"> - <a name="label" val="o3"/> + <comp lib="0" loc="(650,320)" name="Pin"> + <a name="output" val="true"/> + <a name="width" val="8"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="1" loc="(280,560)" name="OR Gate"> + <comp lib="1" loc="(300,510)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> + <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(670,310)" name="Tunnel"> - <a name="label" val="o7"/> - </comp> - <comp lib="0" loc="(560,170)" name="Tunnel"> + <comp lib="0" loc="(690,200)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b3"/> + <a name="label" val="a6"/> </comp> - <comp lib="0" loc="(560,160)" name="Tunnel"> + <comp lib="0" loc="(130,720)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="b2"/> + <a name="label" val="b7"/> </comp> - <comp lib="0" loc="(130,660)" name="Tunnel"> + <comp lib="0" loc="(560,200)" name="Tunnel"> <a name="facing" val="east"/> - <a name="label" val="a6"/> + <a name="label" val="b6"/> </comp> - <comp lib="1" loc="(250,100)" name="NOR Gate"> + <comp lib="1" loc="(300,540)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(190,100)" name="XOR Gate"> + <comp lib="0" loc="(130,570)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a5"/> + </comp> + <comp lib="0" loc="(690,140)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a0"/> + </comp> + <comp lib="0" loc="(130,210)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="a1"/> + </comp> + <comp lib="1" loc="(340,640)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,280)" name="Tunnel"> - <a name="label" val="o2"/> - </comp> - <comp lib="1" loc="(250,370)" name="NOR Gate"> + <comp lib="1" loc="(340,100)" name="XNOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(740,380)" name="Tunnel"> + <comp lib="0" loc="(300,70)" name="Tunnel"> <a name="facing" val="south"/> - <a name="label" val="!A"/> + <a name="label" val="CI"/> </comp> - <comp lib="0" loc="(650,320)" name="Splitter"> - <a name="fanout" val="8"/> - <a name="incoming" val="8"/> + <comp lib="0" loc="(560,150)" name="Tunnel"> + <a name="facing" val="east"/> + <a name="label" val="b1"/> </comp> - <comp lib="1" loc="(330,580)" name="AND Gate"> + <comp lib="1" loc="(300,600)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="0" loc="(390,550)" name="Tunnel"> - <a name="label" val="o5"/> + <comp lib="0" loc="(340,70)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="FC"/> </comp> - <comp lib="1" loc="(240,760)" name="AND Gate"> + <comp lib="0" loc="(180,70)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="!B"/> + </comp> + <comp lib="0" loc="(300,810)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="tristate" val="false"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(750,380)" name="Tunnel"> + <a name="facing" val="south"/> + <a name="label" val="!B"/> + </comp> + <comp lib="1" loc="(190,490)" name="XOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(240,220)" name="AND Gate"> + <comp lib="0" loc="(670,250)" name="Tunnel"> + <a name="label" val="o1"/> + </comp> + <comp lib="1" loc="(300,450)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,360)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="b3"/> - </comp> - <comp lib="0" loc="(690,150)" name="Tunnel"> - <a name="facing" val="east"/> - <a name="label" val="a1"/> + <comp lib="0" loc="(650,320)" name="Splitter"> + <a name="fanout" val="8"/> + <a name="incoming" val="8"/> </comp> - <comp lib="1" loc="(240,130)" name="AND Gate"> + <comp lib="0" loc="(640,440)" name="Constant"/> + <comp lib="1" loc="(250,190)" name="NOR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(300,510)" name="AND Gate"> + <comp lib="1" loc="(300,240)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(340,460)" name="XNOR Gate"> + <comp lib="0" loc="(670,310)" name="Tunnel"> + <a name="label" val="o7"/> + </comp> + <comp lib="0" loc="(670,290)" name="Tunnel"> + <a name="label" val="o5"/> + </comp> + <comp lib="1" loc="(240,130)" name="AND Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(760,380)" name="Tunnel"> - <a name="facing" val="south"/> - <a name="label" val="OR"/> - </comp> </circuit> <circuit name="GPR"> <a name="circuit" val="GPR"/> @@ -1292,26 +1296,34 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(180,250)" to="(190,250)"/> <wire from="(220,250)" to="(230,250)"/> <wire from="(300,250)" to="(300,310)"/> - <comp lib="0" loc="(140,130)" name="Pin"> + <comp lib="0" loc="(200,180)" name="Constant"/> + <comp lib="0" loc="(310,230)" name="Constant"> + <a name="facing" val="west"/> <a name="width" val="8"/> - <a name="tristate" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(170,230)" name="Controlled Buffer"> + <comp lib="1" loc="(190,260)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="8"/> </comp> - <comp lib="2" loc="(240,340)" name="Decoder"> - <a name="facing" val="north"/> - <a name="selloc" val="tr"/> - <a name="select" val="2"/> - <a name="enable" val="false"/> + <comp lib="0" loc="(100,90)" name="Pin"> + <a name="width" val="2"/> + <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(240,340)" name="Pin"> - <a name="facing" val="west"/> + <comp lib="0" loc="(100,70)" name="Constant"> <a name="width" val="2"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(140,260)" name="Pin"> + <a name="output" val="true"/> + <a name="width" val="8"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(160,180)" name="Constant"/> + <comp lib="0" loc="(130,200)" name="Pin"> <a name="tristate" val="false"/> </comp> - <comp lib="1" loc="(250,230)" name="Controlled Buffer"> + <comp lib="1" loc="(170,230)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="8"/> </comp> @@ -1319,86 +1331,78 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <a name="facing" val="south"/> <a name="width" val="8"/> </comp> - <comp lib="4" loc="(190,170)" name="Register"/> - <comp lib="0" loc="(130,200)" name="Pin"> + <comp lib="1" loc="(290,260)" name="Controlled Buffer"> + <a name="facing" val="west"/> + <a name="width" val="8"/> + </comp> + <comp lib="0" loc="(110,60)" name="Pin"> + <a name="facing" val="south"/> <a name="tristate" val="false"/> </comp> + <comp lib="0" loc="(240,180)" name="Constant"/> <comp lib="0" loc="(150,340)" name="Pin"> <a name="width" val="2"/> <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(310,260)" name="Constant"> - <a name="facing" val="west"/> + <comp lib="4" loc="(270,170)" name="Register"/> + <comp lib="4" loc="(230,170)" name="Register"/> + <comp lib="0" loc="(140,230)" name="Pin"> + <a name="output" val="true"/> <a name="width" val="8"/> - <a name="value" val="0x0"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="1" loc="(290,260)" name="Controlled Buffer"> - <a name="facing" val="west"/> + <comp lib="1" loc="(230,260)" name="Controlled Buffer"> + <a name="facing" val="south"/> <a name="width" val="8"/> </comp> - <comp lib="0" loc="(100,90)" name="Pin"> - <a name="width" val="2"/> - <a name="tristate" val="false"/> - </comp> - <comp lib="2" loc="(130,80)" name="Multiplexer"> - <a name="selloc" val="tr"/> - <a name="width" val="2"/> + <comp lib="2" loc="(150,340)" name="Decoder"> + <a name="facing" val="north"/> + <a name="select" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(230,260)" name="Controlled Buffer"> + <comp lib="4" loc="(190,170)" name="Register"/> + <comp lib="1" loc="(250,230)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="8"/> </comp> - <comp lib="0" loc="(200,180)" name="Constant"/> - <comp lib="0" loc="(310,230)" name="Constant"> + <comp lib="1" loc="(290,230)" name="Controlled Buffer"> <a name="facing" val="west"/> <a name="width" val="8"/> - <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(100,70)" name="Constant"> - <a name="width" val="2"/> + <comp lib="0" loc="(310,260)" name="Constant"> + <a name="facing" val="west"/> + <a name="width" val="8"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(190,260)" name="Controlled Buffer"> - <a name="facing" val="south"/> + <comp lib="0" loc="(140,130)" name="Pin"> <a name="width" val="8"/> - </comp> - <comp lib="0" loc="(110,60)" name="Pin"> - <a name="facing" val="south"/> <a name="tristate" val="false"/> </comp> - <comp lib="2" loc="(160,80)" name="Decoder"> - <a name="facing" val="south"/> - <a name="select" val="2"/> + <comp lib="2" loc="(130,80)" name="Multiplexer"> + <a name="selloc" val="tr"/> + <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(140,230)" name="Pin"> - <a name="output" val="true"/> - <a name="width" val="8"/> - <a name="labelloc" val="east"/> + <comp lib="2" loc="(240,340)" name="Decoder"> + <a name="facing" val="north"/> + <a name="selloc" val="tr"/> + <a name="select" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(290,230)" name="Controlled Buffer"> + <comp lib="0" loc="(240,340)" name="Pin"> <a name="facing" val="west"/> - <a name="width" val="8"/> + <a name="width" val="2"/> + <a name="tristate" val="false"/> </comp> - <comp lib="4" loc="(230,170)" name="Register"/> <comp lib="1" loc="(210,230)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="8"/> </comp> - <comp lib="0" loc="(240,180)" name="Constant"/> - <comp lib="2" loc="(150,340)" name="Decoder"> - <a name="facing" val="north"/> + <comp lib="2" loc="(160,80)" name="Decoder"> + <a name="facing" val="south"/> <a name="select" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(160,180)" name="Constant"/> - <comp lib="0" loc="(140,260)" name="Pin"> - <a name="output" val="true"/> - <a name="width" val="8"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="4" loc="(270,170)" name="Register"/> </circuit> <circuit name="ISD"> <a name="circuit" val="ISD"/> @@ -2544,1346 +2548,1329 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(520,510)" to="(530,510)"/> <wire from="(880,430)" to="(880,480)"/> <wire from="(600,1230)" to="(610,1230)"/> - <comp lib="1" loc="(800,150)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="1" loc="(800,1230)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="0" loc="(900,550)" name="Constant"> + <comp lib="1" loc="(940,660)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="1" loc="(520,870)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="6" loc="(552,1604)" name="Text"> + <a name="text" val="ALU"/> </comp> - <comp lib="0" loc="(850,60)" name="Constant"> - <a name="facing" val="south"/> + <comp lib="0" loc="(840,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(750,1110)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(1060,240)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="1" loc="(600,1050)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="1" loc="(800,1140)" name="OR Gate"> + <comp lib="1" loc="(360,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(680,1320)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(800,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="0" loc="(390,1020)" name="Constant"> + <comp lib="2" loc="(890,330)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(400,780)" name="OR Gate"> + <comp lib="1" loc="(900,120)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(720,780)" name="OR Gate"> + <comp lib="1" loc="(720,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,660)" name="Constant"> + <comp lib="0" loc="(350,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(720,1230)" name="OR Gate"> + <comp lib="1" loc="(760,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(770,1570)" name="Pin"> - <a name="facing" val="west"/> - <a name="output" val="true"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="0" loc="(750,480)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(260,1390)" name="Constant"> - <a name="width" val="2"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(1010,660)" name="Constant"> + <comp lib="1" loc="(640,1320)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,210)" name="Constant"> + <comp lib="0" loc="(900,640)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,1320)" name="OR Gate"> + <comp lib="1" loc="(760,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(350,480)" name="Constant"> + <comp lib="0" loc="(750,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(600,60)" name="Constant"> + <comp lib="1" loc="(560,780)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1060,60)" name="Constant"> + <comp lib="0" loc="(940,1180)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(850,150)" name="Multiplexer"> + <comp lib="1" loc="(940,210)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(440,420)" name="OR Gate"> + <comp lib="1" loc="(400,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(440,1580)" name="Pin"> - <a name="facing" val="west"/> - <a name="output" val="true"/> - <a name="width" val="8"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="0" loc="(1020,60)" name="Constant"> + <comp lib="0" loc="(750,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(480,1230)" name="OR Gate"> + <comp lib="0" loc="(350,120)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,600)" name="OR Gate"> + <comp lib="1" loc="(520,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(480,870)" name="OR Gate"> + <comp lib="1" loc="(480,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(560,960)" name="OR Gate"> + <comp lib="1" loc="(520,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(360,60)" name="Constant"> + <comp lib="2" loc="(850,1320)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(330,920)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="PCR"/> - <a name="negate2" val="true"/> - <a name="negate3" val="true"/> - <a name="negate6" val="true"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(850,960)" name="Multiplexer"> + <comp lib="4" loc="(240,1580)" name="Register"/> + <comp lib="2" loc="(890,240)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(680,780)" name="OR Gate"> + <comp lib="1" loc="(440,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,640)" name="Constant"> + <comp lib="6" loc="(310,346)" name="Text"> + <a name="text" val="C B 00 10"/> + </comp> + <comp lib="0" loc="(670,300)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,150)" name="Multiplexer"> + <comp lib="1" loc="(900,1200)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(860,280)" name="Constant"> + <comp lib="1" loc="(980,870)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(680,600)" name="OR Gate"> + <comp lib="1" loc="(440,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,1320)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <comp lib="6" loc="(805,1575)" name="Text"> + <a name="text" val="JMP"/> </comp> - <comp lib="0" loc="(800,60)" name="Constant"> + <comp lib="0" loc="(750,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(480,1320)" name="OR Gate"> + <comp lib="0" loc="(630,750)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(900,120)" name="Controlled Buffer"> + <comp lib="0" loc="(710,570)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,780)" name="OR Gate"> + <comp lib="0" loc="(390,840)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,660)" name="Controlled Buffer"> + <comp lib="1" loc="(900,1290)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="1" loc="(480,600)" name="OR Gate"> + <comp lib="1" loc="(760,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(980,240)" name="OR Gate"> + <comp lib="1" loc="(980,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(310,78)" name="Text"> - <a name="text" val="C B A 00"/> - </comp> - <comp lib="1" loc="(1020,510)" name="OR Gate"> + <comp lib="1" loc="(900,750)" name="Controlled Buffer"> <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="1" loc="(1080,1590)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(540,1580)" name="Pin"> - <a name="facing" val="west"/> - <a name="width" val="8"/> - <a name="tristate" val="false"/> - </comp> - <comp lib="1" loc="(900,300)" name="Controlled Buffer"> + <comp lib="1" loc="(860,210)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="0" loc="(1010,480)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(230,1540)" name="Splitter"> - <a name="facing" val="north"/> - <a name="incoming" val="8"/> - <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"/> - </comp> - <comp lib="2" loc="(930,150)" name="Multiplexer"> + <comp lib="2" loc="(890,420)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(940,280)" name="Constant"> + <comp lib="0" loc="(860,640)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(980,780)" name="OR Gate"> + <comp lib="1" loc="(1020,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,420)" name="Multiplexer"> + <comp lib="1" loc="(900,840)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(240,1620)" name="AND Gate"> - <a name="facing" val="west"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="2" loc="(850,1050)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(670,840)" name="Constant"> + <comp lib="0" loc="(900,1270)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(370,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="width" val="3"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="0" loc="(160,50)" name="Splitter"> + <comp lib="1" loc="(360,960)" name="OR Gate"> <a name="facing" val="south"/> - <a name="fanout" val="8"/> - <a name="incoming" val="8"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(860,820)" name="Constant"> + <comp lib="0" loc="(970,930)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(630,210)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="1" loc="(330,1010)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="LB"/> + <a name="negate3" val="true"/> + <a name="negate6" val="true"/> </comp> - <comp lib="0" loc="(590,660)" name="Constant"> + <comp lib="0" loc="(940,1000)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,600)" name="OR Gate"> + <comp lib="1" loc="(440,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(760,150)" name="OR Gate"> + <comp lib="1" loc="(800,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,1200)" name="Constant"> + <comp lib="1" loc="(800,780)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,210)" name="Controlled Buffer"> + <comp lib="0" loc="(670,840)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,1230)" name="OR Gate"> + <comp lib="1" loc="(480,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(930,1050)" name="Multiplexer"> + <comp lib="2" loc="(890,690)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(560,420)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="1" loc="(800,240)" name="OR Gate"> + <comp lib="1" loc="(720,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(630,840)" name="Constant"> + <comp lib="0" loc="(670,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(670,930)" name="Constant"> + <comp lib="0" loc="(710,120)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(910,1470)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="selloc" val="tr"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> - </comp> - <comp lib="0" loc="(390,750)" name="Constant"> + <comp lib="0" loc="(1020,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(400,60)" name="Constant"> + <comp lib="0" loc="(470,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(940,820)" name="Constant"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="6" loc="(839,1559)" name="Text"> - <a name="text" val="A"/> + <comp lib="0" loc="(370,1520)" name="Splitter"> + <a name="facing" val="north"/> + <a name="fanout" val="3"/> + <a name="incoming" val="3"/> + <a name="appear" val="center"/> </comp> - <comp lib="1" loc="(980,510)" name="OR Gate"> + <comp lib="0" loc="(1050,480)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,1230)" name="OR Gate"> + <comp lib="0" loc="(400,60)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(840,1520)" name="OR Gate"> + <comp lib="1" loc="(440,1320)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(330,1100)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="SB"/> - <a name="negate2" val="true"/> - <a name="negate6" val="true"/> + <comp lib="6" loc="(611,1553)" name="Text"> + <a name="text" val="GPR MUX"/> </comp> - <comp lib="1" loc="(760,1050)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="0" loc="(670,570)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,1200)" name="Controlled Buffer"> + <comp lib="0" loc="(750,930)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(350,1110)" name="Constant"> + <comp lib="0" loc="(550,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,690)" name="Multiplexer"> + <comp lib="1" loc="(900,300)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(560,1050)" name="OR Gate"> + <comp lib="0" loc="(640,60)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(680,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,840)" name="Constant"> + <comp lib="0" loc="(220,1490)" name="Splitter"> + <a name="facing" val="north"/> + <a name="incoming" val="4"/> + <a name="bit1" val="0"/> + <a name="bit2" val="1"/> + <a name="bit3" val="1"/> + </comp> + <comp lib="1" loc="(600,870)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(400,150)" name="OR Gate"> + <comp lib="1" loc="(360,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(800,960)" name="OR Gate"> + <comp lib="1" loc="(680,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(930,510)" name="Multiplexer"> + <comp lib="0" loc="(510,570)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(980,690)" name="OR Gate"> + <comp lib="1" loc="(1020,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(890,600)" name="Multiplexer"> + <comp lib="0" loc="(860,100)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(720,150)" name="OR Gate"> + <comp lib="0" loc="(860,280)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,150)" name="OR Gate"> + <comp lib="0" loc="(260,1390)" name="Constant"> + <a name="width" val="2"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(240,1580)" name="Pin"> + <a name="facing" val="west"/> + <a name="output" val="true"/> + <a name="width" val="8"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(970,1110)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,510)" name="OR Gate"> + <comp lib="1" loc="(360,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(440,870)" name="OR Gate"> + <comp lib="1" loc="(480,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1020,870)" name="OR Gate"> + <comp lib="1" loc="(760,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,1200)" name="Constant"> + <comp lib="0" loc="(970,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,510)" name="OR Gate"> + <comp lib="1" loc="(560,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(750,570)" name="Constant"> + <comp lib="1" loc="(860,930)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(470,1110)" name="Constant"> + <comp lib="1" loc="(330,470)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="LLI"/> + <a name="negate6" val="true"/> + <a name="negate7" val="true"/> + </comp> + <comp lib="0" loc="(940,730)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1050,570)" name="Constant"> + <comp lib="0" loc="(940,460)" name="Constant"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(1050,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(940,1270)" name="Constant"> + <comp lib="0" loc="(860,190)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,780)" name="OR Gate"> + <comp lib="1" loc="(860,660)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="2" loc="(930,1140)" name="Multiplexer"> + <comp lib="0" loc="(350,840)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(520,960)" name="OR Gate"> + <comp lib="0" loc="(590,1020)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(480,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,550)" name="Constant"> + <comp lib="2" loc="(930,1320)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(970,1290)" name="Constant"> + <comp lib="0" loc="(430,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,420)" name="Multiplexer"> + <comp lib="0" loc="(790,480)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(350,660)" name="Constant"> + <comp lib="0" loc="(790,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,1020)" name="Controlled Buffer"> + <comp lib="0" loc="(710,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(410,1590)" name="Pin"> - <a name="width" val="8"/> - <a name="tristate" val="false"/> + <comp lib="1" loc="(800,1140)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,390)" name="Controlled Buffer"> + <comp lib="1" loc="(640,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,1290)" name="Constant"> + <comp lib="6" loc="(647,1605)" name="Text"> + <a name="text" val="JMP FLAG"/> + </comp> + <comp lib="0" loc="(470,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1050,1200)" name="Constant"> + <comp lib="0" loc="(430,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,510)" name="OR Gate"> + <comp lib="1" loc="(1060,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(750,1020)" name="Constant"> + <comp lib="1" loc="(560,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(360,1140)" name="OR Gate"> + <comp lib="1" loc="(520,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,570)" name="Constant"> + <comp lib="0" loc="(1050,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(860,1290)" name="Controlled Buffer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="1" loc="(800,1320)" name="OR Gate"> + <comp lib="1" loc="(680,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,510)" name="OR Gate"> + <comp lib="0" loc="(590,660)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(850,510)" name="Multiplexer"> + <comp lib="1" loc="(860,480)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(850,870)" name="Multiplexer"> + <comp lib="0" loc="(390,210)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1050,840)" name="Constant"> + <comp lib="0" loc="(1010,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,240)" name="OR Gate"> + <comp lib="1" loc="(760,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1020,1050)" name="OR Gate"> + <comp lib="1" loc="(600,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1060,690)" name="OR Gate"> + <comp lib="0" loc="(710,300)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,330)" name="OR Gate"> + <comp lib="1" loc="(760,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(802,1555)" name="Text"> - <a name="text" val="PUSH"/> + <comp lib="1" loc="(330,830)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="POP"/> + <a name="negate2" val="true"/> + <a name="negate3" val="true"/> + <a name="negate4" val="true"/> + <a name="negate6" val="true"/> </comp> - <comp lib="1" loc="(560,1230)" name="OR Gate"> + <comp lib="1" loc="(720,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1050,300)" name="Constant"> + <comp lib="2" loc="(890,960)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> + </comp> + <comp lib="0" loc="(590,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(560,870)" name="OR Gate"> + <comp lib="0" loc="(710,1020)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(520,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(940,480)" name="Controlled Buffer"> + <comp lib="1" loc="(860,1020)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="1" loc="(520,690)" name="OR Gate"> + <comp lib="1" loc="(480,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,600)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <comp lib="0" loc="(1060,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="6" loc="(881,1559)" name="Text"> - <a name="text" val="B"/> + <comp lib="1" loc="(600,330)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(890,60)" name="Constant"> + <comp lib="0" loc="(900,820)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(180,1450)" name="Splitter"> - <a name="facing" val="north"/> - <a name="appear" val="center"/> + <comp lib="0" loc="(470,1110)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,780)" name="OR Gate"> + <comp lib="1" loc="(360,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(800,690)" name="OR Gate"> + <comp lib="0" loc="(230,1540)" name="Splitter"> + <a name="facing" val="north"/> + <a name="incoming" val="8"/> + <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"/> + </comp> + <comp lib="1" loc="(240,1620)" name="AND Gate"> + <a name="facing" val="west"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="1" loc="(520,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,420)" name="OR Gate"> + <comp lib="1" loc="(330,560)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="LUI"/> + <a name="negate7" val="true"/> + </comp> + <comp lib="1" loc="(720,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(290,1400)" name="Multiplexer"> + <comp lib="0" loc="(220,1370)" name="Splitter"> + <a name="facing" val="north"/> + <a name="appear" val="center"/> + </comp> + <comp lib="2" loc="(930,600)" name="Multiplexer"> + <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(750,1290)" name="Constant"> + <comp lib="0" loc="(390,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(590,1110)" name="Constant"> + <comp lib="0" loc="(710,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(860,1020)" name="Controlled Buffer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="6" loc="(920,1558)" name="Text"> - <a name="text" val="C"/> - </comp> - <comp lib="1" loc="(720,240)" name="OR Gate"> + <comp lib="1" loc="(600,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1020,780)" name="OR Gate"> + <comp lib="1" loc="(360,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,480)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(860,1090)" name="Constant"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(480,150)" name="OR Gate"> + <comp lib="1" loc="(1060,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1010,1110)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="2" loc="(930,600)" name="Multiplexer"> + <comp lib="1" loc="(940,750)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(670,1200)" name="Constant"> + <comp lib="1" loc="(760,780)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(1080,1590)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1050,480)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="6" loc="(428,1535)" name="Text"> + <a name="text" val="ALU OPCODE"/> </comp> - <comp lib="0" loc="(720,60)" name="Constant"> + <comp lib="0" loc="(790,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,150)" name="OR Gate"> + <comp lib="1" loc="(640,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,1000)" name="Constant"> + <comp lib="1" loc="(900,1020)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,930)" name="Controlled Buffer"> + <comp lib="1" loc="(760,330)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="1" loc="(940,120)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="1" loc="(400,240)" name="OR Gate"> + <comp lib="1" loc="(480,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(680,60)" name="Constant"> + <comp lib="0" loc="(760,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(630,210)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(630,300)" name="Constant"> + <comp lib="4" loc="(1130,1670)" name="Register"> + <a name="width" val="1"/> + <a name="trigger" val="falling"/> + </comp> + <comp lib="2" loc="(930,510)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> + </comp> + <comp lib="0" loc="(590,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,1230)" name="OR Gate"> + <comp lib="1" loc="(440,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(330,380)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="CIN"/> - <a name="negate0" val="true"/> - <a name="negate2" val="true"/> - <a name="negate3" val="true"/> - </comp> - <comp lib="1" loc="(940,300)" name="Controlled Buffer"> + <comp lib="1" loc="(980,780)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(890,330)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> + <comp lib="2" loc="(440,1580)" name="Multiplexer"> + <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(940,570)" name="Controlled Buffer"> + <comp lib="0" loc="(590,210)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(350,570)" name="Constant"> + <comp lib="0" loc="(750,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(980,600)" name="OR Gate"> + <comp lib="1" loc="(980,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(600,1230)" name="OR Gate"> + <comp lib="1" loc="(520,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="4" loc="(110,50)" name="Register"> - <a name="trigger" val="falling"/> + <comp lib="0" loc="(410,1590)" name="Pin"> + <a name="width" val="8"/> + <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(1010,570)" name="Constant"> + <comp lib="1" loc="(980,240)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(510,660)" name="Constant"> + <comp lib="1" loc="(800,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(930,60)" name="Constant"> + <comp lib="0" loc="(1010,480)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,1230)" name="OR Gate"> + <comp lib="1" loc="(560,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,390)" name="Constant"> + <comp lib="0" loc="(470,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(390,1110)" name="Constant"> + <comp lib="0" loc="(550,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(750,390)" name="Constant"> + <comp lib="2" loc="(850,240)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(980,960)" name="OR Gate"> + <comp lib="0" loc="(470,660)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1050,120)" name="Constant"> + <comp lib="0" loc="(670,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(940,190)" name="Constant"> + <comp lib="0" loc="(860,1270)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(280,280)" name="OR Gate"> + <comp lib="1" loc="(900,660)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="1" loc="(800,420)" name="OR Gate"> + <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,210)" name="Constant"> + <comp lib="0" loc="(550,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="6" loc="(611,1553)" name="Text"> - <a name="text" val="GPR MUX"/> - </comp> - <comp lib="0" loc="(670,210)" name="Constant"> + <comp lib="0" loc="(390,1200)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(330,1190)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="SP"/> - <a name="negate6" val="true"/> - </comp> - <comp lib="0" loc="(680,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="labelloc" val="east"/> + <comp lib="1" loc="(1100,1510)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,930)" name="Controlled Buffer"> + <comp lib="0" loc="(890,60)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(940,910)" name="Constant"> + <comp lib="1" loc="(900,570)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="1" loc="(600,1140)" name="OR Gate"> + <comp lib="2" loc="(160,50)" name="Multiplexer"> + <a name="width" val="8"/> + <a name="enable" val="false"/> + </comp> + <comp lib="1" loc="(640,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,660)" name="Constant"> + <comp lib="1" loc="(330,380)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="CIN"/> + <a name="negate0" val="true"/> + <a name="negate2" val="true"/> + <a name="negate3" val="true"/> + </comp> + <comp lib="2" loc="(890,510)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(710,300)" name="Constant"> + <comp lib="0" loc="(590,120)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(560,1320)" name="OR Gate"> + <comp lib="0" loc="(370,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="width" val="3"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(670,930)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,1230)" name="OR Gate"> + <comp lib="0" loc="(1010,930)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(600,870)" name="OR Gate"> + <comp lib="0" loc="(710,480)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(800,330)" name="OR Gate"> + <comp lib="0" loc="(430,1110)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(860,640)" name="Constant"> + <comp lib="0" loc="(940,190)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,1320)" name="OR Gate"> + <comp lib="1" loc="(900,480)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="1" loc="(640,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,570)" name="Constant"> + <comp lib="0" loc="(350,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,330)" name="OR Gate"> + <comp lib="1" loc="(1020,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(760,1553)" name="Text"> - <a name="text" val="POP"/> - </comp> - <comp lib="1" loc="(600,420)" name="OR Gate"> + <comp lib="1" loc="(680,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(640,150)" name="OR Gate"> + <comp lib="1" loc="(560,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,600)" name="OR Gate"> + <comp lib="1" loc="(1060,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(860,1200)" name="Controlled Buffer"> + <comp lib="0" loc="(860,910)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,960)" name="OR Gate"> + <comp lib="1" loc="(680,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,750)" name="Constant"> + <comp lib="2" loc="(930,870)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(940,100)" name="Constant"> + <comp lib="0" loc="(1050,1020)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(790,1110)" name="Constant"> + <comp lib="0" loc="(670,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(980,60)" name="Constant"> + <comp lib="0" loc="(160,50)" name="Splitter"> + <a name="facing" val="south"/> + <a name="fanout" val="8"/> + <a name="incoming" val="8"/> + </comp> + <comp lib="0" loc="(1010,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,1050)" name="OR Gate"> + <comp lib="1" loc="(980,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(360,870)" name="OR Gate"> + <comp lib="0" loc="(1010,390)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(440,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,1140)" name="Multiplexer"> + <comp lib="0" loc="(350,750)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(900,1090)" name="Constant"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(900,460)" name="Constant"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="2" loc="(930,150)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(560,240)" name="OR Gate"> + <comp lib="1" loc="(720,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(480,510)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(280,280)" name="OR Gate"> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(600,330)" name="OR Gate"> + <comp lib="1" loc="(400,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(560,600)" name="OR Gate"> + <comp lib="0" loc="(630,120)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,1140)" name="OR Gate"> + <comp lib="6" loc="(682,1553)" name="Text"> + <a name="text" val="A MUX"/> + </comp> + <comp lib="0" loc="(630,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(600,510)" name="OR Gate"> + <comp lib="1" loc="(800,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(510,750)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="6" loc="(284,1601)" name="Text"> + <a name="text" val="MEM POINTER"/> </comp> - <comp lib="0" loc="(1050,750)" name="Constant"> + <comp lib="1" loc="(560,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,840)" name="Constant"> + <comp lib="0" loc="(940,640)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(850,1230)" name="Multiplexer"> + <comp lib="2" loc="(890,1320)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(1020,240)" name="OR Gate"> + <comp lib="1" loc="(980,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(400,960)" name="OR Gate"> + <comp lib="0" loc="(360,60)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(520,1140)" name="OR Gate"> + <comp lib="1" loc="(560,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1060,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="labelloc" val="east"/> + <comp lib="0" loc="(390,1110)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,600)" name="OR Gate"> + <comp lib="1" loc="(330,1280)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="CMP"/> + </comp> + <comp lib="1" loc="(760,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1020,690)" name="OR Gate"> + <comp lib="1" loc="(640,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,750)" name="Controlled Buffer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(430,930)" name="Constant"> + <comp lib="0" loc="(600,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,240)" name="OR Gate"> + <comp lib="1" loc="(720,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,330)" name="OR Gate"> + <comp lib="1" loc="(640,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,300)" name="Constant"> + <comp lib="1" loc="(480,1140)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="2" loc="(440,1580)" name="Multiplexer"> - <a name="width" val="8"/> - <a name="enable" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,300)" name="Constant"> + <comp lib="1" loc="(520,1320)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,1020)" name="Constant"> + <comp lib="0" loc="(750,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,510)" name="OR Gate"> + <comp lib="4" loc="(110,50)" name="Register"> + <a name="trigger" val="falling"/> + </comp> + <comp lib="1" loc="(1020,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="4" loc="(240,1580)" name="Register"/> - <comp lib="1" loc="(330,650)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="JMP"/> - <a name="negate2" val="true"/> - <a name="negate3" val="true"/> - <a name="negate4" val="true"/> - <a name="negate5" val="true"/> - <a name="negate6" val="true"/> - </comp> - <comp lib="0" loc="(610,1520)" name="Splitter"> - <a name="facing" val="north"/> - <a name="appear" val="center"/> - </comp> - <comp lib="1" loc="(440,960)" name="OR Gate"> + <comp lib="0" loc="(710,210)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(930,1320)" name="Multiplexer"> + <comp lib="0" loc="(860,370)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(480,1050)" name="OR Gate"> + <comp lib="0" loc="(470,1020)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(440,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,840)" name="Constant"> + <comp lib="1" loc="(400,1050)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(860,210)" name="Controlled Buffer"> + <comp lib="2" loc="(890,1140)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(750,120)" name="Constant"> + <comp lib="0" loc="(590,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,1110)" name="Controlled Buffer"> + <comp lib="0" loc="(900,730)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(970,570)" name="Constant"> - <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(630,1290)" name="Constant"> + <comp lib="0" loc="(630,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,390)" name="Controlled Buffer"> + <comp lib="0" loc="(940,910)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="0" loc="(900,370)" name="Constant"> + <comp lib="0" loc="(860,1180)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(720,960)" name="OR Gate"> + <comp lib="1" loc="(1060,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(980,1230)" name="OR Gate"> + <comp lib="1" loc="(1060,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,210)" name="Constant"> + <comp lib="0" loc="(790,1200)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,1320)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="1" loc="(860,390)" name="Controlled Buffer"> + <comp lib="1" loc="(860,840)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="2" loc="(850,1050)" name="Multiplexer"> + <comp lib="0" loc="(900,1000)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> - </comp> - <comp lib="1" loc="(440,330)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="0" loc="(470,480)" name="Constant"> - <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(480,60)" name="Constant"> + <comp lib="0" loc="(550,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(860,120)" name="Controlled Buffer"> - <a name="facing" val="south"/> + <comp lib="0" loc="(260,1350)" name="Constant"> <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(970,1020)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(1050,930)" name="Constant"> - <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,1050)" name="OR Gate"> + <comp lib="1" loc="(520,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(750,930)" name="Constant"> + <comp lib="0" loc="(720,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(480,1140)" name="OR Gate"> + <comp lib="0" loc="(940,1090)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,1050)" name="OR Gate"> + <comp lib="1" loc="(1020,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1010,300)" name="Constant"> + <comp lib="0" loc="(1050,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(750,1200)" name="Constant"> + <comp lib="0" loc="(1010,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(900,660)" name="Controlled Buffer"> + <comp lib="1" loc="(440,1050)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,730)" name="Constant"> + <comp lib="1" loc="(940,930)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(860,460)" name="Constant"> + <comp lib="0" loc="(880,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="width" val="2"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="1" loc="(1060,1320)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(760,1140)" name="OR Gate"> + <comp lib="1" loc="(400,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,1140)" name="OR Gate"> + <comp lib="1" loc="(720,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,1200)" name="Constant"> + <comp lib="0" loc="(350,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(630,660)" name="Constant"> + <comp lib="1" loc="(760,240)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,1290)" name="Constant"> + <comp lib="0" loc="(1050,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(330,740)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="PUSH"/> - <a name="negate2" val="true"/> - <a name="negate3" val="true"/> - <a name="negate5" val="true"/> - <a name="negate6" val="true"/> + <comp lib="1" loc="(1060,150)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,570)" name="Constant"> + <comp lib="0" loc="(750,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(470,930)" name="Constant"> + <comp lib="0" loc="(630,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(930,330)" name="Multiplexer"> + <comp lib="1" loc="(520,780)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(890,1050)" name="Multiplexer"> + <comp lib="2" loc="(930,240)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(970,840)" name="Constant"> + <comp lib="0" loc="(970,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(520,240)" name="OR Gate"> + <comp lib="0" loc="(560,60)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,420)" name="OR Gate"> + <comp lib="1" loc="(640,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,1020)" name="Constant"> + <comp lib="0" loc="(860,1000)" name="Constant"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(480,60)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="0" loc="(630,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> @@ -3892,271 +3879,272 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(930,240)" name="Multiplexer"> + <comp lib="0" loc="(1050,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(930,960)" name="Multiplexer"> + <comp lib="2" loc="(850,780)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(930,690)" name="Multiplexer"> + <comp lib="1" loc="(980,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,390)" name="Constant"> + <comp lib="0" loc="(670,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,780)" name="OR Gate"> + <comp lib="1" loc="(1060,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(520,1230)" name="OR Gate"> + <comp lib="1" loc="(800,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(470,840)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(520,330)" name="OR Gate"> + <comp lib="1" loc="(1060,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(930,1230)" name="Multiplexer"> + <comp lib="6" loc="(760,1553)" name="Text"> + <a name="text" val="POP"/> + </comp> + <comp lib="0" loc="(970,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,960)" name="OR Gate"> + <comp lib="0" loc="(550,750)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,510)" name="OR Gate"> + <comp lib="1" loc="(600,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(200,1410)" name="Splitter"> - <a name="facing" val="north"/> - <a name="appear" val="center"/> + <comp lib="6" loc="(306,161)" name="Text"> + <a name="text" val="C B A 01"/> </comp> - <comp lib="1" loc="(900,1110)" name="Controlled Buffer"> + <comp lib="0" loc="(790,660)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,1140)" name="OR Gate"> + <comp lib="1" loc="(330,110)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="OR"/> + <a name="negate0" val="true"/> + <a name="negate1" val="true"/> + </comp> + <comp lib="1" loc="(560,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,120)" name="Constant"> + <comp lib="1" loc="(600,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(600,240)" name="OR Gate"> + <comp lib="0" loc="(770,1570)" name="Pin"> + <a name="facing" val="west"/> + <a name="output" val="true"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="1" loc="(840,1520)" name="OR Gate"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,1050)" name="OR Gate"> + <comp lib="1" loc="(880,1520)" name="OR Gate"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,570)" name="Constant"> + <comp lib="0" loc="(510,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,150)" name="OR Gate"> + <comp lib="2" loc="(850,600)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(480,690)" name="OR Gate"> + <comp lib="1" loc="(680,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,840)" name="Controlled Buffer"> + <comp lib="1" loc="(520,960)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(220,1490)" name="Splitter"> - <a name="facing" val="north"/> - <a name="incoming" val="4"/> - <a name="bit1" val="0"/> - <a name="bit2" val="1"/> - <a name="bit3" val="1"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,1320)" name="OR Gate"> + <comp lib="1" loc="(360,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(860,480)" name="Controlled Buffer"> + <comp lib="0" loc="(750,210)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="2" loc="(930,1230)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(360,240)" name="OR Gate"> + <comp lib="1" loc="(680,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(310,258)" name="Text"> - <a name="text" val="C B A 10"/> + <comp lib="1" loc="(900,930)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(760,690)" name="OR Gate"> + <comp lib="1" loc="(1020,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(640,1140)" name="OR Gate"> + <comp lib="1" loc="(480,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,1020)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(510,480)" name="Constant"> + <comp lib="1" loc="(940,480)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(880,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> <a name="width" val="2"/> - <a name="labelloc" val="east"/> </comp> - <comp lib="0" loc="(630,120)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="6" loc="(881,1559)" name="Text"> + <a name="text" val="B"/> </comp> - <comp lib="0" loc="(1010,120)" name="Constant"> + <comp lib="1" loc="(720,510)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,330)" name="Multiplexer"> - <a name="facing" val="south"/> + <comp lib="2" loc="(290,1440)" name="Multiplexer"> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(940,840)" name="Controlled Buffer"> + <comp lib="1" loc="(680,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1010,930)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="0" loc="(670,1580)" name="Pin"> + <a name="tristate" val="false"/> </comp> - <comp lib="2" loc="(890,510)" name="Multiplexer"> + <comp lib="0" loc="(590,300)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,1230)" name="OR Gate"> + <comp lib="1" loc="(400,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(860,550)" name="Constant"> + <comp lib="0" loc="(1050,390)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(770,1570)" name="AND Gate"> + <comp lib="1" loc="(920,1520)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="size" val="30"/> <a name="inputs" val="2"/> - <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(1060,600)" name="OR Gate"> + <comp lib="1" loc="(720,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(630,1110)" name="Constant"> + <comp lib="1" loc="(860,750)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(970,1200)" name="Constant"> + <comp lib="1" loc="(940,390)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(1050,1020)" name="Constant"> + <comp lib="0" loc="(610,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="width" val="2"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(670,120)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,870)" name="OR Gate"> + <comp lib="0" loc="(200,1410)" name="Splitter"> + <a name="facing" val="north"/> + <a name="appear" val="center"/> + </comp> + <comp lib="2" loc="(850,330)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(550,1110)" name="Constant"> + <comp lib="0" loc="(1050,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,1090)" name="Constant"> + <comp lib="0" loc="(900,280)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1010,1290)" name="Constant"> + <comp lib="0" loc="(790,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(510,930)" name="Constant"> + <comp lib="1" loc="(560,330)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(750,750)" name="Constant"> + <comp lib="0" loc="(550,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(790,1290)" name="Constant"> + <comp lib="0" loc="(550,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,420)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="0" loc="(970,660)" name="Constant"> + <comp lib="0" loc="(390,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(980,420)" name="OR Gate"> + <comp lib="1" loc="(640,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(400,420)" name="OR Gate"> + <comp lib="0" loc="(970,120)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(880,1520)" name="OR Gate"> + <comp lib="1" loc="(360,1320)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(600,1320)" name="OR Gate"> + <comp lib="1" loc="(1060,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(350,300)" name="Constant"> + <comp lib="0" loc="(550,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> @@ -4165,1165 +4153,1181 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(920,1520)" name="OR Gate"> + <comp lib="0" loc="(940,550)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(890,240)" name="Multiplexer"> + <comp lib="1" loc="(400,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1050,1290)" name="Constant"> + <comp lib="0" loc="(470,1200)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,960)" name="OR Gate"> + <comp lib="1" loc="(1020,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(1020,1320)" name="OR Gate"> + <comp lib="0" loc="(790,390)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(350,1020)" name="Constant"> + <comp lib="1" loc="(940,840)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(980,330)" name="OR Gate"> + <comp lib="1" loc="(680,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(480,420)" name="OR Gate"> + <comp lib="2" loc="(930,420)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(670,480)" name="Constant"> + <comp lib="0" loc="(430,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(520,1320)" name="OR Gate"> + <comp lib="1" loc="(480,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(130,60)" name="Constant"> - <a name="width" val="8"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(230,1490)" name="Constant"> + <comp lib="1" loc="(600,420)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="4"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(280,1520)" name="OR Gate"> - <a name="width" val="8"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(350,930)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(390,1200)" name="Constant"> + <comp lib="1" loc="(1020,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(860,190)" name="Constant"> + <comp lib="0" loc="(1010,1020)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,870)" name="OR Gate"> + <comp lib="1" loc="(560,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,210)" name="Constant"> + <comp lib="2" loc="(850,420)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(900,280)" name="Constant"> + <comp lib="2" loc="(930,1140)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(440,150)" name="OR Gate"> + <comp lib="1" loc="(900,390)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(480,960)" name="OR Gate"> + <comp lib="1" loc="(330,290)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="ADD"/> + <a name="negate0" val="true"/> + </comp> + <comp lib="1" loc="(860,300)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(750,300)" name="Constant"> + <comp lib="0" loc="(970,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,1230)" name="OR Gate"> + <comp lib="1" loc="(440,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(370,1520)" name="Splitter"> - <a name="facing" val="north"/> - <a name="fanout" val="3"/> - <a name="incoming" val="3"/> - <a name="appear" val="center"/> - </comp> - <comp lib="1" loc="(980,1320)" name="OR Gate"> + <comp lib="1" loc="(1060,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(320,1530)" name="Multiplexer"> - <a name="selloc" val="tr"/> - <a name="width" val="8"/> - <a name="enable" val="false"/> - </comp> - <comp lib="0" loc="(790,390)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(560,510)" name="OR Gate"> + <comp lib="1" loc="(1020,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,480)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(390,570)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="1" loc="(330,1190)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="SP"/> + <a name="negate6" val="true"/> </comp> - <comp lib="0" loc="(900,190)" name="Constant"> + <comp lib="1" loc="(720,870)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(860,300)" name="Controlled Buffer"> + <comp lib="1" loc="(560,1140)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(80,110)" name="Pin"> - <a name="tristate" val="false"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,1180)" name="Constant"> + <comp lib="2" loc="(850,960)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(1060,1320)" name="OR Gate"> + <comp lib="1" loc="(800,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(860,930)" name="Controlled Buffer"> + <comp lib="2" loc="(890,780)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(980,150)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="1" loc="(330,200)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="NAND"/> + <a name="negate1" val="true"/> </comp> - <comp lib="1" loc="(560,780)" name="OR Gate"> + <comp lib="1" loc="(1020,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(440,1050)" name="OR Gate"> + <comp lib="1" loc="(860,1110)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(760,60)" name="Constant"> + <comp lib="0" loc="(970,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(970,210)" name="Constant"> + <comp lib="1" loc="(860,1200)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(790,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,960)" name="OR Gate"> + <comp lib="1" loc="(520,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,660)" name="Constant"> + <comp lib="0" loc="(670,1200)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(790,1200)" name="Constant"> + <comp lib="0" loc="(750,120)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(160,50)" name="Multiplexer"> - <a name="width" val="8"/> - <a name="enable" val="false"/> + <comp lib="0" loc="(1010,120)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(670,300)" name="Constant"> + <comp lib="0" loc="(710,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(970,750)" name="Constant"> + <comp lib="0" loc="(630,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(610,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="width" val="2"/> - <a name="labelloc" val="east"/> + <comp lib="0" loc="(590,1290)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(590,1020)" name="Constant"> + <comp lib="0" loc="(430,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,730)" name="Constant"> + <comp lib="0" loc="(900,100)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(290,1440)" name="Multiplexer"> + <comp lib="2" loc="(850,1140)" name="Multiplexer"> + <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(330,560)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="LUI"/> - <a name="negate7" val="true"/> - </comp> - <comp lib="0" loc="(920,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="width" val="2"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="1" loc="(640,330)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> - </comp> - <comp lib="1" loc="(800,870)" name="OR Gate"> + <comp lib="0" loc="(970,840)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(600,600)" name="OR Gate"> + <comp lib="1" loc="(760,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(350,1200)" name="Constant"> + <comp lib="2" loc="(890,1050)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(890,1320)" name="Multiplexer"> + <comp lib="2" loc="(890,600)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(350,120)" name="Constant"> + <comp lib="1" loc="(330,1100)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="SB"/> + <a name="negate2" val="true"/> + <a name="negate6" val="true"/> + </comp> + <comp lib="1" loc="(400,330)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(860,370)" name="Constant"> + <comp lib="0" loc="(790,570)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(710,1110)" name="Constant"> + <comp lib="0" loc="(390,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(600,690)" name="OR Gate"> + <comp lib="1" loc="(1020,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(940,460)" name="Constant"> - <a name="facing" val="south"/> + <comp lib="2" loc="(290,1360)" name="Multiplexer"> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(760,600)" name="OR Gate"> + <comp lib="2" loc="(890,150)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(860,570)" name="Controlled Buffer"> + <comp lib="0" loc="(210,1520)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="width" val="4"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(390,300)" name="Constant"> + <comp lib="0" loc="(790,210)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,960)" name="Multiplexer"> + <comp lib="0" loc="(940,1270)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(980,870)" name="OR Gate"> + <comp lib="1" loc="(520,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="4" loc="(1130,1670)" name="Register"> - <a name="width" val="1"/> - <a name="trigger" val="falling"/> - </comp> - <comp lib="1" loc="(520,600)" name="OR Gate"> + <comp lib="1" loc="(800,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,750)" name="Constant"> + <comp lib="0" loc="(510,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(860,840)" name="Controlled Buffer"> + <comp lib="1" loc="(330,740)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="PUSH"/> + <a name="negate2" val="true"/> + <a name="negate3" val="true"/> + <a name="negate5" val="true"/> + <a name="negate6" val="true"/> + </comp> + <comp lib="0" loc="(970,210)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(350,750)" name="Constant"> + <comp lib="0" loc="(750,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(480,330)" name="OR Gate"> + <comp lib="1" loc="(330,920)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="PCR"/> + <a name="negate2" val="true"/> + <a name="negate3" val="true"/> + <a name="negate6" val="true"/> + </comp> + <comp lib="1" loc="(440,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,750)" name="Constant"> + <comp lib="1" loc="(860,570)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(900,910)" name="Constant"> + <comp lib="0" loc="(860,1090)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(640,60)" name="Constant"> + <comp lib="1" loc="(860,390)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(860,820)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(900,480)" name="Controlled Buffer"> + <comp lib="2" loc="(850,1230)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(1060,330)" name="OR Gate"> + <comp lib="0" loc="(750,480)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(940,1090)" name="Constant"> + <comp lib="2" loc="(910,1470)" name="Multiplexer"> <a name="facing" val="south"/> + <a name="selloc" val="tr"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(680,240)" name="OR Gate"> + <comp lib="1" loc="(600,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(470,660)" name="Constant"> + <comp lib="0" loc="(1010,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(670,120)" name="Constant"> + <comp lib="1" loc="(940,570)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(800,600)" name="OR Gate"> + <comp lib="0" loc="(710,840)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="6" loc="(306,161)" name="Text"> - <a name="text" val="C B A 01"/> + <comp lib="0" loc="(1050,120)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="6" loc="(371,1612)" name="Text"> - <a name="text" val="CUR PC ADDR"/> + <comp lib="0" loc="(430,1200)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,240)" name="OR Gate"> + <comp lib="1" loc="(760,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,930)" name="Constant"> + <comp lib="0" loc="(180,1450)" name="Splitter"> + <a name="facing" val="north"/> + <a name="appear" val="center"/> + </comp> + <comp lib="0" loc="(350,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,1050)" name="OR Gate"> + <comp lib="0" loc="(470,480)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(600,780)" name="OR Gate"> + <comp lib="0" loc="(920,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="width" val="2"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="1" loc="(560,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,660)" name="Constant"> + <comp lib="0" loc="(230,1490)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="4"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(560,60)" name="Constant"> + <comp lib="0" loc="(1010,750)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(640,510)" name="OR Gate"> + <comp lib="1" loc="(940,300)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(860,660)" name="Controlled Buffer"> + <comp lib="1" loc="(360,1230)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(470,750)" name="Constant"> + <comp lib="1" loc="(720,960)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,930)" name="Constant"> + <comp lib="0" loc="(630,1110)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(800,420)" name="OR Gate"> + <comp lib="1" loc="(1020,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(680,690)" name="OR Gate"> + <comp lib="1" loc="(360,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(560,150)" name="OR Gate"> + <comp lib="1" loc="(640,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(510,570)" name="Constant"> + <comp lib="0" loc="(1050,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,600)" name="OR Gate"> + <comp lib="1" loc="(520,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,1580)" name="Pin"> - <a name="tristate" val="false"/> - </comp> - <comp lib="0" loc="(550,1020)" name="Constant"> + <comp lib="1" loc="(600,690)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,390)" name="Constant"> + <comp lib="0" loc="(860,460)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="6" loc="(647,1605)" name="Text"> - <a name="text" val="JMP FLAG"/> - </comp> - <comp lib="2" loc="(850,240)" name="Multiplexer"> + <comp lib="0" loc="(900,550)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(860,1000)" name="Constant"> + <comp lib="0" loc="(790,120)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,420)" name="OR Gate"> + <comp lib="1" loc="(680,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,780)" name="Multiplexer"> + <comp lib="2" loc="(850,150)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(330,1280)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="CMP"/> + <comp lib="1" loc="(980,1050)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(970,1110)" name="Constant"> + <comp lib="4" loc="(710,1580)" name="Register"> + <a name="width" val="1"/> + <a name="trigger" val="falling"/> + </comp> + <comp lib="1" loc="(400,870)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(860,1180)" name="Constant"> + <comp lib="1" loc="(860,1290)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(710,120)" name="Constant"> + <comp lib="0" loc="(970,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(750,210)" name="Constant"> + <comp lib="1" loc="(900,1110)" name="Controlled Buffer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(430,1020)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,690)" name="OR Gate"> + <comp lib="1" loc="(440,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(210,1520)" name="Constant"> + <comp lib="0" loc="(710,1110)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="4"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1050,210)" name="Constant"> + <comp lib="0" loc="(430,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(430,750)" name="Constant"> + <comp lib="1" loc="(480,600)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(440,1320)" name="OR Gate"> + <comp lib="2" loc="(930,330)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> + </comp> + <comp lib="1" loc="(800,690)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="1" loc="(480,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(560,1140)" name="OR Gate"> + <comp lib="1" loc="(600,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,930)" name="Constant"> + <comp lib="1" loc="(940,1110)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="0" loc="(630,750)" name="Constant"> - <a name="facing" val="south"/> + <comp lib="0" loc="(260,1430)" name="Constant"> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(900,1200)" name="Controlled Buffer"> + <comp lib="0" loc="(610,1520)" name="Splitter"> + <a name="facing" val="north"/> + <a name="appear" val="center"/> + </comp> + <comp lib="1" loc="(600,510)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,570)" name="Constant"> + <comp lib="1" loc="(940,1020)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> <comp lib="1" loc="(980,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,480)" name="Constant"> + <comp lib="0" loc="(510,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,330)" name="OR Gate"> + <comp lib="1" loc="(600,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1010,750)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(760,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="6" loc="(476,1604)" name="Text"> - <a name="text" val="IMM VALUE"/> - </comp> - <comp lib="1" loc="(1060,870)" name="OR Gate"> + <comp lib="1" loc="(360,1050)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,840)" name="Constant"> + <comp lib="0" loc="(520,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(750,660)" name="Constant"> + <comp lib="2" loc="(850,870)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> + </comp> + <comp lib="0" loc="(680,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,510)" name="OR Gate"> + <comp lib="1" loc="(640,780)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(640,690)" name="OR Gate"> + <comp lib="1" loc="(440,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(720,690)" name="OR Gate"> + <comp lib="1" loc="(720,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(890,1230)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> - </comp> - <comp lib="0" loc="(710,1200)" name="Constant"> + <comp lib="0" loc="(350,480)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(720,870)" name="OR Gate"> + <comp lib="1" loc="(400,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(390,930)" name="Constant"> + <comp lib="0" loc="(1050,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,1290)" name="Controlled Buffer"> + <comp lib="0" loc="(350,930)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,690)" name="OR Gate"> + <comp lib="1" loc="(1060,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(440,60)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="1" loc="(860,750)" name="Controlled Buffer"> + <comp lib="2" loc="(890,1230)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(430,390)" name="Constant"> + <comp lib="0" loc="(390,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(510,840)" name="Constant"> + <comp lib="1" loc="(400,420)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="0" loc="(390,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(260,1350)" name="Constant"> + <comp lib="0" loc="(900,370)" name="Constant"> + <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(900,570)" name="Controlled Buffer"> + <comp lib="0" loc="(900,1180)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1100,1510)" name="OR Gate"> + <comp lib="0" loc="(130,60)" name="Constant"> + <a name="width" val="8"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(440,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(330,110)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="OR"/> - <a name="negate0" val="true"/> - <a name="negate1" val="true"/> - </comp> - <comp lib="0" loc="(900,1180)" name="Constant"> + <comp lib="0" loc="(630,300)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,330)" name="OR Gate"> + <comp lib="1" loc="(800,330)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(550,1290)" name="Constant"> + <comp lib="1" loc="(770,1570)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + <a name="negate1" val="true"/> + </comp> + <comp lib="0" loc="(390,390)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,780)" name="Multiplexer"> + <comp lib="0" loc="(240,1510)" name="Splitter"> + <a name="facing" val="north"/> + <a name="incoming" val="8"/> + <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"/> + </comp> + <comp lib="6" loc="(802,1555)" name="Text"> + <a name="text" val="PUSH"/> + </comp> + <comp lib="2" loc="(930,960)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(790,120)" name="Constant"> + <comp lib="0" loc="(980,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(220,1370)" name="Splitter"> - <a name="facing" val="north"/> - <a name="appear" val="center"/> - </comp> - <comp lib="0" loc="(860,100)" name="Constant"> + <comp lib="1" loc="(720,1050)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(900,640)" name="Constant"> + <comp lib="0" loc="(900,190)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(970,120)" name="Constant"> + <comp lib="0" loc="(670,210)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(330,470)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="LLI"/> - <a name="negate6" val="true"/> - <a name="negate7" val="true"/> - </comp> - <comp lib="1" loc="(520,1050)" name="OR Gate"> + <comp lib="1" loc="(400,690)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(680,870)" name="OR Gate"> + <comp lib="1" loc="(400,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(520,780)" name="OR Gate"> + <comp lib="1" loc="(360,600)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(520,510)" name="OR Gate"> + <comp lib="1" loc="(680,870)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(670,1290)" name="Constant"> + <comp lib="0" loc="(390,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1010,390)" name="Constant"> + <comp lib="1" loc="(360,330)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(590,750)" name="Constant"> + <comp lib="1" loc="(760,1140)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(330,290)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="ADD"/> - <a name="negate0" val="true"/> + <comp lib="6" loc="(310,258)" name="Text"> + <a name="text" val="C B A 10"/> </comp> - <comp lib="1" loc="(900,1020)" name="Controlled Buffer"> + <comp lib="1" loc="(600,1140)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(850,690)" name="Multiplexer"> - <a name="facing" val="south"/> + <comp lib="2" loc="(290,1400)" name="Multiplexer"> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="6" loc="(805,1575)" name="Text"> - <a name="text" val="JMP"/> - </comp> - <comp lib="1" loc="(860,1110)" name="Controlled Buffer"> + <comp lib="0" loc="(670,1290)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(400,690)" name="OR Gate"> - <a name="facing" val="south"/> + <comp lib="1" loc="(280,1520)" name="OR Gate"> + <a name="width" val="8"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(800,1050)" name="OR Gate"> + <comp lib="0" loc="(550,840)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(630,1200)" name="Constant"> + <comp lib="0" loc="(430,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(440,1230)" name="OR Gate"> + <comp lib="0" loc="(860,730)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> </comp> - <comp lib="1" loc="(1060,420)" name="OR Gate"> + <comp lib="0" loc="(390,750)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(860,730)" name="Constant"> + <comp lib="0" loc="(850,60)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,1320)" name="OR Gate"> + <comp lib="2" loc="(930,1050)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(680,960)" name="OR Gate"> + <comp lib="0" loc="(1010,210)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1060,1140)" name="OR Gate"> + <comp lib="0" loc="(1060,60)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(980,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(290,1360)" name="Multiplexer"> + <comp lib="0" loc="(930,60)" name="Constant"> + <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(330,200)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="NAND"/> - <a name="negate1" val="true"/> + <comp lib="0" loc="(430,840)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(760,420)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(80,50)" name="Pin"> + <comp lib="0" loc="(540,1580)" name="Pin"> + <a name="facing" val="west"/> <a name="width" val="8"/> <a name="tristate" val="false"/> </comp> - <comp lib="1" loc="(600,150)" name="OR Gate"> - <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="1" loc="(330,650)" name="AND Gate"> + <a name="inputs" val="8"/> + <a name="label" val="JMP"/> + <a name="negate2" val="true"/> + <a name="negate3" val="true"/> + <a name="negate4" val="true"/> + <a name="negate5" val="true"/> + <a name="negate6" val="true"/> </comp> - <comp lib="0" loc="(860,910)" name="Constant"> + <comp lib="1" loc="(900,210)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(750,1200)" name="Constant"> + <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(330,1010)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="LB"/> - <a name="negate3" val="true"/> - <a name="negate6" val="true"/> + <comp lib="0" loc="(440,1580)" name="Pin"> + <a name="facing" val="west"/> + <a name="output" val="true"/> + <a name="width" val="8"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="0" loc="(350,840)" name="Constant"> + <comp lib="0" loc="(1010,660)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,1270)" name="Constant"> + <comp lib="1" loc="(940,1200)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> + </comp> + <comp lib="0" loc="(710,750)" name="Constant"> + <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(930,420)" name="Multiplexer"> + <comp lib="0" loc="(440,60)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,150)" name="OR Gate"> + <comp lib="1" loc="(480,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(552,1604)" name="Text"> - <a name="text" val="ALU"/> - </comp> - <comp lib="0" loc="(630,390)" name="Constant"> + <comp lib="0" loc="(350,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(470,1200)" name="Constant"> + <comp lib="0" loc="(790,300)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="2" loc="(890,870)" name="Multiplexer"> + <comp lib="0" loc="(510,750)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,460)" name="Constant"> + <comp lib="1" loc="(1020,1230)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1050,390)" name="Constant"> + <comp lib="0" loc="(510,840)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(710,480)" name="Constant"> + <comp lib="0" loc="(1050,210)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(680,420)" name="OR Gate"> + <comp lib="0" loc="(800,60)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(970,300)" name="Constant"> + <comp lib="0" loc="(750,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(1010,840)" name="Constant"> + <comp lib="0" loc="(940,280)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(760,780)" name="OR Gate"> + <comp lib="1" loc="(1060,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(900,820)" name="Constant"> + <comp lib="0" loc="(860,550)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,100)" name="Constant"> + <comp lib="0" loc="(350,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(970,390)" name="Constant"> + <comp lib="1" loc="(720,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1010,210)" name="Constant"> + <comp lib="1" loc="(640,690)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(600,960)" name="OR Gate"> + <comp lib="1" loc="(980,960)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(760,420)" name="OR Gate"> + <comp lib="1" loc="(1020,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(428,1535)" name="Text"> - <a name="text" val="ALU OPCODE"/> + <comp lib="1" loc="(640,600)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,480)" name="Constant"> + <comp lib="0" loc="(790,930)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(590,390)" name="Constant"> + <comp lib="6" loc="(839,1559)" name="Text"> + <a name="text" val="A"/> + </comp> + <comp lib="0" loc="(760,60)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(240,1510)" name="Splitter"> - <a name="facing" val="north"/> - <a name="incoming" val="8"/> - <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"/> + <comp lib="1" loc="(680,330)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(900,1290)" name="Controlled Buffer"> + <comp lib="1" loc="(560,240)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(470,570)" name="Constant"> + <comp lib="0" loc="(900,910)" name="Constant"> <a name="facing" val="south"/> + <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(940,120)" name="Controlled Buffer"> + <comp lib="1" loc="(980,330)" name="OR Gate"> <a name="facing" val="south"/> - <a name="width" val="2"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="2" loc="(930,870)" name="Multiplexer"> + <comp lib="0" loc="(970,1290)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="2" loc="(930,780)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(1010,1020)" name="Constant"> + <comp lib="6" loc="(371,1612)" name="Text"> + <a name="text" val="CUR PC ADDR"/> + </comp> + <comp lib="0" loc="(550,1200)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(1020,1140)" name="OR Gate"> + <comp lib="1" loc="(520,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(800,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="labelloc" val="east"/> - </comp> - <comp lib="0" loc="(260,1430)" name="Constant"> + <comp lib="0" loc="(940,100)" name="Constant"> + <a name="facing" val="south"/> <a name="width" val="2"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(900,1000)" name="Constant"> + <comp lib="1" loc="(860,120)" name="Controlled Buffer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(520,150)" name="OR Gate"> + <comp lib="2" loc="(930,690)" name="Multiplexer"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(940,750)" name="Controlled Buffer"> + <comp lib="0" loc="(940,820)" name="Constant"> <a name="facing" val="south"/> <a name="width" val="2"/> </comp> - <comp lib="0" loc="(470,1020)" name="Constant"> + <comp lib="1" loc="(940,1290)" name="Controlled Buffer"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="width" val="2"/> </comp> - <comp lib="6" loc="(682,1553)" name="Text"> - <a name="text" val="A MUX"/> + <comp lib="6" loc="(920,1558)" name="Text"> + <a name="text" val="C"/> </comp> - <comp lib="0" loc="(670,660)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <comp lib="2" loc="(320,1530)" name="Multiplexer"> + <a name="selloc" val="tr"/> + <a name="width" val="8"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(480,240)" name="OR Gate"> + <comp lib="1" loc="(800,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="4" loc="(710,1580)" name="Register"> - <a name="width" val="1"/> - <a name="trigger" val="falling"/> - </comp> - <comp lib="1" loc="(800,780)" name="OR Gate"> + <comp lib="1" loc="(800,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(430,1110)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="2" loc="(890,1140)" name="Multiplexer"> + <comp lib="2" loc="(850,510)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(360,330)" name="OR Gate"> + <comp lib="0" loc="(710,930)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(640,420)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(400,1140)" name="OR Gate"> + <comp lib="1" loc="(1060,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(330,830)" name="AND Gate"> - <a name="inputs" val="8"/> - <a name="label" val="POP"/> - <a name="negate2" val="true"/> - <a name="negate3" val="true"/> - <a name="negate4" val="true"/> - <a name="negate6" val="true"/> + <comp lib="0" loc="(80,50)" name="Pin"> + <a name="width" val="8"/> + <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(520,60)" name="Constant"> + <comp lib="0" loc="(80,80)" name="Pin"> + <a name="tristate" val="false"/> + </comp> + <comp lib="6" loc="(476,1604)" name="Text"> + <a name="text" val="IMM VALUE"/> + </comp> + <comp lib="6" loc="(310,78)" name="Text"> + <a name="text" val="C B A 00"/> + </comp> + <comp lib="0" loc="(680,1520)" name="Pin"> + <a name="facing" val="north"/> + <a name="output" val="true"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="1" loc="(680,510)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(400,870)" name="OR Gate"> + <comp lib="1" loc="(480,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(480,780)" name="OR Gate"> + <comp lib="2" loc="(890,870)" name="Multiplexer"> + <a name="facing" val="south"/> + <a name="width" val="2"/> + <a name="enable" val="false"/> + </comp> + <comp lib="1" loc="(360,240)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(284,1601)" name="Text"> - <a name="text" val="MEM POINTER"/> + <comp lib="0" loc="(970,570)" name="Constant"> + <a name="facing" val="south"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="1" loc="(480,1320)" name="OR Gate"> + <a name="facing" val="south"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> <comp lib="1" loc="(800,510)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(1050,660)" name="Constant"> + <comp lib="0" loc="(430,570)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(360,600)" name="OR Gate"> + <comp lib="1" loc="(560,1320)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(710,840)" name="Constant"> - <a name="facing" val="south"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(970,930)" name="Constant"> + <comp lib="1" loc="(600,150)" name="OR Gate"> <a name="facing" val="south"/> - <a name="value" val="0x0"/> + <a name="size" val="30"/> + <a name="inputs" val="2"/> </comp> - <comp lib="0" loc="(790,300)" name="Constant"> + <comp lib="0" loc="(1010,1290)" name="Constant"> <a name="facing" val="south"/> <a name="value" val="0x0"/> </comp> - <comp lib="0" loc="(80,80)" name="Pin"> + <comp lib="0" loc="(80,110)" name="Pin"> <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(860,1270)" name="Constant"> + <comp lib="2" loc="(850,690)" name="Multiplexer"> <a name="facing" val="south"/> <a name="width" val="2"/> - <a name="value" val="0x0"/> - </comp> - <comp lib="0" loc="(840,1520)" name="Pin"> - <a name="facing" val="north"/> - <a name="output" val="true"/> - <a name="width" val="2"/> - <a name="labelloc" val="east"/> + <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(760,960)" name="OR Gate"> + <comp lib="0" loc="(470,750)" name="Constant"> <a name="facing" val="south"/> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(560,330)" name="OR Gate"> + <comp lib="1" loc="(400,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(940,210)" name="Controlled Buffer"> + <comp lib="0" loc="(590,1200)" name="Constant"> <a name="facing" val="south"/> - <a name="width" val="2"/> - </comp> - <comp lib="0" loc="(240,1580)" name="Pin"> - <a name="facing" val="west"/> - <a name="output" val="true"/> - <a name="width" val="8"/> - <a name="labelloc" val="east"/> + <a name="value" val="0x0"/> </comp> - <comp lib="1" loc="(560,690)" name="OR Gate"> + <comp lib="1" loc="(440,1230)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="1" loc="(520,420)" name="OR Gate"> + <comp lib="1" loc="(980,150)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> </comp> - <comp lib="6" loc="(310,346)" name="Text"> - <a name="text" val="C B 00 10"/> - </comp> - <comp lib="2" loc="(930,780)" name="Multiplexer"> - <a name="facing" val="south"/> - <a name="width" val="2"/> - <a name="enable" val="false"/> - </comp> - <comp lib="1" loc="(980,1050)" name="OR Gate"> + <comp lib="1" loc="(400,1140)" name="OR Gate"> <a name="facing" val="south"/> <a name="size" val="30"/> <a name="inputs" val="2"/> @@ -5839,201 +5843,201 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(750,260)" to="(760,260)"/> <wire from="(760,270)" to="(770,270)"/> <wire from="(1250,270)" to="(1270,270)"/> - <comp lib="2" loc="(1740,260)" name="Multiplexer"> + <comp lib="2" loc="(970,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(90,330)" name="Pin"> + <comp lib="4" loc="(3440,270)" name="Register"/> + <comp lib="1" loc="(130,340)" name="OR Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="4" loc="(2340,270)" name="Register"/> + <comp lib="1" loc="(150,300)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + </comp> + <comp lib="0" loc="(150,220)" name="Pin"> + <a name="output" val="true"/> + <a name="width" val="8"/> <a name="tristate" val="false"/> + <a name="labelloc" val="east"/> </comp> - <comp lib="4" loc="(2670,270)" name="Register"/> - <comp lib="2" loc="(1850,260)" name="Multiplexer"> + <comp lib="0" loc="(3670,220)" name="Constant"> + <a name="facing" val="west"/> + <a name="width" val="8"/> + <a name="value" val="0x0"/> + </comp> + <comp lib="2" loc="(750,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(200,260)" name="Multiplexer"> + <comp lib="2" loc="(2730,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(1680,270)" name="Register"/> - <comp lib="4" loc="(1460,270)" name="Register"/> - <comp lib="2" loc="(2840,260)" name="Multiplexer"> + <comp lib="2" loc="(2950,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(150,300)" name="AND Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="2" loc="(2180,260)" name="Multiplexer"> + <a name="width" val="8"/> + <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(3330,270)" name="Register"/> - <comp lib="2" loc="(3500,260)" name="Multiplexer"> + <comp lib="2" loc="(2070,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> + <comp lib="4" loc="(250,270)" name="Register"/> + <comp lib="4" loc="(690,270)" name="Register"/> <comp lib="2" loc="(2620,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(2950,260)" name="Multiplexer"> + <comp lib="2" loc="(1960,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(3390,260)" name="Multiplexer"> + <comp lib="2" loc="(3500,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(360,270)" name="Register"/> - <comp lib="2" loc="(1630,260)" name="Multiplexer"> + <comp lib="2" loc="(1300,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(2290,260)" name="Multiplexer"> + <comp lib="2" loc="(1520,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="1" loc="(130,340)" name="OR Gate"> - <a name="size" val="30"/> - <a name="inputs" val="2"/> + <comp lib="4" loc="(2450,270)" name="Register"/> + <comp lib="0" loc="(90,330)" name="Pin"> + <a name="tristate" val="false"/> </comp> - <comp lib="4" loc="(1240,270)" name="Register"/> - <comp lib="4" loc="(3000,270)" name="Register"/> - <comp lib="2" loc="(2510,260)" name="Multiplexer"> + <comp lib="2" loc="(1630,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(530,260)" name="Multiplexer"> + <comp lib="4" loc="(3000,270)" name="Register"/> + <comp lib="2" loc="(2400,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> <comp lib="4" loc="(1130,270)" name="Register"/> - <comp lib="2" loc="(1960,260)" name="Multiplexer"> + <comp lib="4" loc="(1020,270)" name="Register"/> + <comp lib="2" loc="(1190,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(1080,260)" name="Multiplexer"> + <comp lib="2" loc="(3610,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(3660,270)" name="Register"/> - <comp lib="2" loc="(1520,260)" name="Multiplexer"> + <comp lib="2" loc="(1740,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(1350,270)" name="Register"/> - <comp lib="2" loc="(3610,260)" name="Multiplexer"> + <comp lib="4" loc="(800,270)" name="Register"/> + <comp lib="2" loc="(3060,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(970,260)" name="Multiplexer"> + <comp lib="2" loc="(3170,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(90,360)" name="Pin"> - <a name="tristate" val="false"/> - </comp> - <comp lib="4" loc="(250,270)" name="Register"/> - <comp lib="4" loc="(910,270)" name="Register"/> - <comp lib="4" loc="(1790,270)" name="Register"/> - <comp lib="2" loc="(2400,260)" name="Multiplexer"> + <comp lib="2" loc="(310,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2560,270)" name="Register"/> - <comp lib="4" loc="(1020,270)" name="Register"/> - <comp lib="4" loc="(580,270)" name="Register"/> + <comp lib="4" loc="(3220,270)" name="Register"/> + <comp lib="4" loc="(1680,270)" name="Register"/> <comp lib="2" loc="(3280,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2450,270)" name="Register"/> - <comp lib="4" loc="(2780,270)" name="Register"/> + <comp lib="4" loc="(360,270)" name="Register"/> + <comp lib="4" loc="(3550,270)" name="Register"/> + <comp lib="0" loc="(180,320)" name="Pin"> + <a name="tristate" val="false"/> + </comp> + <comp lib="4" loc="(2560,270)" name="Register"/> <comp lib="0" loc="(150,270)" name="Pin"> <a name="width" val="8"/> <a name="tristate" val="false"/> </comp> - <comp lib="4" loc="(3440,270)" name="Register"/> - <comp lib="2" loc="(3060,260)" name="Multiplexer"> + <comp lib="4" loc="(1900,270)" name="Register"/> + <comp lib="4" loc="(2780,270)" name="Register"/> + <comp lib="2" loc="(3390,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> <comp lib="4" loc="(470,270)" name="Register"/> - <comp lib="4" loc="(3220,270)" name="Register"/> - <comp lib="2" loc="(310,260)" name="Multiplexer"> + <comp lib="4" loc="(1460,270)" name="Register"/> + <comp lib="4" loc="(2670,270)" name="Register"/> + <comp lib="2" loc="(2840,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(2730,260)" name="Multiplexer"> - <a name="width" val="8"/> - <a name="enable" val="false"/> + <comp lib="0" loc="(90,290)" name="Pin"> + <a name="tristate" val="false"/> </comp> - <comp lib="2" loc="(860,260)" name="Multiplexer"> + <comp lib="4" loc="(2010,270)" name="Register"/> + <comp lib="2" loc="(530,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(640,260)" name="Multiplexer"> + <comp lib="2" loc="(420,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="2" loc="(750,260)" name="Multiplexer"> + <comp lib="4" loc="(2120,270)" name="Register"/> + <comp lib="4" loc="(1790,270)" name="Register"/> + <comp lib="2" loc="(2510,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(690,270)" name="Register"/> - <comp lib="2" loc="(2180,260)" name="Multiplexer"> + <comp lib="4" loc="(2890,270)" name="Register"/> + <comp lib="2" loc="(1850,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(180,320)" name="Pin"> - <a name="tristate" val="false"/> - </comp> <comp lib="4" loc="(3110,270)" name="Register"/> - <comp lib="2" loc="(420,260)" name="Multiplexer"> - <a name="width" val="8"/> - <a name="enable" val="false"/> - </comp> - <comp lib="2" loc="(1300,260)" name="Multiplexer"> - <a name="width" val="8"/> - <a name="enable" val="false"/> - </comp> - <comp lib="2" loc="(3170,260)" name="Multiplexer"> + <comp lib="4" loc="(1350,270)" name="Register"/> + <comp lib="4" loc="(3660,270)" name="Register"/> + <comp lib="2" loc="(860,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2120,270)" name="Register"/> <comp lib="2" loc="(1410,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(150,220)" name="Pin"> - <a name="output" val="true"/> + <comp lib="2" loc="(200,260)" name="Multiplexer"> <a name="width" val="8"/> - <a name="tristate" val="false"/> - <a name="labelloc" val="east"/> + <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2340,270)" name="Register"/> - <comp lib="0" loc="(90,290)" name="Pin"> + <comp lib="4" loc="(910,270)" name="Register"/> + <comp lib="4" loc="(580,270)" name="Register"/> + <comp lib="4" loc="(1570,270)" name="Register"/> + <comp lib="4" loc="(2230,270)" name="Register"/> + <comp lib="4" loc="(1240,270)" name="Register"/> + <comp lib="0" loc="(90,360)" name="Pin"> <a name="tristate" val="false"/> </comp> - <comp lib="4" loc="(800,270)" name="Register"/> - <comp lib="4" loc="(1900,270)" name="Register"/> - <comp lib="4" loc="(3550,270)" name="Register"/> - <comp lib="2" loc="(2070,260)" name="Multiplexer"> + <comp lib="2" loc="(640,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2890,270)" name="Register"/> - <comp lib="0" loc="(3670,220)" name="Constant"> - <a name="facing" val="west"/> + <comp lib="2" loc="(2290,260)" name="Multiplexer"> <a name="width" val="8"/> - <a name="value" val="0x0"/> + <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(1570,270)" name="Register"/> - <comp lib="4" loc="(2010,270)" name="Register"/> - <comp lib="2" loc="(1190,260)" name="Multiplexer"> + <comp lib="2" loc="(1080,260)" name="Multiplexer"> <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="4" loc="(2230,270)" name="Register"/> + <comp lib="4" loc="(3330,270)" name="Register"/> </circuit> <circuit name="PC"> <a name="circuit" val="PC"/> @@ -6044,11 +6048,12 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="50"/> <text font-family="SansSerif" font-size="12" text-anchor="middle" x="65" y="69">PC</text> <circ-port height="8" pin="170,360" width="8" x="56" y="46"/> - <circ-port height="8" pin="240,360" width="8" x="56" y="76"/> + <circ-port height="8" pin="190,420" width="8" x="56" y="76"/> <circ-port height="8" pin="200,360" width="8" x="76" y="56"/> <circ-port height="10" pin="270,360" width="10" x="65" y="75"/> <circ-port height="8" pin="250,360" width="8" x="46" y="66"/> <circ-port height="10" pin="360,360" width="10" x="75" y="65"/> + <circ-port height="8" pin="190,400" width="8" x="46" y="56"/> <circ-anchor facing="east" height="6" width="6" x="57" y="77"/> </appear> <wire from="(270,310)" to="(290,310)"/> @@ -6059,12 +6064,14 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <wire from="(170,300)" to="(190,300)"/> <wire from="(260,310)" to="(270,310)"/> <wire from="(330,320)" to="(340,320)"/> + <wire from="(240,330)" to="(240,410)"/> <wire from="(170,280)" to="(340,280)"/> <wire from="(360,280)" to="(360,360)"/> <wire from="(220,310)" to="(230,310)"/> + <wire from="(190,420)" to="(200,420)"/> + <wire from="(230,410)" to="(240,410)"/> <wire from="(170,280)" to="(170,300)"/> <wire from="(270,310)" to="(270,360)"/> - <wire from="(240,330)" to="(240,360)"/> <wire from="(250,330)" to="(250,360)"/> <wire from="(200,330)" to="(200,360)"/> <comp lib="0" loc="(200,360)" name="Pin"> @@ -6075,35 +6082,43 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/). <a name="width" val="8"/> <a name="enable" val="false"/> </comp> - <comp lib="0" loc="(360,360)" name="Pin"> + <comp lib="4" loc="(260,310)" name="Register"> + <a name="trigger" val="falling"/> + </comp> + <comp lib="0" loc="(270,360)" name="Pin"> <a name="facing" val="west"/> <a name="output" val="true"/> <a name="width" val="8"/> <a name="labelloc" val="east"/> </comp> - <comp lib="0" loc="(240,360)" name="Pin"> - <a name="tristate" val="false"/> + <comp lib="1" loc="(230,410)" name="AND Gate"> + <a name="size" val="30"/> + <a name="inputs" val="2"/> + <a name="negate0" val="true"/> </comp> <comp lib="0" loc="(290,330)" name="Constant"> <a name="width" val="8"/> </comp> - <comp lib="3" loc="(330,320)" name="Adder"/> - <comp lib="0" loc="(170,360)" name="Pin"> + <comp lib="0" loc="(360,360)" name="Pin"> + <a name="facing" val="west"/> + <a name="output" val="true"/> <a name="width" val="8"/> + <a name="labelloc" val="east"/> + </comp> + <comp lib="0" loc="(190,400)" name="Pin"> <a name="tristate" val="false"/> </comp> <comp lib="0" loc="(250,360)" name="Pin"> <a name="facing" val="west"/> <a name="tristate" val="false"/> </comp> - <comp lib="0" loc="(270,360)" name="Pin"> - <a name="facing" val="west"/> - <a name="output" val="true"/> + <comp lib="3" loc="(330,320)" name="Adder"/> + <comp lib="0" loc="(170,360)" name="Pin"> <a name="width" val="8"/> - <a name="labelloc" val="east"/> + <a name="tristate" val="false"/> </comp> - <comp lib="4" loc="(260,310)" name="Register"> - <a name="trigger" val="falling"/> + <comp lib="0" loc="(190,420)" name="Pin"> + <a name="tristate" val="false"/> </comp> </circuit> </project> diff --git a/example_assembly.asm b/example_assembly.asm @@ -1,5 +1,7 @@ # we're doing asssembly now - li 0x34 -sc: cin GRA GRB - sp GRA - sb GRB + li 15 + sp GRA + mov GRA GRB +sc: cin GRB GRB + sb GRB + jmp sc diff --git a/tisc.c b/tisc.c @@ -3,20 +3,23 @@ #include <stdint.h> #include <string.h> -#define TOT_INSTRUCTIONS 15 +#define TOT_INSTRUCTIONS 16 #define MAX_SYMBOLS 1000 #define MAX_SYMBOL_LEN 100 #define MAX_LINE_LEN 100 #define MAX_INSTYPES 4 +#define MAX_PGR_SIZE 0xFF -#define ADD 0 -#define NAND 1 -#define OR 2 -#define CIN 2 -#define LLI 3 -#define LUI 7 -#define EXT 11 -#define CMP 15 +#define GR_A 0x1 +#define GR_A_STRING "GRA" +#define GR_B 0x2 +#define GR_B_STRING "GRB" +#define GR_C 0x3 +#define GR_C_STRING "GRC" + +int validSymbols = 0; +int addresses[MAX_SYMBOLS]; +char symbols[MAX_SYMBOLS][MAX_SYMBOL_LEN]; typedef struct InstructionDefintion { @@ -27,86 +30,6 @@ typedef struct InstructionDefintion int (*assemble)(struct InstructionDefintion*, char* arg[3], uint8_t*); } InstructionDefinition_t; -int assemble_default( - InstructionDefinition_t *definition, - char* arg[3], uint8_t* write_buffer) -{ - write_buffer[0] = definition->opcode_mask; - - return 0; -} - -InstructionDefinition_t definitions[TOT_INSTRUCTIONS] = -{ - { "push", 0, 1, 0x93, assemble_default }, - { "pop", 0, 1, 0x53, assemble_default }, - { "pcr", 0, 1, 0xA3, assemble_default }, - { "li", 1, 1, 0x00, assemble_default }, - { "lli", 1, 1, 0x03, assemble_default }, - { "lui", 1, 1, 0x43, assemble_default }, - { "jmp", 1, 2, 0x83, assemble_default }, - { "lb", 1, 1, 0x87, assemble_default }, - { "sb", 1, 1, 0x8B, assemble_default }, - { "sp", 1, 1, 0x8F, assemble_default }, - { "cin", 2, 1, 0x02, assemble_default }, - { "cmp", 2, 1, 0xC3, assemble_default }, - { "or", 2, 1, 0x00, assemble_default }, - { "nand", 2, 1, 0x01, assemble_default }, - { "add", 2, 1, 0x02, assemble_default }, -}; - -int validSymbols = 0; -int addresses[MAX_SYMBOLS]; -char symbols[MAX_SYMBOLS][MAX_SYMBOL_LEN]; - -/* char *parse -> parses file and sets label, opcode, and args - accordingly */ -int parse(int* line_number, FILE *file, char *line, char **label, char **opcode, - char *arg[3]) -{ - int success = 0; - - char *str, *first; - str = fgets(line, MAX_LINE_LEN, file); - - if (str != NULL) - { - first = strtok(line, " \t\n"); - - if (first == NULL || first[0] == '#') - { - *line_number = *line_number + 1; - return parse(line_number, file, line, label, opcode, arg); - } - else if (first[strlen(first) - 1] == ':') - { - *label = first; - *opcode = strtok(NULL, " \t\n"); - first[strlen(first) - 1] = '\0'; - - success = 1; - } - else - { - *label = NULL; - *opcode = first; - - success = 1; - } - - if (success) - { - arg[0] = strtok(NULL, " \t\n"); - arg[1] = strtok(NULL, " \t\n"); - arg[2] = strtok(NULL, " \t\n"); - } - - *line_number = *line_number + 1; - } - - return success; -} - /* Checks if instruction is valid * * return -1 -> too few arguements @@ -139,21 +62,21 @@ int validins(InstructionDefinition_t *ins, const char *opcode, char *arg[]) return status; } -InstructionDefinition_t* getInstructionFromOpcode(const char *opcode) + +int label_address(const char *label) { - InstructionDefinition_t* return_value = NULL; + int i, address = -1; - int i; - for (i = 0; i < TOT_INSTRUCTIONS; i++) + for (i = 0; i < validSymbols; i++) { - if (strcmp(definitions[i].instructionLabel, opcode) == 0) + if (strcmp(symbols[i], label) == 0) { - return_value = &definitions[i]; - break; + address = addresses[i]; + break; } } - return return_value; + return address; } int labelexists(const char *label) @@ -196,12 +119,237 @@ int process_label(char *label, int address) return status; } +uint8_t getRegisterEnumeration(char* string) +{ + if ((string != NULL) && (strcmp(string, GR_A_STRING) == 0)) + { + return GR_A; + } else + if ((string != NULL) && (strcmp(string, GR_B_STRING) == 0)) + { + return GR_B; + } else + if ((string != NULL) && (strcmp(string, GR_B_STRING) == 0)) + { + return GR_C; + } +} + +int assemble_0arg( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + write_buffer[0] = definition->opcode_mask; + + return 1; +} + +int assemble_1arg( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + uint8_t argB = getRegisterEnumeration(arg[0]); + + write_buffer[0] = definition->opcode_mask | (argB << 4); + + return 1; +} + +int assemble_2arg( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + uint8_t argA, argB; + + argA = getRegisterEnumeration(arg[0]); + argB = getRegisterEnumeration(arg[1]); + + write_buffer[0] = definition->opcode_mask; + + write_buffer[0] |= ( argA << 2 ) | ( argB << 4); + + return 1; +} + +int assemble_2arg_alt( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + uint8_t argB, argC; + + argB = getRegisterEnumeration(arg[0]); + argC = getRegisterEnumeration(arg[1]); + + write_buffer[0] = definition->opcode_mask; + + write_buffer[0] |= ( argB << 4) | ( argC << 6); + + return 1; +} + +int assemble_3arg( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + uint8_t argA, argB, argC; + + argA = getRegisterEnumeration(arg[0]); + argB = getRegisterEnumeration(arg[1]); + argC = getRegisterEnumeration(arg[2]); + + write_buffer[0] = definition->opcode_mask; + + write_buffer[0] |= ( argA << 2 ) | ( argB << 4) | ( argC << 6); + + return 1; +} + +int assemble_immediate( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + int return_value = 0; + + int immediate_value = atoi(arg[0]); + + if (immediate_value < 0x0F && immediate_value >= 0) + { + write_buffer[0] = definition->opcode_mask | immediate_value << 2; + + return_value = 1; + } + + return return_value; +} + +int assemble_li( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + int return_value = 0; + + int immediate_value = atoi(arg[0]); + + if (immediate_value < 0xFF && immediate_value >= 0) + { + write_buffer[0] = 0x03 | (immediate_value & 0x0F) << 2; + write_buffer[1] = 0x43 | ((immediate_value & 0xF0) >> 4) << 2; + + return_value = 1; + } + + return return_value; +} + +int assemble_jmp( + InstructionDefinition_t *definition, + char* arg[3], uint8_t* write_buffer) +{ + int return_value = 0; + + int address = label_address(arg[0]); + + if (address != -1) + { + write_buffer[0] = definition->opcode_mask; + write_buffer[1] = address; + + return_value = 1; + } + + return return_value; +} + +InstructionDefinition_t definitions[TOT_INSTRUCTIONS] = +{ + { "push", 0, 1, 0x93, assemble_0arg }, + { "pop", 0, 1, 0x53, assemble_0arg }, + { "pcr", 0, 1, 0xA3, assemble_0arg }, + { "li", 1, 2, 0x00, assemble_li }, + { "lli", 1, 1, 0x03, assemble_immediate }, + { "lui", 1, 1, 0x43, assemble_immediate }, + { "jmp", 1, 2, 0x83, assemble_jmp }, + { "lb", 1, 1, 0x87, assemble_1arg }, + { "sb", 1, 1, 0x8B, assemble_1arg }, + { "sp", 1, 1, 0x8F, assemble_1arg }, + { "cin", 2, 1, 0x02, assemble_2arg_alt }, + { "mov", 2, 1, 0x00, assemble_2arg_alt }, + { "cmp", 2, 1, 0xC3, assemble_2arg }, + { "or", 2, 1, 0x00, assemble_3arg }, + { "nand", 2, 1, 0x01, assemble_3arg }, + { "add", 2, 1, 0x02, assemble_3arg }, +}; +InstructionDefinition_t* getInstructionFromOpcode(const char *opcode) +{ + InstructionDefinition_t* return_value = NULL; + + int i; + for (i = 0; i < TOT_INSTRUCTIONS; i++) + { + if (strcmp(definitions[i].instructionLabel, opcode) == 0) + { + return_value = &definitions[i]; + break; + } + } + + return return_value; +} + +/* char *parse -> parses file and sets label, opcode, and args + accordingly */ +int parse(int* line_number, FILE *file, char *line, char **label, char **opcode, + char *arg[3]) +{ + int success = 0; + + char *str, *first; + str = fgets(line, MAX_LINE_LEN, file); + + if (str != NULL) + { + first = strtok(line, " \t\n"); + + if (first == NULL || first[0] == '#') + { + *line_number = *line_number + 1; + return parse(line_number, file, line, label, opcode, arg); + } + else if (first[strlen(first) - 1] == ':') + { + *label = first; + *opcode = strtok(NULL, " \t\n"); + first[strlen(first) - 1] = '\0'; + + success = 1; + } + else + { + *label = NULL; + *opcode = first; + + success = 1; + } + + if (success) + { + arg[0] = strtok(NULL, " \t\n"); + arg[1] = strtok(NULL, " \t\n"); + arg[2] = strtok(NULL, " \t\n"); + } + + *line_number = *line_number + 1; + } + + return success; +} + /* int preprocess -> 1st pass over file, links symbols to address and reports syntax errors, fails if returns -1 */ int preprocess(int line, int *address, char *label, char *opcode, char *arg[3]) { - int status = 1; + int status = 0; InstructionDefinition_t* ins = getInstructionFromOpcode(opcode); @@ -212,26 +360,30 @@ int preprocess(int line, int *address, char *label, char *opcode, case -1: printf("Error:%i: too few arguements for '%s'\n", line, opcode); - status = 1; + status = 0; break; case 1: printf("Error:%i: too many arguements for '%s'\n", line, opcode); - status = 1; + status = 0; break; case 0: - status = 0; + status = 1; break; + default: + status = 0; + printf("Something Weird!"); + break; } } else { printf("Error:%i: instruction '%s' does not exist\n", line, opcode); - status = 1; + status = 0; } - if (status == 0) + if (status) { if (process_label(label, *address) == 0) { @@ -239,11 +391,11 @@ int preprocess(int line, int *address, char *label, char *opcode, "Error:%i: re-use of existing label '%s'\n", line, label ); - status = 1; + status = 0; } } - if (status == 0) + if (status) { *address = *address + ins->instructionLength; } @@ -261,17 +413,16 @@ int process(int line, int* address, uint8_t *buffer, char *label, char *opcode, InstructionDefinition_t* ins = getInstructionFromOpcode(opcode); - if (ins != NULL) + if (ins != NULL && ins->assemble != NULL) { status = ins->assemble(ins, arg, buffer + *address); } - if (status == 0) + if (status) { *address = *address + ins->instructionLength; } - return status; } @@ -297,7 +448,7 @@ int main(int argc, char *argv[]) if (inputf == NULL || ferror(inputf)) { - fprintf(stderr, "Error opening file '%s'", input); + printf("Error opening file '%s'\n", input); goto DITCH; } @@ -306,14 +457,16 @@ int main(int argc, char *argv[]) if (outputf == NULL || ferror(outputf)) { - fprintf(stderr, "Error opening file '%s'", output); + printf("Error opening file '%s'\n", output); goto DITCH; } while (parse(&line_number, inputf, line, &label, &opcodes, args)) { - if (preprocess(line_number, &address, label, opcodes, args)) + if (preprocess(line_number, &address, label, opcodes, args) == 0) { + printf("Preprocess: Error on line #%i\n", line_number); + goto DITCH; } } @@ -322,6 +475,12 @@ int main(int argc, char *argv[]) int full_size = address; + if (full_size > MAX_PGR_SIZE) + { + printf("FATAL: Program exceeds maximum size!\n"); + goto DITCH; + } + uint8_t* w_buffer = (uint8_t*)malloc(sizeof(uint8_t) * full_size); if (w_buffer != NULL) @@ -331,20 +490,21 @@ int main(int argc, char *argv[]) while (parse(&line_number, inputf, line, &label, &opcodes, args)) { - if (process(line_number, &address, w_buffer, label, opcodes, args)) + if (process(line_number, &address, w_buffer, label, opcodes, args) == 0) { + printf("Process: Error on line #%i\n", line_number); goto DITCH; } } if (fwrite(w_buffer, sizeof(uint8_t), full_size, outputf) == full_size) { - printf("Wrote %i bytes to file '%s'\r\n", + printf("Wrote %i bytes to file '%s'\n", full_size, output); } else { - printf("Failed to write %i bytes to file '%s'!\r\n", + printf("Failed to write %i bytes to file '%s'!\n", full_size, output); } }