This commit is contained in:
pjht 2016-09-01 11:57:25 -05:00
parent 990ea4932a
commit dfe8422b34
2 changed files with 486 additions and 67 deletions

View File

@ -18,11 +18,11 @@ Op Codes:
Bits OP Name Description
0000 aaaa - LOADA aaaaa : copy from RAM address to register A
0001 aaaaa - LOADB aaaaa : copy from RAM address to register B
0010 aaaaa - SAVE aaaaa : copy from register R to RAM address
0000 aaaa - LOADA aaaa : copy from RAM address to register A
0001 aaaa - LOADB aaaa : copy from RAM address to register B
0010 aaaa - SAVE aaaa : copy from register R to RAM address
0100 xxxx - LOWBITS xxxx : save 4bits=xxxx to lower bits[0-3] of B
0011 xxxx - LOWBITS xxxx : B = xxxx
0100 0000 - ADD : R = A + B
0100 0001 - SUB : R = A - B
0100 0010 - AND : R = A AND B
@ -34,13 +34,15 @@ Bits OP Name Description
0100 1000 - PASSB : R = B
0100 1001 - LSHIFT : R = A << 1
0100 1010 - RSHIFT : R = A >> 1
0100 1011 - CLEAR : set R to zero
0100 1100 - INC : add 1 to R
0100 1101 - DEC : subtract 1 from R
0100 1011 - CLEAR : R = 0
0100 1100 - INC : R = A + 1
0100 1101 - DEC : R = A - 1
0101 xxxx - FJMP xxxx : move program counter forward by xxxx instructions
0110 xxxx - BJMP xxxx : move program counter back by xxxx instructions
0111 0000 - SKIPZ : if R is zero move program counter forward 2 instead of 1
0111 0001 - SKIPNZ : if R is not zero move program counter forward 2 instead of 1
11111111 - RESET : put program counter back to zero
1000 0000 - RESET : put program counter back to zero
1000 0001 - HALT : stop KT8
1001 0000 - RKD : clear keyboard/display,.

View File

