logisim-stuff/TKStack5.circ
2015-01-04 15:24:53 -06:00

874 lines
31 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="facing" val="west"/>
<a name="fanout" val="3"/>
<a name="incoming" val="3"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="View"/>
</tool>
<tool name="Probe">
<a name="facing" val="west"/>
<a name="radix" val="16"/>
<a name="label" val="rdov"/>
<a name="labelloc" val="east"/>
</tool>
<tool name="Tunnel">
<a name="label" val="riv"/>
</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="width" val="16"/>
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="AND Gate">
<a name="width" val="16"/>
<a name="inputs" val="2"/>
</tool>
<tool name="NAND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool name="NOR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</tool>
<tool name="XOR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</lib>
<lib desc="#Plexers" name="2">
<tool name="Multiplexer">
<a name="width" val="3"/>
</tool>
<tool name="Demultiplexer">
<a name="select" val="3"/>
</tool>
<tool name="Decoder">
<a name="select" val="3"/>
</tool>
</lib>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="Register">
<a name="width" val="16"/>
</tool>
<tool name="RAM">
<a name="addrWidth" val="12"/>
<a name="dataWidth" val="16"/>
</tool>
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5">
<tool name="Button">
<a name="label" val="store"/>
</tool>
<tool name="LED">
<a name="facing" val="east"/>
<a name="color" val="#00ff00"/>
<a name="offcolor" val="#ff0000"/>
<a name="labelloc" val="west"/>
</tool>
</lib>
<lib desc="#Base" name="6">
<tool name="Text Tool">
<a name="text" val="Main RAM"/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
</lib>
<lib desc="file#TKStackALU.circ" name="7"/>
<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="Main RAM"/>
<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"/>
<a name="label" val="pointer not used"/>
</tool>
<tool lib="0" name="Pin">
<a name="output" val="true"/>
<a name="label" val="data out"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool lib="1" name="OR Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</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="(180,460)" to="(490,460)"/>
<wire from="(570,180)" to="(570,260)"/>
<wire from="(660,150)" to="(660,220)"/>
<wire from="(910,100)" to="(930,100)"/>
<wire from="(990,190)" to="(1020,190)"/>
<wire from="(510,150)" to="(510,230)"/>
<wire from="(180,440)" to="(200,440)"/>
<wire from="(250,570)" to="(810,570)"/>
<wire from="(80,270)" to="(80,280)"/>
<wire from="(760,320)" to="(850,320)"/>
<wire from="(750,290)" to="(830,290)"/>
<wire from="(820,210)" to="(960,210)"/>
<wire from="(120,400)" to="(140,400)"/>
<wire from="(120,450)" to="(150,450)"/>
<wire from="(630,230)" to="(790,230)"/>
<wire from="(440,240)" to="(600,240)"/>
<wire from="(720,310)" to="(760,310)"/>
<wire from="(850,320)" to="(1020,320)"/>
<wire from="(190,220)" to="(270,220)"/>
<wire from="(570,180)" to="(610,180)"/>
<wire from="(140,400)" to="(140,440)"/>
<wire from="(610,170)" to="(610,180)"/>
<wire from="(420,150)" to="(510,150)"/>
<wire from="(100,280)" to="(120,280)"/>
<wire from="(120,360)" to="(120,400)"/>
<wire from="(660,300)" to="(690,300)"/>
<wire from="(830,530)" to="(860,530)"/>
<wire from="(420,90)" to="(750,90)"/>
<wire from="(940,220)" to="(940,240)"/>
<wire from="(360,310)" to="(360,320)"/>
<wire from="(90,250)" to="(90,270)"/>
<wire from="(420,90)" to="(420,150)"/>
<wire from="(180,450)" to="(440,450)"/>
<wire from="(930,100)" to="(930,190)"/>
<wire from="(890,520)" to="(910,520)"/>
<wire from="(120,360)" to="(140,360)"/>
<wire from="(760,310)" to="(760,320)"/>
<wire from="(440,240)" to="(440,450)"/>
<wire from="(840,390)" to="(880,390)"/>
<wire from="(570,260)" to="(570,290)"/>
<wire from="(830,70)" to="(830,110)"/>
<wire from="(200,360)" to="(200,440)"/>
<wire from="(830,70)" to="(1090,70)"/>
<wire from="(910,490)" to="(910,520)"/>
<wire from="(930,240)" to="(940,240)"/>
<wire from="(660,150)" to="(690,150)"/>
<wire from="(250,240)" to="(270,240)"/>
<wire from="(970,480)" to="(970,490)"/>
<wire from="(800,260)" to="(800,440)"/>
<wire from="(1090,70)" to="(1090,390)"/>
<wire from="(140,440)" to="(150,440)"/>
<wire from="(110,230)" to="(160,230)"/>
<wire from="(170,240)" to="(170,310)"/>
<wire from="(930,190)" to="(960,190)"/>
<wire from="(200,310)" to="(200,330)"/>
<wire from="(300,320)" to="(360,320)"/>
<wire from="(250,240)" to="(250,570)"/>
<wire from="(890,120)" to="(890,230)"/>
<wire from="(510,150)" to="(600,150)"/>
<wire from="(720,290)" to="(730,290)"/>
<wire from="(570,260)" to="(610,260)"/>
<wire from="(830,230)" to="(830,290)"/>
<wire from="(90,400)" to="(120,400)"/>
<wire from="(1050,210)" to="(1050,570)"/>
<wire from="(840,220)" to="(840,390)"/>
<wire from="(360,320)" to="(660,320)"/>
<wire from="(1020,390)" to="(1090,390)"/>
<wire from="(830,290)" to="(830,530)"/>
<wire from="(610,250)" to="(610,260)"/>
<wire from="(910,490)" to="(970,490)"/>
<wire from="(300,260)" to="(300,320)"/>
<wire from="(50,310)" to="(170,310)"/>
<wire from="(50,240)" to="(80,240)"/>
<wire from="(490,160)" to="(490,460)"/>
<wire from="(410,220)" to="(420,220)"/>
<wire from="(820,200)" to="(960,200)"/>
<wire from="(170,310)" to="(200,310)"/>
<wire from="(1020,190)" to="(1020,320)"/>
<wire from="(810,410)" to="(880,410)"/>
<wire from="(100,250)" to="(100,280)"/>
<wire from="(950,430)" to="(950,450)"/>
<wire from="(830,230)" to="(890,230)"/>
<wire from="(820,190)" to="(860,190)"/>
<wire from="(940,220)" to="(960,220)"/>
<wire from="(140,70)" to="(830,70)"/>
<wire from="(490,160)" to="(600,160)"/>
<wire from="(340,260)" to="(340,270)"/>
<wire from="(850,510)" to="(860,510)"/>
<wire from="(830,110)" to="(880,110)"/>
<wire from="(750,90)" to="(750,200)"/>
<wire from="(50,240)" to="(50,310)"/>
<wire from="(140,210)" to="(160,210)"/>
<wire from="(850,320)" to="(850,510)"/>
<wire from="(820,230)" to="(830,230)"/>
<wire from="(660,300)" to="(660,320)"/>
<wire from="(660,220)" to="(790,220)"/>
<wire from="(820,220)" to="(840,220)"/>
<wire from="(420,150)" to="(420,220)"/>
<wire from="(910,430)" to="(910,490)"/>
<wire from="(750,200)" to="(790,200)"/>
<wire from="(360,260)" to="(360,280)"/>
<wire from="(860,90)" to="(860,190)"/>
<wire from="(80,270)" to="(90,270)"/>
<wire from="(990,210)" to="(1050,210)"/>
<wire from="(510,230)" to="(600,230)"/>
<wire from="(140,70)" to="(140,210)"/>
<wire from="(120,280)" to="(120,360)"/>
<wire from="(810,570)" to="(1050,570)"/>
<wire from="(810,410)" to="(810,570)"/>
<wire from="(200,440)" to="(800,440)"/>
<wire from="(630,150)" to="(660,150)"/>
<wire from="(860,90)" to="(880,90)"/>
<wire from="(970,430)" to="(970,460)"/>
<comp lib="1" loc="(690,300)" name="AND Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(690,150)" name="Tunnel">
<a name="width" val="16"/>
<a name="label" val="INA"/>
</comp>
<comp lib="2" loc="(190,220)" name="Multiplexer">
<a name="width" val="16"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(140,360)" name="Tunnel">
<a name="label" val="RST"/>
</comp>
<comp loc="(180,440)" name="Phase Control">
<a name="label" val="Phase Control"/>
<a name="labelloc" val="south"/>
</comp>
<comp lib="1" loc="(200,330)" name="NOT Gate">
<a name="facing" val="north"/>
</comp>
<comp lib="6" loc="(419,398)" name="Text">
<a name="text" val="Load B"/>
</comp>
<comp lib="2" loc="(910,100)" name="Multiplexer">
<a name="width" val="16"/>
<a name="enable" val="false"/>
</comp>
<comp loc="(820,190)" name="Ins Decoder">
<a name="label" val="Decoder"/>
</comp>
<comp lib="0" loc="(120,450)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="16"/>
<a name="label" val="INA"/>
</comp>
<comp lib="0" loc="(570,290)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="1" loc="(360,280)" name="NOT Gate">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(80,280)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="7" loc="(990,190)" name="Stack ALU">
<a name="label" val="Stack ALU"/>
</comp>
<comp lib="0" loc="(950,450)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="1" loc="(730,290)" name="NOT Gate">
<a name="facing" val="west"/>
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(890,520)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="6" loc="(341,169)" name="Text">
<a name="text" val="Main RAM"/>
</comp>
<comp lib="0" loc="(90,400)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RESET"/>
</comp>
<comp lib="6" loc="(511,368)" name="Text">
<a name="text" val="Load A"/>
</comp>
<comp lib="0" loc="(930,240)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="RST"/>
</comp>
<comp lib="1" loc="(970,460)" name="NOT Gate">
<a name="facing" val="north"/>
<a name="size" val="20"/>
</comp>
<comp lib="4" loc="(110,230)" name="Counter">
<a name="width" val="16"/>
<a name="max" val="0xffff"/>
</comp>
<comp lib="4" loc="(410,220)" name="RAM">
<a name="addrWidth" val="16"/>
<a name="dataWidth" val="16"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="4" loc="(630,230)" name="Register">
<a name="width" val="16"/>
<a name="label" val="Instruction B"/>
</comp>
<comp lib="6" loc="(949,343)" name="Text">
<a name="text" val="Pointers"/>
</comp>
<comp lib="6" loc="(706,434)" name="Text">
<a name="text" val="Execute"/>
</comp>
<comp lib="0" loc="(340,270)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="4" loc="(630,150)" name="Register">
<a name="width" val="16"/>
<a name="label" val="Instruction A"/>
</comp>
<comp lib="4" loc="(1020,390)" name="RAM">
<a name="addrWidth" val="3"/>
<a name="dataWidth" val="16"/>
<a name="bus" val="separate"/>
</comp>
</circuit>
<circuit name="Ins Decoder">
<a name="circuit" val="Ins Decoder"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="89" stroke="#000000" stroke-width="2" width="30" x="50" y="41"/>
<circ-port height="8" pin="170,120" width="8" x="46" y="66"/>
<circ-port height="8" pin="160,420" width="8" x="46" y="86"/>
<circ-port height="10" pin="690,130" width="10" x="75" y="55"/>
<circ-port height="8" pin="170,200" width="8" x="46" y="96"/>
<circ-port height="10" pin="690,200" width="10" x="75" y="65"/>
<circ-port height="10" pin="700,250" width="10" x="75" y="75"/>
<circ-port height="10" pin="680,290" width="10" x="75" y="85"/>
<circ-port height="10" pin="670,330" width="10" x="75" y="95"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="57"/>
</appear>
<wire from="(230,320)" to="(290,320)"/>
<wire from="(160,420)" to="(210,420)"/>
<wire from="(420,130)" to="(690,130)"/>
<wire from="(240,140)" to="(390,140)"/>
<wire from="(230,290)" to="(280,290)"/>
<wire from="(230,280)" to="(240,280)"/>
<wire from="(260,200)" to="(690,200)"/>
<wire from="(260,200)" to="(260,250)"/>
<wire from="(230,300)" to="(290,300)"/>
<wire from="(170,120)" to="(390,120)"/>
<wire from="(230,270)" to="(240,270)"/>
<wire from="(280,250)" to="(280,290)"/>
<wire from="(170,200)" to="(240,200)"/>
<wire from="(240,140)" to="(240,200)"/>
<wire from="(230,330)" to="(670,330)"/>
<wire from="(230,260)" to="(240,260)"/>
<wire from="(230,310)" to="(290,310)"/>
<wire from="(310,290)" to="(680,290)"/>
<wire from="(230,410)" to="(400,410)"/>
<wire from="(400,150)" to="(400,410)"/>
<wire from="(280,250)" to="(700,250)"/>
<comp lib="0" loc="(210,420)" name="Splitter">
<a name="fanout" val="16"/>
<a name="incoming" val="16"/>
</comp>
<comp lib="0" loc="(690,200)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="3"/>
<a name="label" val="ALU_OP"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(700,250)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="ALU_EN"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(310,290)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="3"/>
<a name="incoming" val="3"/>
</comp>
<comp lib="0" loc="(670,330)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="POINTER"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(260,250)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="3"/>
<a name="incoming" val="3"/>
</comp>
<comp lib="0" loc="(170,120)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="Data In"/>
</comp>
<comp lib="0" loc="(160,420)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="Instruction A"/>
</comp>
<comp lib="0" loc="(170,200)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="Instruction B"/>
</comp>
<comp lib="2" loc="(420,130)" name="Multiplexer">
<a name="width" val="16"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(690,130)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="16"/>
<a name="label" val="Data Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(680,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="3"/>
<a name="label" val="SEGMENT"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
<circuit name="Phase Control">
<a name="circuit" val="Phase Control"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(570,340)" to="(810,340)"/>
<wire from="(560,620)" to="(590,620)"/>
<wire from="(560,550)" to="(680,550)"/>
<wire from="(650,460)" to="(650,530)"/>
<wire from="(570,340)" to="(570,450)"/>
<wire from="(310,240)" to="(370,240)"/>
<wire from="(350,220)" to="(370,220)"/>
<wire from="(560,550)" to="(560,620)"/>
<wire from="(650,530)" to="(650,600)"/>
<wire from="(400,370)" to="(400,390)"/>
<wire from="(620,620)" to="(680,620)"/>
<wire from="(540,470)" to="(590,470)"/>
<wire from="(490,290)" to="(490,430)"/>
<wire from="(650,600)" to="(680,600)"/>
<wire from="(260,250)" to="(280,250)"/>
<wire from="(240,230)" to="(280,230)"/>
<wire from="(260,550)" to="(260,600)"/>
<wire from="(310,360)" to="(370,360)"/>
<wire from="(340,270)" to="(340,390)"/>
<wire from="(710,610)" to="(720,610)"/>
<wire from="(350,340)" to="(370,340)"/>
<wire from="(260,250)" to="(260,290)"/>
<wire from="(170,440)" to="(340,440)"/>
<wire from="(340,270)" to="(400,270)"/>
<wire from="(630,460)" to="(650,460)"/>
<wire from="(450,340)" to="(570,340)"/>
<wire from="(210,620)" to="(250,620)"/>
<wire from="(540,220)" to="(810,220)"/>
<wire from="(570,450)" to="(590,450)"/>
<wire from="(540,220)" to="(540,470)"/>
<wire from="(340,390)" to="(340,440)"/>
<wire from="(350,340)" to="(350,500)"/>
<wire from="(390,370)" to="(390,430)"/>
<wire from="(260,550)" to="(560,550)"/>
<wire from="(490,220)" to="(540,220)"/>
<wire from="(450,290)" to="(450,340)"/>
<wire from="(410,340)" to="(450,340)"/>
<wire from="(710,540)" to="(720,540)"/>
<wire from="(650,460)" to="(810,460)"/>
<wire from="(340,390)" to="(400,390)"/>
<wire from="(350,220)" to="(350,340)"/>
<wire from="(390,430)" to="(490,430)"/>
<wire from="(650,530)" to="(680,530)"/>
<wire from="(340,500)" to="(350,500)"/>
<wire from="(260,290)" to="(450,290)"/>
<wire from="(490,220)" to="(490,260)"/>
<wire from="(400,250)" to="(400,270)"/>
<wire from="(410,220)" to="(490,220)"/>
<comp lib="1" loc="(710,610)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(720,610)" name="Tunnel">
<a name="label" val="SHORT"/>
</comp>
<comp lib="0" loc="(170,440)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RESET"/>
</comp>
<comp lib="0" loc="(310,360)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="LONG"/>
</comp>
<comp lib="0" loc="(810,460)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="LOADA"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(250,620)" name="Splitter">
<a name="facing" val="north"/>
<a name="fanout" val="16"/>
<a name="incoming" val="16"/>
<a name="appear" val="right"/>
</comp>
<comp lib="1" loc="(490,290)" name="NOT Gate">
<a name="facing" val="south"/>
</comp>
<comp lib="1" loc="(310,240)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(810,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="LOADB"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(210,620)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="Data In"/>
</comp>
<comp lib="1" loc="(710,540)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(240,230)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="SHORT"/>
</comp>
<comp lib="1" loc="(630,460)" name="NOR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(810,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="EXECUTE"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(620,620)" name="NOT Gate"/>
<comp lib="4" loc="(410,220)" name="D Flip-Flop">
<a name="trigger" val="falling"/>
</comp>
<comp lib="0" loc="(720,540)" name="Tunnel">
<a name="label" val="LONG"/>
</comp>
<comp lib="4" loc="(410,340)" name="D Flip-Flop">
<a name="trigger" val="falling"/>
</comp>
<comp lib="0" loc="(340,500)" name="Clock"/>
</circuit>
<circuit name="rty789">
<a name="circuit" val="rty789"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(350,150)" to="(350,180)"/>
<wire from="(650,190)" to="(660,190)"/>
<wire from="(300,480)" to="(310,480)"/>
<wire from="(180,190)" to="(180,280)"/>
<wire from="(720,50)" to="(720,170)"/>
<wire from="(180,480)" to="(260,480)"/>
<wire from="(200,260)" to="(220,260)"/>
<wire from="(170,460)" to="(180,460)"/>
<wire from="(200,510)" to="(840,510)"/>
<wire from="(170,460)" to="(170,500)"/>
<wire from="(840,410)" to="(840,510)"/>
<wire from="(820,390)" to="(880,390)"/>
<wire from="(290,160)" to="(290,170)"/>
<wire from="(160,540)" to="(310,540)"/>
<wire from="(240,370)" to="(340,370)"/>
<wire from="(590,490)" to="(590,650)"/>
<wire from="(790,370)" to="(790,390)"/>
<wire from="(620,220)" to="(650,220)"/>
<wire from="(680,170)" to="(720,170)"/>
<wire from="(210,600)" to="(210,760)"/>
<wire from="(240,240)" to="(240,370)"/>
<wire from="(480,470)" to="(480,600)"/>
<wire from="(270,180)" to="(270,220)"/>
<wire from="(420,220)" to="(420,420)"/>
<wire from="(310,480)" to="(310,540)"/>
<wire from="(460,670)" to="(460,730)"/>
<wire from="(650,190)" to="(650,220)"/>
<wire from="(400,730)" to="(440,730)"/>
<wire from="(160,300)" to="(290,300)"/>
<wire from="(350,270)" to="(360,270)"/>
<wire from="(200,270)" to="(200,510)"/>
<wire from="(290,150)" to="(290,160)"/>
<wire from="(570,110)" to="(570,360)"/>
<wire from="(220,420)" to="(420,420)"/>
<wire from="(460,730)" to="(520,730)"/>
<wire from="(300,270)" to="(320,270)"/>
<wire from="(300,280)" to="(340,280)"/>
<wire from="(400,110)" to="(570,110)"/>
<wire from="(960,440)" to="(970,440)"/>
<wire from="(360,580)" to="(550,580)"/>
<wire from="(200,170)" to="(200,260)"/>
<wire from="(210,170)" to="(210,600)"/>
<wire from="(620,220)" to="(620,430)"/>
<wire from="(220,110)" to="(220,180)"/>
<wire from="(650,80)" to="(650,170)"/>
<wire from="(140,120)" to="(140,190)"/>
<wire from="(160,210)" to="(230,210)"/>
<wire from="(570,360)" to="(710,360)"/>
<wire from="(530,670)" to="(550,670)"/>
<wire from="(440,730)" to="(440,740)"/>
<wire from="(160,450)" to="(160,470)"/>
<wire from="(160,500)" to="(170,500)"/>
<wire from="(160,280)" to="(180,280)"/>
<wire from="(170,250)" to="(170,270)"/>
<wire from="(910,440)" to="(930,440)"/>
<wire from="(570,430)" to="(620,430)"/>
<wire from="(910,500)" to="(910,760)"/>
<wire from="(910,440)" to="(910,500)"/>
<wire from="(410,760)" to="(910,760)"/>
<wire from="(160,250)" to="(170,250)"/>
<wire from="(220,260)" to="(220,270)"/>
<wire from="(220,420)" to="(220,470)"/>
<wire from="(550,670)" to="(550,720)"/>
<wire from="(530,650)" to="(590,650)"/>
<wire from="(160,470)" to="(220,470)"/>
<wire from="(260,460)" to="(260,480)"/>
<wire from="(220,110)" to="(260,110)"/>
<wire from="(300,270)" to="(300,280)"/>
<wire from="(650,80)" to="(1030,80)"/>
<wire from="(410,220)" to="(420,220)"/>
<wire from="(320,460)" to="(340,460)"/>
<wire from="(300,260)" to="(300,270)"/>
<wire from="(340,370)" to="(340,460)"/>
<wire from="(790,390)" to="(820,390)"/>
<wire from="(190,50)" to="(190,230)"/>
<wire from="(340,260)" to="(340,280)"/>
<wire from="(260,220)" to="(270,220)"/>
<wire from="(440,740)" to="(550,740)"/>
<wire from="(120,110)" to="(120,170)"/>
<wire from="(480,470)" to="(590,470)"/>
<wire from="(190,50)" to="(720,50)"/>
<wire from="(550,180)" to="(550,580)"/>
<wire from="(740,370)" to="(790,370)"/>
<wire from="(220,270)" to="(300,270)"/>
<wire from="(160,520)" to="(320,520)"/>
<wire from="(220,180)" to="(270,180)"/>
<wire from="(720,480)" to="(720,500)"/>
<wire from="(360,260)" to="(360,270)"/>
<wire from="(290,280)" to="(300,280)"/>
<wire from="(300,460)" to="(320,460)"/>
<wire from="(120,170)" to="(200,170)"/>
<wire from="(320,460)" to="(320,520)"/>
<wire from="(340,460)" to="(570,460)"/>
<wire from="(650,180)" to="(650,190)"/>
<wire from="(460,670)" to="(490,670)"/>
<wire from="(210,170)" to="(290,170)"/>
<wire from="(210,760)" to="(390,760)"/>
<wire from="(210,80)" to="(210,170)"/>
<wire from="(360,270)" to="(360,580)"/>
<wire from="(570,430)" to="(570,460)"/>
<wire from="(910,430)" to="(910,440)"/>
<wire from="(1020,390)" to="(1030,390)"/>
<wire from="(1030,80)" to="(1030,390)"/>
<wire from="(330,150)" to="(330,160)"/>
<wire from="(970,430)" to="(970,440)"/>
<wire from="(290,160)" to="(330,160)"/>
<wire from="(210,600)" to="(480,600)"/>
<wire from="(180,460)" to="(180,480)"/>
<wire from="(270,400)" to="(370,400)"/>
<wire from="(350,180)" to="(550,180)"/>
<wire from="(620,480)" to="(720,480)"/>
<wire from="(130,80)" to="(210,80)"/>
<wire from="(720,500)" to="(910,500)"/>
<wire from="(840,410)" to="(880,410)"/>
<wire from="(190,230)" to="(230,230)"/>
<wire from="(290,280)" to="(290,300)"/>
<wire from="(170,270)" to="(200,270)"/>
<wire from="(720,390)" to="(720,480)"/>
<wire from="(140,190)" to="(180,190)"/>
<comp lib="5" loc="(160,520)" name="LED">
<a name="facing" val="east"/>
<a name="color" val="#00ff00"/>
<a name="offcolor" val="#ff0000"/>
<a name="label" val="at pointer"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="1" loc="(130,80)" name="AND Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="6" loc="(949,343)" name="Text">
<a name="text" val="Pointers"/>
</comp>
<comp lib="4" loc="(680,170)" name="Register">
<a name="width" val="16"/>
</comp>
<comp lib="0" loc="(160,280)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="pointer not used"/>
</comp>
<comp lib="0" loc="(160,320)" name="Tunnel">
<a name="width" val="8"/>
<a name="label" val="point"/>
</comp>
<comp lib="4" loc="(410,220)" name="RAM">
<a name="addrWidth" val="16"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="1" loc="(520,730)" name="AND Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(160,370)" name="Tunnel">
<a name="width" val="32"/>
<a name="label" val="dat"/>
</comp>
<comp lib="0" loc="(260,130)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="8"/>
<a name="label" val="point"/>
</comp>
<comp lib="6" loc="(320,170)" name="Text">
<a name="text" val="Main RAM"/>
</comp>
<comp lib="4" loc="(300,460)" name="T Flip-Flop"/>
<comp lib="1" loc="(960,440)" name="NOT Gate"/>
<comp lib="4" loc="(530,650)" name="D Flip-Flop"/>
<comp lib="4" loc="(400,110)" name="RAM">
<a name="addrWidth" val="16"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(160,250)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="ponter addr"/>
</comp>
<comp lib="1" loc="(620,480)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="4" loc="(1020,390)" name="RAM">
<a name="dataWidth" val="16"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(490,650)" name="Clock"/>
<comp lib="2" loc="(740,370)" name="Multiplexer">
<a name="width" val="8"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="5" loc="(160,300)" name="Button">
<a name="label" val="store"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(160,450)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="label" val="data out"/>
</comp>
<comp lib="5" loc="(160,500)" name="Button">
<a name="label" val="change to/from pointer"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(160,370)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="data"/>
</comp>
<comp lib="0" loc="(160,320)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="Pointer"/>
</comp>
<comp lib="0" loc="(950,430)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(270,240)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="32"/>
<a name="label" val="dat"/>
</comp>
<comp lib="1" loc="(400,730)" name="OR Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="5" loc="(160,540)" name="LED">
<a name="facing" val="east"/>
<a name="color" val="#00ff00"/>
<a name="offcolor" val="#ff0000"/>
<a name="label" val="not at pointer"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="2" loc="(260,220)" name="Multiplexer">
<a name="width" val="16"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(710,380)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="8"/>
<a name="label" val="point"/>
</comp>
<comp lib="1" loc="(350,270)" name="NOT Gate"/>
<comp lib="0" loc="(160,210)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="addr"/>
</comp>
<comp lib="6" loc="(341,59)" name="Text">
<a name="text" val="Pointer RAM"/>
</comp>
<comp lib="0" loc="(820,390)" name="Tunnel">
<a name="facing" val="north"/>
<a name="width" val="8"/>
<a name="label" val="sel"/>
</comp>
</circuit>
</project>