logisim-stuff/text editor copy.circ
2015-01-04 15:24:53 -06:00

544 lines
21 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0">
<tool name="Splitter">
<a name="fanout" val="5"/>
<a name="incoming" val="5"/>
<a name="appear" val="right"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
</tool>
<tool name="Probe">
<a name="facing" val="west"/>
<a name="radix" val="16"/>
</tool>
<tool name="Tunnel">
<a name="label" val="JMP"/>
</tool>
<tool name="Pull Resistor">
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="width" val="32"/>
<a name="value" val="0x4000"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<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">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
</lib>
<main name="main"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="6" map="Button2" name="Menu Tool"/>
<tool lib="6" map="Button3" name="Menu Tool"/>
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
</mappings>
<toolbar>
<tool lib="6" name="Poke Tool"/>
<tool lib="6" name="Edit Tool"/>
<tool lib="6" name="Text Tool">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
<sep/>
<tool lib="0" name="Pin">
<a name="tristate" val="false"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool lib="1" name="OR Gate"/>
</toolbar>
<circuit name="main">
<a name="circuit" val="main"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(300,380)" to="(660,380)"/>
<wire from="(570,390)" to="(570,510)"/>
<wire from="(270,410)" to="(270,420)"/>
<wire from="(20,190)" to="(250,190)"/>
<wire from="(250,240)" to="(580,240)"/>
<wire from="(250,190)" to="(250,240)"/>
<wire from="(60,410)" to="(190,410)"/>
<wire from="(190,260)" to="(190,370)"/>
<wire from="(670,480)" to="(680,480)"/>
<wire from="(160,490)" to="(610,490)"/>
<wire from="(190,390)" to="(190,410)"/>
<wire from="(260,350)" to="(260,380)"/>
<wire from="(690,490)" to="(690,510)"/>
<wire from="(660,470)" to="(680,470)"/>
<wire from="(700,490)" to="(700,500)"/>
<wire from="(220,420)" to="(270,420)"/>
<wire from="(190,390)" to="(270,390)"/>
<wire from="(190,420)" to="(190,430)"/>
<wire from="(250,380)" to="(250,400)"/>
<wire from="(570,510)" to="(690,510)"/>
<wire from="(20,190)" to="(20,510)"/>
<wire from="(200,260)" to="(200,360)"/>
<wire from="(150,390)" to="(190,390)"/>
<wire from="(220,420)" to="(220,510)"/>
<wire from="(190,420)" to="(220,420)"/>
<wire from="(60,250)" to="(60,410)"/>
<wire from="(580,630)" to="(670,630)"/>
<wire from="(610,500)" to="(700,500)"/>
<wire from="(150,350)" to="(260,350)"/>
<wire from="(20,510)" to="(220,510)"/>
<wire from="(150,370)" to="(150,380)"/>
<wire from="(190,370)" to="(270,370)"/>
<wire from="(300,390)" to="(570,390)"/>
<wire from="(260,380)" to="(270,380)"/>
<wire from="(200,360)" to="(270,360)"/>
<wire from="(610,490)" to="(610,500)"/>
<wire from="(670,480)" to="(670,630)"/>
<wire from="(250,400)" to="(270,400)"/>
<wire from="(150,380)" to="(250,380)"/>
<wire from="(660,380)" to="(660,470)"/>
<wire from="(150,430)" to="(190,430)"/>
<wire from="(580,240)" to="(580,630)"/>
<comp lib="5" loc="(680,480)" name="TTY">
<a name="rows" val="32"/>
<a name="cols" val="64"/>
</comp>
<comp lib="5" loc="(150,350)" name="Button">
<a name="label" val="reset"/>
<a name="labelloc" val="west"/>
</comp>
<comp loc="(300,380)" name="cpu"/>
<comp lib="0" loc="(150,430)" name="Clock"/>
<comp lib="5" loc="(160,490)" name="Button"/>
<comp lib="5" loc="(150,390)" name="Button">
<a name="label" val="clock"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(150,370)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="load chars"/>
</comp>
<comp lib="5" loc="(60,250)" name="Keyboard">
<a name="buflen" val="200"/>
</comp>
</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="(1350,430)" to="(1350,500)"/>
<wire from="(350,770)" to="(1340,770)"/>
<wire from="(280,300)" to="(290,300)"/>
<wire from="(600,510)" to="(1050,510)"/>
<wire from="(310,250)" to="(600,250)"/>
<wire from="(1190,430)" to="(1350,430)"/>
<wire from="(160,320)" to="(180,320)"/>
<wire from="(250,350)" to="(520,350)"/>
<wire from="(840,150)" to="(840,180)"/>
<wire from="(410,340)" to="(700,340)"/>
<wire from="(1420,410)" to="(1420,500)"/>
<wire from="(190,380)" to="(190,450)"/>
<wire from="(710,200)" to="(730,200)"/>
<wire from="(810,130)" to="(820,130)"/>
<wire from="(290,430)" to="(290,550)"/>
<wire from="(160,340)" to="(250,340)"/>
<wire from="(700,120)" to="(700,130)"/>
<wire from="(810,130)" to="(810,200)"/>
<wire from="(1370,500)" to="(1420,500)"/>
<wire from="(660,200)" to="(690,200)"/>
<wire from="(440,640)" to="(1320,640)"/>
<wire from="(260,210)" to="(260,250)"/>
<wire from="(230,310)" to="(230,430)"/>
<wire from="(290,310)" to="(290,390)"/>
<wire from="(1180,180)" to="(1180,420)"/>
<wire from="(840,150)" to="(880,150)"/>
<wire from="(700,340)" to="(700,400)"/>
<wire from="(200,270)" to="(200,300)"/>
<wire from="(250,320)" to="(260,320)"/>
<wire from="(350,500)" to="(350,770)"/>
<wire from="(290,550)" to="(370,550)"/>
<wire from="(270,290)" to="(440,290)"/>
<wire from="(700,400)" to="(1190,400)"/>
<wire from="(160,300)" to="(200,300)"/>
<wire from="(520,350)" to="(520,430)"/>
<wire from="(1320,530)" to="(1350,530)"/>
<wire from="(280,250)" to="(280,300)"/>
<wire from="(1320,20)" to="(1320,510)"/>
<wire from="(720,130)" to="(720,190)"/>
<wire from="(1190,400)" to="(1190,430)"/>
<wire from="(260,250)" to="(280,250)"/>
<wire from="(230,310)" to="(250,310)"/>
<wire from="(1320,530)" to="(1320,640)"/>
<wire from="(370,460)" to="(370,550)"/>
<wire from="(640,230)" to="(1220,230)"/>
<wire from="(260,500)" to="(350,500)"/>
<wire from="(290,390)" to="(340,390)"/>
<wire from="(550,630)" to="(1300,630)"/>
<wire from="(730,200)" to="(810,200)"/>
<wire from="(380,320)" to="(550,320)"/>
<wire from="(790,430)" to="(790,500)"/>
<wire from="(1340,540)" to="(1340,770)"/>
<wire from="(1310,460)" to="(1310,520)"/>
<wire from="(1220,410)" to="(1420,410)"/>
<wire from="(200,270)" to="(270,270)"/>
<wire from="(1180,420)" to="(1300,420)"/>
<wire from="(190,140)" to="(310,140)"/>
<wire from="(440,290)" to="(440,640)"/>
<wire from="(290,300)" to="(290,310)"/>
<wire from="(730,100)" to="(730,180)"/>
<wire from="(700,130)" to="(700,190)"/>
<wire from="(260,450)" to="(260,500)"/>
<wire from="(190,450)" to="(260,450)"/>
<wire from="(160,280)" to="(190,280)"/>
<wire from="(230,430)" to="(290,430)"/>
<wire from="(640,200)" to="(640,230)"/>
<wire from="(350,300)" to="(380,300)"/>
<wire from="(360,100)" to="(730,100)"/>
<wire from="(1080,510)" to="(1280,510)"/>
<wire from="(250,310)" to="(250,320)"/>
<wire from="(1300,510)" to="(1300,630)"/>
<wire from="(1300,420)" to="(1300,500)"/>
<wire from="(1340,540)" to="(1350,540)"/>
<wire from="(190,140)" to="(190,280)"/>
<wire from="(270,270)" to="(270,290)"/>
<wire from="(180,310)" to="(180,320)"/>
<wire from="(160,70)" to="(310,70)"/>
<wire from="(270,310)" to="(290,310)"/>
<wire from="(250,340)" to="(250,350)"/>
<wire from="(1220,230)" to="(1220,410)"/>
<wire from="(1320,510)" to="(1350,510)"/>
<wire from="(350,120)" to="(350,300)"/>
<wire from="(370,460)" to="(1310,460)"/>
<wire from="(350,120)" to="(700,120)"/>
<wire from="(410,340)" to="(410,420)"/>
<wire from="(160,380)" to="(190,380)"/>
<wire from="(520,430)" to="(790,430)"/>
<wire from="(360,70)" to="(360,100)"/>
<wire from="(310,70)" to="(360,70)"/>
<wire from="(550,320)" to="(550,630)"/>
<wire from="(340,390)" to="(340,420)"/>
<wire from="(180,310)" to="(230,310)"/>
<wire from="(340,420)" to="(410,420)"/>
<wire from="(310,140)" to="(310,250)"/>
<wire from="(660,180)" to="(660,200)"/>
<wire from="(640,200)" to="(660,200)"/>
<wire from="(1310,520)" to="(1350,520)"/>
<wire from="(600,250)" to="(600,510)"/>
<wire from="(380,300)" to="(380,320)"/>
<wire from="(310,20)" to="(310,70)"/>
<wire from="(310,20)" to="(1320,20)"/>
<wire from="(160,70)" to="(160,260)"/>
<wire from="(840,180)" to="(1180,180)"/>
<wire from="(790,500)" to="(1280,500)"/>
<comp lib="0" loc="(880,150)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="clock enable out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(160,380)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="display clock in"/>
</comp>
<comp lib="0" loc="(160,260)" name="Pin">
<a name="width" val="7"/>
<a name="tristate" val="false"/>
<a name="label" val="ASCII in"/>
</comp>
<comp lib="1" loc="(720,130)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(160,300)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="reset"/>
</comp>
<comp lib="0" loc="(160,280)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="avalible in"/>
</comp>
<comp lib="0" loc="(160,320)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val=" main clock in"/>
</comp>
<comp lib="1" loc="(270,310)" name="Controlled Buffer"/>
<comp loc="(1240,460)" name="control/mem"/>
<comp lib="0" loc="(820,130)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="7"/>
<a name="label" val="ASCII out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(260,210)" name="Pull Resistor"/>
<comp lib="1" loc="(1080,510)" name="NOT Gate"/>
<comp lib="1" loc="(730,200)" name="Controlled Buffer">
<a name="facing" val="south"/>
<a name="width" val="7"/>
</comp>
<comp lib="0" loc="(160,340)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="R/W"/>
</comp>
<comp lib="1" loc="(710,200)" name="Controlled Buffer">
<a name="width" val="7"/>
<a name="control" val="left"/>
</comp>
<comp lib="0" loc="(660,180)" name="Pull Resistor"/>
</circuit>
<circuit name="control/mem">
<a name="circuit" val="control/mem"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="61" stroke="#000000" width="22" x="120" y="40"/>
<rect fill="none" height="61" stroke="#000000" width="22" x="52" y="40"/>
<circ-port height="8" pin="330,260" width="8" x="116" y="46"/>
<circ-port height="8" pin="330,240" width="8" x="116" y="56"/>
<circ-port height="10" pin="700,200" width="10" x="135" y="45"/>
<circ-port height="8" pin="330,280" width="8" x="116" y="66"/>
<circ-port height="8" pin="330,300" width="8" x="116" y="76"/>
<circ-port height="8" pin="160,360" width="8" x="46" y="46"/>
<circ-port height="8" pin="160,380" width="8" x="46" y="56"/>
<circ-port height="10" pin="520,340" width="10" x="65" y="55"/>
<circ-port height="10" pin="1110,290" width="10" x="65" y="45"/>
<circ-port height="8" pin="330,320" width="8" x="116" y="86"/>
<circ-anchor facing="east" height="6" width="6" x="7" y="7"/>
</appear>
<wire from="(450,190)" to="(460,190)"/>
<wire from="(160,380)" to="(220,380)"/>
<wire from="(390,220)" to="(430,220)"/>
<wire from="(440,490)" to="(440,500)"/>
<wire from="(160,360)" to="(170,360)"/>
<wire from="(350,90)" to="(670,90)"/>
<wire from="(1010,300)" to="(1010,330)"/>
<wire from="(1000,370)" to="(1010,370)"/>
<wire from="(630,410)" to="(630,590)"/>
<wire from="(360,190)" to="(360,230)"/>
<wire from="(440,460)" to="(440,470)"/>
<wire from="(1010,470)" to="(1020,470)"/>
<wire from="(670,350)" to="(860,350)"/>
<wire from="(330,280)" to="(390,280)"/>
<wire from="(430,210)" to="(430,220)"/>
<wire from="(530,240)" to="(530,280)"/>
<wire from="(1060,570)" to="(1160,570)"/>
<wire from="(590,240)" to="(590,270)"/>
<wire from="(1090,290)" to="(1090,300)"/>
<wire from="(440,440)" to="(440,450)"/>
<wire from="(350,240)" to="(490,240)"/>
<wire from="(330,320)" to="(460,320)"/>
<wire from="(370,260)" to="(570,260)"/>
<wire from="(560,280)" to="(560,350)"/>
<wire from="(1020,490)" to="(1110,490)"/>
<wire from="(170,120)" to="(170,280)"/>
<wire from="(1060,390)" to="(1080,390)"/>
<wire from="(390,220)" to="(390,280)"/>
<wire from="(330,240)" to="(350,240)"/>
<wire from="(170,280)" to="(170,360)"/>
<wire from="(1080,390)" to="(1110,390)"/>
<wire from="(550,270)" to="(590,270)"/>
<wire from="(1150,330)" to="(1150,340)"/>
<wire from="(1010,330)" to="(1150,330)"/>
<wire from="(1060,500)" to="(1140,500)"/>
<wire from="(1250,400)" to="(1250,530)"/>
<wire from="(250,370)" to="(250,400)"/>
<wire from="(330,300)" to="(440,300)"/>
<wire from="(70,190)" to="(360,190)"/>
<wire from="(250,360)" to="(250,370)"/>
<wire from="(670,200)" to="(700,200)"/>
<wire from="(490,220)" to="(490,240)"/>
<wire from="(1020,470)" to="(1020,490)"/>
<wire from="(460,200)" to="(500,200)"/>
<wire from="(460,190)" to="(460,200)"/>
<wire from="(1020,350)" to="(1140,350)"/>
<wire from="(830,370)" to="(860,370)"/>
<wire from="(330,260)" to="(370,260)"/>
<wire from="(570,240)" to="(570,260)"/>
<wire from="(170,120)" to="(650,120)"/>
<wire from="(250,400)" to="(360,400)"/>
<wire from="(660,200)" to="(670,200)"/>
<wire from="(1010,350)" to="(1020,350)"/>
<wire from="(1080,400)" to="(1250,400)"/>
<wire from="(420,410)" to="(550,410)"/>
<wire from="(440,210)" to="(440,300)"/>
<wire from="(1000,370)" to="(1000,450)"/>
<wire from="(420,590)" to="(630,590)"/>
<wire from="(1140,350)" to="(1140,500)"/>
<wire from="(70,280)" to="(170,280)"/>
<wire from="(670,200)" to="(670,350)"/>
<wire from="(220,380)" to="(220,420)"/>
<wire from="(440,470)" to="(440,480)"/>
<wire from="(170,360)" to="(250,360)"/>
<wire from="(460,320)" to="(460,440)"/>
<wire from="(820,450)" to="(1000,450)"/>
<wire from="(1080,390)" to="(1080,400)"/>
<wire from="(1000,350)" to="(1000,370)"/>
<wire from="(1150,340)" to="(1170,340)"/>
<wire from="(1090,290)" to="(1110,290)"/>
<wire from="(250,370)" to="(310,370)"/>
<wire from="(1060,500)" to="(1060,570)"/>
<wire from="(350,90)" to="(350,220)"/>
<wire from="(1110,390)" to="(1110,490)"/>
<wire from="(220,420)" to="(360,420)"/>
<wire from="(520,340)" to="(550,340)"/>
<wire from="(550,340)" to="(550,350)"/>
<wire from="(440,440)" to="(460,440)"/>
<wire from="(670,90)" to="(670,200)"/>
<wire from="(370,200)" to="(370,260)"/>
<wire from="(350,370)" to="(550,370)"/>
<wire from="(370,200)" to="(420,200)"/>
<wire from="(860,350)" to="(860,370)"/>
<wire from="(630,410)" to="(1010,410)"/>
<wire from="(490,220)" to="(500,220)"/>
<wire from="(650,120)" to="(650,170)"/>
<wire from="(420,510)" to="(420,590)"/>
<wire from="(70,190)" to="(70,280)"/>
<wire from="(440,450)" to="(440,460)"/>
<wire from="(550,270)" to="(550,340)"/>
<wire from="(1010,300)" to="(1090,300)"/>
<wire from="(550,380)" to="(550,410)"/>
<wire from="(530,280)" to="(560,280)"/>
<wire from="(440,480)" to="(440,490)"/>
<wire from="(1020,340)" to="(1020,350)"/>
<wire from="(860,350)" to="(1000,350)"/>
<comp lib="4" loc="(640,200)" name="RAM">
<a name="addrWidth" val="16"/>
<a name="dataWidth" val="7"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="1" loc="(420,410)" name="NOT Gate"/>
<comp lib="1" loc="(660,200)" name="Controlled Buffer">
<a name="width" val="7"/>
<a name="control" val="left"/>
</comp>
<comp lib="0" loc="(330,280)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="count in"/>
</comp>
<comp lib="0" loc="(160,360)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="r/w"/>
</comp>
<comp lib="0" loc="(350,370)" name="Bit Extender">
<a name="in_width" val="1"/>
<a name="out_width" val="2"/>
</comp>
<comp lib="0" loc="(830,370)" name="Probe"/>
<comp lib="1" loc="(1060,390)" name="AND Gate">
<a name="width" val="7"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(330,320)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="display clock"/>
</comp>
<comp lib="4" loc="(450,190)" name="Counter">
<a name="width" val="16"/>
<a name="max" val="0xffff"/>
<a name="trigger" val="falling"/>
</comp>
<comp lib="1" loc="(650,190)" name="NOT Gate">
<a name="facing" val="south"/>
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(520,340)" name="Pin">
<a name="output" val="true"/>
<a name="tristate" val="false"/>
<a name="label" val="r out"/>
</comp>
<comp lib="0" loc="(1110,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="clock enable out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(330,240)" name="Pin">
<a name="width" val="7"/>
<a name="tristate" val="false"/>
<a name="label" val="data in"/>
</comp>
<comp lib="0" loc="(1170,340)" name="Pull Resistor"/>
<comp lib="1" loc="(1010,330)" name="Controlled Buffer">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(1250,530)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="7"/>
<a name="incoming" val="7"/>
</comp>
<comp lib="1" loc="(1160,570)" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="70"/>
<a name="inputs" val="7"/>
</comp>
<comp lib="0" loc="(820,450)" name="Probe"/>
<comp lib="0" loc="(330,260)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val=" main clock in"/>
</comp>
<comp lib="0" loc="(330,300)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="reset in"/>
</comp>
<comp lib="0" loc="(420,510)" name="Splitter">
<a name="fanout" val="7"/>
<a name="incoming" val="7"/>
</comp>
<comp lib="1" loc="(350,220)" name="Controlled Buffer">
<a name="facing" val="north"/>
<a name="width" val="7"/>
</comp>
<comp lib="2" loc="(550,370)" name="Decoder">
<a name="facing" val="north"/>
<a name="select" val="2"/>
<a name="disabled" val="0"/>
</comp>
<comp lib="0" loc="(700,200)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="7"/>
<a name="label" val="data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(390,410)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(160,380)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="avalible"/>
</comp>
<comp lib="0" loc="(1010,470)" name="Probe"/>
</circuit>
</project>