@ -1,11 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0"/>
<lib desc="#Wiring" name="0">
<tool name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
</tool>
<tool name="Probe">
<a name="radix" val="16"/>
<a name="label" val="mem out"/>
</tool>
<tool name="Tunnel">
<a name="label" val="pop"/>
</tool>
<tool name="Pull Resistor">
<a name="facing" val="north"/>
</tool>
<tool name="Clock">
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4"/>
<lib desc="#Memory" name="4">
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5"/>
<lib desc="#Base" name="6">
<tool name="Text Tool">
@ -54,23 +86,23 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(390,390)" to="(650,390)"/>
<wire from="(160,170)" to="(280,170)"/>
<wire from="(120,270)" to="(120,290)"/>
<wire from="(210,90)" to="(210,310)"/>
<wire from="(460,170)" to="(460,200)"/>
<wire from="(500,380)" to="(570,380)"/>
<wire from="(330,190)" to="(350,190)"/>
<wire from="(680,170)" to="(690,170)"/>
<wire from="(190,110)" to="(190,140)"/>
<wire from="(80,140)" to="(180,140)"/>
<wire from="(410,200)" to="(410,270)"/>
<wire from="(40,150)" to="(40,380)"/>
<wire from="(320,210)" to="(350,210)"/>
<wire from="(450,310)" to="(480,310)"/>
<wire from="(480,170)" to="(480,180)"/>
<wire from="(10,270)" to="(120,270)"/>
<wire from="(210,90)" to="(240,90)"/>
<wire from="(320,100)" to="(320,210)"/>
<wire from="(300,130)" to="(300,180)"/>
<wire from="(80,110)" to="(90,110)"/>
<wire from="(300,260)" to="(430,260)"/>
<wire from="(730,210)" to="(730,400)"/>
<wire from="(460,200)" to="(710,200)"/>
<wire from="(510,320)" to="(610,320)"/>
<wire from="(390,350)" to="(400,350)"/>
@ -80,31 +112,36 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<wire from="(440,340)" to="(450,340)"/>
<wire from="(610,290)" to="(610,320)"/>
<wire from="(400,290)" to="(410,290)"/>
<wire from="(490,400)" to="(730,400)"/>
<wire from="(120,120)" to="(160,120)"/>
<wire from="(370,380)" to="(490,380)"/>
<wire from="(10,100)" to="(90,100)"/>
<wire from="(420,170)" to="(420,180)"/>
<wire from="(300,180)" to="(300,260)"/>
<wire from="(280,170)" to="(280,240)"/>
<wire from="(570,350)" to="(570,380)"/>
<wire from="(400,320)" to="(410,320)"/>
<wire from="(450,260)" to="(660,260)"/>
<wire from="(530,130)" to="(550,130)"/>
<wire from="(280,240)" to="(280,260)"/>
<wire from="(340,130)" to="(390,130)"/>
<wire from="(260,230)" to="(260,360)"/>
<wire from="(500,330)" to="(500,380)"/>
<wire from="(180,140)" to="(180,230)"/>
<wire from="(560,350)" to="(570,350)"/>
<wire from="(390,350)" to="(390,390)"/>
<wire from="(410,290)" to="(410,320)"/>
<wire from="(170,160)" to="(290,160)"/>
<wire from="(210,310)" to="(380,310)"/>
<wire from="(280,100)" to="(320,100)"/>
<wire from="(300,180)" to="(420,180)"/>
<wire from="(280,240)" to="(460,240)"/>
<wire from="(400,320)" to="(400,330)"/>
<wire from="(690,250)" to="(720,250)"/>
<wire from="(70,120)" to="(70,230)"/>
<wire from="(150,100)" to="(150,150)"/>
<wire from="(160,110)" to="(190,110)"/>
<wire from="(190,140)" to="(380,140)"/>
<wire from="(480,290)" to="(480,310)"/>
<wire from="(80,110)" to="(80,140)"/>
<wire from="(170,140)" to="(170,160)"/>
<wire from="(420,180)" to="(450,180)"/>
<wire from="(450,340)" to="(450,350)"/>
<wire from="(450,310)" to="(450,340)"/>
@ -114,46 +151,86 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<wire from="(460,330)" to="(460,340)"/>
<wire from="(160,110)" to="(160,120)"/>
<wire from="(430,280)" to="(470,280)"/>
<wire from="(80,130)" to="(80,190)"/>
<wire from="(330,90)" to="(330,190)"/>
<wire from="(180,170)" to="(180,190)"/>
<wire from="(120,130)" to="(300,130)"/>
<wire from="(340,270)" to="(410,270)"/>
<wire from="(550,130)" to="(550,230)"/>
<wire from="(40,380)" to="(50,380)"/>
<wire from="(170,90)" to="(210,90)"/>
<wire from="(180,230)" to="(260,230)"/>
<wire from="(80,130)" to="(90,130)"/>
<wire from="(200,320)" to="(200,380)"/>
<wire from="(380,150)" to="(380,190)"/>
<wire from="(70,230)" to="(260,230)"/>
<wire from="(170,50)" to="(170,90)"/>
<wire from="(470,180)" to="(480,180)"/>
<wire from="(290,160)" to="(290,370)"/>
<wire from="(440,170)" to="(440,200)"/>
<wire from="(10,100)" to="(10,270)"/>
<wire from="(400,300)" to="(400,310)"/>
<wire from="(390,310)" to="(390,350)"/>
<wire from="(30,320)" to="(200,320)"/>
<wire from="(260,230)" to="(550,230)"/>
<wire from="(410,200)" to="(440,200)"/>
<wire from="(380,190)" to="(620,190)"/>
<wire from="(490,380)" to="(490,400)"/>
<wire from="(160,170)" to="(180,170)"/>
<wire from="(390,310)" to="(400,310)"/>
<wire from="(380,150)" to="(390,150)"/>
<wire from="(120,140)" to="(170,140)"/>
<wire from="(690,170)" to="(690,190)"/>
<wire from="(30,110)" to="(90,110)"/>
<wire from="(280,260)" to="(430,260)"/>
<wire from="(140,90)" to="(170,90)"/>
<wire from="(490,290)" to="(490,380)"/>
<wire from="(110,290)" to="(120,290)"/>
<wire from="(430,260)" to="(430,280)"/>
<wire from="(450,260)" to="(450,290)"/>
<wire from="(720,210)" to="(720,250)"/>
<wire from="(650,240)" to="(660,240)"/>
<wire from="(510,350)" to="(520,350)"/>
<wire from="(380,140)" to="(380,150)"/>
<wire from="(510,350)" to="(520,350)"/>
<wire from="(620,170)" to="(620,190)"/>
<wire from="(260,360)" to="(460,360)"/>
<wire from="(410,290)" to="(450,290)"/>
<wire from="(260,360)" to="(460,360)"/>
<wire from="(340,50)" to="(340,130)"/>
<wire from="(40,150)" to="(150,150)"/>
<wire from="(510,320)" to="(510,350)"/>
<wire from="(120,110)" to="(140,110)"/>
<wire from="(400,330)" to="(410,330)"/>
<wire from="(390,200)" to="(410,200)"/>
<wire from="(620,170)" to="(640,170)"/>
<wire from="(390,200)" to="(410,200)"/>
<wire from="(690,190)" to="(710,190)"/>
<wire from="(80,190)" to="(180,190)"/>
<wire from="(190,380)" to="(200,380)"/>
<wire from="(180,170)" to="(280,170)"/>
<wire from="(460,330)" to="(500,330)"/>
<wire from="(120,100)" to="(150,100)"/>
<wire from="(30,110)" to="(30,320)"/>
<wire from="(290,370)" to="(340,370)"/>
<wire from="(70,120)" to="(90,120)"/>
<wire from="(340,270)" to="(340,290)"/>
<comp lib="0" loc="(160,170)" name="Clock"/>
<comp lib="5" loc="(340,390)" name="Button">
<a name="label" val="RKD"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="1" loc="(470,180)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(690,250)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="5" loc="(110,290)" name="Button">
<a name="label" val="Reset"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(240,110)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xe"/>
</comp>
<comp lib="0" loc="(380,310)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="4"/>
@ -161,100 +238,440 @@ This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<a name="bit2" val="none"/>
<a name="bit3" val="none"/>
</comp>
<comp lib="0" loc="(560,350)" name="Bit Extender">
<a name="in_width" val="7"/>
<a name="out_width" val="8"/>
</comp>
<comp lib="0" loc="(680,170)" name="Bit Extender">
<a name="out_width" val="7"/>
</comp>
<comp lib="1" loc="(690,250)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(160,170)" name="Clock"/>
<comp lib="1" loc="(440,340)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="5" loc="(710,200)" name="TTY"/>
<comp lib="5" loc="(470,280)" name="Keyboard"/>
<comp lib="4" loc="(530,130)" name="RAM">
<a name="addrWidth" val="4"/>
<a name="bus" val="separate"/>
<comp lib="0" loc="(680,170)" name="Bit Extender">
<a name="out_width" val="7"/>
</comp>
<comp lib="1" loc="(400,290)" name="NOT Gate"/>
<comp lib="1" loc="(460,360)" name="Controlled Buffer">
<a name="facing" val="south"/>
<a name="width" val="8"/>
</comp>
<comp lib="1" loc="(370,380)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="4" loc="(530,130)" name="RAM">
<a name="addrWidth" val="4"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="4" loc="(190,380)" name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</comp>
<comp lib="1" loc="(390,200)" name="NOR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp loc="(120,100)" name="cpu"/>
<comp lib="3" loc="(280,100)" name="Comparator">
<a name="width" val="4"/>
<a name="mode" val="unsigned"/>
</comp>
<comp lib="0" loc="(240,110)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xe"/>
<comp lib="0" loc="(560,350)" name="Bit Extender">
<a name="in_width" val="7"/>
<a name="out_width" val="8"/>
</comp>
<comp loc="(120,100)" name="cpu"/>
<comp lib="5" loc="(710,200)" name="TTY"/>
<comp lib="5" loc="(470,280)" name="Keyboard"/>
</circuit>
<circuit name="cpu">
<a name="circuit" val="cpu"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(400,120)" to="(480,120)"/>
<wire from="(420,80)" to="(420,100)"/>
<wire from="(360,160)" to="(480,160)"/>
<wire from="(380,140)" to="(480,140)"/>
<wire from="(380,80)" to="(380,140)"/>
<wire from="(360,80)" to="(360,160)"/>
<wire from="(400,80)" to="(400,120)"/>
<wire from="(420,100)" to="(480,100)"/>
<comp lib="0" loc="(380,80)" name="Pull Resistor"/>
<comp lib="0" loc="(480,140)" name="Pin">
<wire from="(420,530)" to="(440,530)"/>
<wire from="(730,310)" to="(730,410)"/>
<wire from="(400,390)" to="(480,390)"/>
<wire from="(270,360)" to="(320,360)"/>
<wire from="(710,270)" to="(830,270)"/>
<wire from="(330,320)" to="(380,320)"/>
<wire from="(620,420)" to="(680,420)"/>
<wire from="(750,290)" to="(830,290)"/>
<wire from="(440,110)" to="(440,270)"/>
<wire from="(530,360)" to="(530,380)"/>
<wire from="(330,330)" to="(370,330)"/>
<wire from="(270,350)" to="(370,350)"/>
<wire from="(70,190)" to="(110,190)"/>
<wire from="(220,630)" to="(430,630)"/>
<wire from="(240,510)" to="(240,520)"/>
<wire from="(560,310)" to="(570,310)"/>
<wire from="(570,100)" to="(570,310)"/>
<wire from="(670,320)" to="(700,320)"/>
<wire from="(550,410)" to="(730,410)"/>
<wire from="(340,230)" to="(340,640)"/>
<wire from="(360,560)" to="(750,560)"/>
<wire from="(710,330)" to="(830,330)"/>
<wire from="(460,150)" to="(460,290)"/>
<wire from="(750,290)" to="(750,560)"/>
<wire from="(580,270)" to="(580,460)"/>
<wire from="(550,340)" to="(590,340)"/>
<wire from="(360,210)" to="(360,310)"/>
<wire from="(680,390)" to="(680,420)"/>
<wire from="(390,490)" to="(510,490)"/>
<wire from="(440,350)" to="(470,350)"/>
<wire from="(360,530)" to="(360,560)"/>
<wire from="(270,140)" to="(470,140)"/>
<wire from="(210,110)" to="(210,170)"/>
<wire from="(570,310)" to="(690,310)"/>
<wire from="(220,530)" to="(220,630)"/>
<wire from="(380,220)" to="(380,320)"/>
<wire from="(370,500)" to="(660,500)"/>
<wire from="(250,510)" to="(250,530)"/>
<wire from="(170,100)" to="(170,200)"/>
<wire from="(600,450)" to="(600,530)"/>
<wire from="(250,300)" to="(250,310)"/>
<wire from="(500,450)" to="(600,450)"/>
<wire from="(220,320)" to="(220,520)"/>
<wire from="(500,410)" to="(500,450)"/>
<wire from="(150,130)" to="(160,130)"/>
<wire from="(550,270)" to="(580,270)"/>
<wire from="(220,320)" to="(300,320)"/>
<wire from="(270,180)" to="(370,180)"/>
<wire from="(160,120)" to="(160,130)"/>
<wire from="(530,440)" to="(560,440)"/>
<wire from="(530,290)" to="(530,310)"/>
<wire from="(400,170)" to="(400,390)"/>
<wire from="(590,340)" to="(590,480)"/>
<wire from="(510,420)" to="(510,490)"/>
<wire from="(440,330)" to="(470,330)"/>
<wire from="(570,530)" to="(600,530)"/>
<wire from="(520,520)" to="(540,520)"/>
<wire from="(220,520)" to="(240,520)"/>
<wire from="(150,150)" to="(180,150)"/>
<wire from="(500,340)" to="(520,340)"/>
<wire from="(530,480)" to="(590,480)"/>
<wire from="(510,420)" to="(520,420)"/>
<wire from="(520,460)" to="(520,520)"/>
<wire from="(520,460)" to="(580,460)"/>
<wire from="(180,320)" to="(180,540)"/>
<wire from="(470,140)" to="(470,280)"/>
<wire from="(180,150)" to="(180,320)"/>
<wire from="(530,380)" to="(560,380)"/>
<wire from="(410,160)" to="(410,470)"/>
<wire from="(670,320)" to="(670,360)"/>
<wire from="(430,540)" to="(430,630)"/>
<wire from="(480,360)" to="(480,390)"/>
<wire from="(410,470)" to="(710,470)"/>
<wire from="(370,350)" to="(370,500)"/>
<wire from="(250,530)" to="(360,530)"/>
<wire from="(730,310)" to="(830,310)"/>
<wire from="(200,310)" to="(250,310)"/>
<wire from="(500,410)" to="(520,410)"/>
<wire from="(440,270)" to="(440,330)"/>
<wire from="(660,390)" to="(660,500)"/>
<wire from="(100,560)" to="(320,560)"/>
<wire from="(760,350)" to="(830,350)"/>
<wire from="(510,290)" to="(510,350)"/>
<wire from="(330,310)" to="(360,310)"/>
<wire from="(200,530)" to="(220,530)"/>
<wire from="(270,160)" to="(410,160)"/>
<wire from="(210,110)" to="(440,110)"/>
<wire from="(530,530)" to="(540,530)"/>
<wire from="(270,170)" to="(400,170)"/>
<wire from="(370,180)" to="(390,180)"/>
<wire from="(390,180)" to="(390,490)"/>
<wire from="(270,150)" to="(460,150)"/>
<wire from="(140,200)" to="(170,200)"/>
<wire from="(100,210)" to="(100,560)"/>
<wire from="(320,360)" to="(320,560)"/>
<wire from="(220,530)" to="(250,530)"/>
<wire from="(530,310)" to="(560,310)"/>
<wire from="(700,290)" to="(700,320)"/>
<wire from="(670,280)" to="(680,280)"/>
<wire from="(530,430)" to="(530,440)"/>
<wire from="(160,120)" to="(620,120)"/>
<wire from="(130,170)" to="(210,170)"/>
<wire from="(470,280)" to="(520,280)"/>
<wire from="(510,350)" to="(520,350)"/>
<wire from="(340,640)" to="(760,640)"/>
<wire from="(560,310)" to="(560,380)"/>
<wire from="(760,350)" to="(760,640)"/>
<wire from="(270,220)" to="(380,220)"/>
<wire from="(270,210)" to="(360,210)"/>
<wire from="(440,350)" to="(440,530)"/>
<wire from="(530,480)" to="(530,530)"/>
<wire from="(370,180)" to="(370,330)"/>
<wire from="(360,530)" to="(380,530)"/>
<wire from="(710,330)" to="(710,470)"/>
<wire from="(430,540)" to="(540,540)"/>
<wire from="(440,270)" to="(520,270)"/>
<wire from="(460,290)" to="(510,290)"/>
<wire from="(560,380)" to="(560,440)"/>
<wire from="(170,100)" to="(570,100)"/>
<wire from="(690,290)" to="(690,310)"/>
<wire from="(620,120)" to="(620,420)"/>
<wire from="(270,230)" to="(340,230)"/>
<comp lib="2" loc="(500,340)" name="Multiplexer">
<a name="width" val="8"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="1" loc="(300,320)" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(830,310)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="RAM out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(420,80)" name="Pull Resistor"/>
<comp lib="0" loc="(130,170)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM in"/>
<comp lib="4" loc="(550,340)" name="Register"/>
<comp lib="0" loc="(830,350)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Reset K/D"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(400,80)" name="Pull Resistor"/>
<comp lib="0" loc="(480,160)" name="Pin">
<comp lib="1" loc="(140,200)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="0" loc="(180,540)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="8"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
</comp>
<comp lib="2" loc="(250,510)" name="Decoder">
<a name="select" val="4"/>
<a name="disabled" val="0"/>
</comp>
<comp lib="0" loc="(830,330)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="W/~R"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(150,150)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Instruction"/>
</comp>
<comp lib="0" loc="(360,80)" name="Pull Resistor"/>
<comp lib="0" loc="(480,120)" name="Pin">
<comp lib="0" loc="(830,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="label" val="Address"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(480,100)" name="Pin">
<comp lib="4" loc="(550,270)" name="Register"/>
<comp lib="0" loc="(150,150)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Instruction"/>
</comp>
<comp lib="0" loc="(180,320)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="8"/>
<a name="bit0" val="none"/>
<a name="bit1" val="none"/>
<a name="bit2" val="none"/>
<a name="bit3" val="none"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
</comp>
<comp lib="0" loc="(420,530)" name="Bit Extender">
<a name="in_width" val="4"/>
<a name="out_width" val="8"/>
</comp>
<comp lib="2" loc="(250,300)" name="Decoder">
<a name="select" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(550,410)" name="Register"/>
<comp lib="0" loc="(670,280)" name="Constant"/>
<comp lib="0" loc="(130,170)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM in"/>
</comp>
<comp lib="1" loc="(670,360)" name="OR Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="4" loc="(710,270)" name="Counter"/>
<comp lib="0" loc="(830,270)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Code address"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(70,190)" name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="Clock"/>
</comp>
<comp lib="0" loc="(150,130)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Reset"/>
</comp>
<comp loc="(570,530)" name="alu"/>
</circuit>
<circuit name="alu">
<a name="circuit" val="alu"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(230,390)" to="(240,390)"/>
<wire from="(230,360)" to="(240,360)"/>
<wire from="(290,430)" to="(370,430)"/>
<wire from="(220,420)" to="(220,460)"/>
<wire from="(230,300)" to="(240,300)"/>
<wire from="(340,260)" to="(430,260)"/>
<wire from="(230,410)" to="(360,410)"/>
<wire from="(360,280)" to="(360,410)"/>
<wire from="(220,500)" to="(220,550)"/>
<wire from="(200,590)" to="(450,590)"/>
<wire from="(230,330)" to="(240,330)"/>
<wire from="(300,220)" to="(300,290)"/>
<wire from="(220,460)" to="(250,460)"/>
<wire from="(220,340)" to="(220,370)"/>
<wire from="(230,330)" to="(230,360)"/>
<wire from="(220,310)" to="(220,340)"/>
<wire from="(230,300)" to="(230,330)"/>
<wire from="(150,240)" to="(200,240)"/>
<wire from="(200,210)" to="(200,220)"/>
<wire from="(220,190)" to="(240,190)"/>
<wire from="(270,370)" to="(330,370)"/>
<wire from="(320,240)" to="(320,350)"/>
<wire from="(220,550)" to="(250,550)"/>
<wire from="(310,230)" to="(430,230)"/>
<wire from="(230,360)" to="(230,390)"/>
<wire from="(320,240)" to="(430,240)"/>
<wire from="(230,390)" to="(230,410)"/>
<wire from="(220,280)" to="(240,280)"/>
<wire from="(340,260)" to="(340,390)"/>
<wire from="(220,310)" to="(240,310)"/>
<wire from="(280,200)" to="(430,200)"/>
<wire from="(230,260)" to="(240,260)"/>
<wire from="(220,280)" to="(220,310)"/>
<wire from="(330,250)" to="(430,250)"/>
<wire from="(300,220)" to="(430,220)"/>
<wire from="(370,290)" to="(430,290)"/>
<wire from="(220,340)" to="(240,340)"/>
<wire from="(200,240)" to="(200,590)"/>
<wire from="(370,290)" to="(370,430)"/>
<wire from="(290,210)" to="(430,210)"/>
<wire from="(220,420)" to="(250,420)"/>
<wire from="(230,210)" to="(240,210)"/>
<wire from="(220,400)" to="(220,420)"/>
<wire from="(220,400)" to="(350,400)"/>
<wire from="(190,200)" to="(210,200)"/>
<wire from="(380,300)" to="(430,300)"/>
<wire from="(220,370)" to="(220,400)"/>
<wire from="(220,370)" to="(240,370)"/>
<wire from="(220,240)" to="(220,280)"/>
<wire from="(270,390)" to="(340,390)"/>
<wire from="(200,210)" to="(230,210)"/>
<wire from="(380,300)" to="(380,470)"/>
<wire from="(280,350)" to="(320,350)"/>
<wire from="(220,190)" to="(220,240)"/>
<wire from="(280,250)" to="(290,250)"/>
<wire from="(230,260)" to="(230,300)"/>
<wire from="(220,500)" to="(250,500)"/>
<wire from="(350,270)" to="(350,400)"/>
<wire from="(210,190)" to="(220,190)"/>
<wire from="(310,230)" to="(310,320)"/>
<wire from="(290,470)" to="(380,470)"/>
<wire from="(190,220)" to="(200,220)"/>
<wire from="(220,460)" to="(220,500)"/>
<wire from="(210,190)" to="(210,200)"/>
<wire from="(450,360)" to="(450,590)"/>
<wire from="(270,320)" to="(310,320)"/>
<wire from="(290,210)" to="(290,250)"/>
<wire from="(350,270)" to="(430,270)"/>
<wire from="(330,250)" to="(330,370)"/>
<wire from="(230,210)" to="(230,260)"/>
<wire from="(270,290)" to="(300,290)"/>
<wire from="(360,280)" to="(430,280)"/>
<wire from="(220,240)" to="(240,240)"/>
<comp lib="0" loc="(470,280)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="R"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(280,200)" name="Adder"/>
<comp lib="1" loc="(280,350)" name="XOR Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="3" loc="(290,510)" name="Adder"/>
<comp lib="1" loc="(270,370)" name="NOT Gate">
<a name="width" val="8"/>
</comp>
<comp lib="3" loc="(280,250)" name="Subtractor"/>
<comp lib="0" loc="(250,520)" name="Constant">
<a name="width" val="8"/>
</comp>
<comp lib="3" loc="(290,430)" name="Shifter"/>
<comp lib="0" loc="(250,480)" name="Constant">
<a name="width" val="3"/>
</comp>
<comp lib="0" loc="(250,570)" name="Constant">
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(150,240)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="Op"/>
</comp>
<comp lib="0" loc="(190,200)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="2" loc="(470,280)" name="Multiplexer">
<a name="select" val="4"/>
<a name="width" val="8"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="1" loc="(270,290)" name="AND Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(270,320)" name="OR Gate">
<a name="width" val="8"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="3" loc="(290,470)" name="Shifter">
<a name="shift" val="lr"/>
</comp>
<comp lib="3" loc="(290,560)" name="Subtractor"/>
<comp lib="0" loc="(430,310)" name="Constant">
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(190,220)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="0" loc="(250,440)" name="Constant">
<a name="width" val="3"/>
</comp>
<comp lib="1" loc="(270,390)" name="NOT Gate">
<a name="width" val="8"/>
</comp>
</circuit>
</project>