cpu

changeset 0:9d48951b8110 tip

CPU project initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 03 Jan 2014 07:19:15 +0200
parents
children
files cpu.circ cpuops
diffstat 2 files changed, 1424 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/cpu.circ	Fri Jan 03 07:19:15 2014 +0200
     1.3 @@ -0,0 +1,1411 @@
     1.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     1.5 +<project source="2.7.1" version="1.0">
     1.6 +This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
     1.7 +<lib desc="#Wiring" name="0">
     1.8 +    <tool name="Splitter">
     1.9 +      <a name="facing" val="west"/>
    1.10 +      <a name="fanout" val="4"/>
    1.11 +      <a name="incoming" val="4"/>
    1.12 +    </tool>
    1.13 +    <tool name="Pin">
    1.14 +      <a name="width" val="4"/>
    1.15 +      <a name="label" val="Opcode"/>
    1.16 +    </tool>
    1.17 +    <tool name="Constant">
    1.18 +      <a name="value" val="0x0"/>
    1.19 +    </tool>
    1.20 +  </lib>
    1.21 +  <lib desc="#Gates" name="1">
    1.22 +    <tool name="OR Gate">
    1.23 +      <a name="inputs" val="8"/>
    1.24 +    </tool>
    1.25 +    <tool name="NOR Gate">
    1.26 +      <a name="inputs" val="8"/>
    1.27 +    </tool>
    1.28 +  </lib>
    1.29 +  <lib desc="#Plexers" name="2">
    1.30 +    <tool name="Multiplexer">
    1.31 +      <a name="select" val="4"/>
    1.32 +      <a name="width" val="8"/>
    1.33 +    </tool>
    1.34 +  </lib>
    1.35 +  <lib desc="#Arithmetic" name="3"/>
    1.36 +  <lib desc="#Memory" name="4">
    1.37 +    <tool name="ROM">
    1.38 +      <a name="contents">addr/data: 8 8
    1.39 +0
    1.40 +</a>
    1.41 +    </tool>
    1.42 +  </lib>
    1.43 +  <lib desc="#I/O" name="5"/>
    1.44 +  <lib desc="#Base" name="6">
    1.45 +    <tool name="Text Tool">
    1.46 +      <a name="text" val=""/>
    1.47 +      <a name="font" val="SansSerif plain 12"/>
    1.48 +      <a name="halign" val="center"/>
    1.49 +      <a name="valign" val="base"/>
    1.50 +    </tool>
    1.51 +  </lib>
    1.52 +  <main name="main"/>
    1.53 +  <options>
    1.54 +    <a name="gateUndefined" val="ignore"/>
    1.55 +    <a name="simlimit" val="1000"/>
    1.56 +    <a name="simrand" val="0"/>
    1.57 +  </options>
    1.58 +  <mappings>
    1.59 +    <tool lib="6" map="Button2" name="Menu Tool"/>
    1.60 +    <tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
    1.61 +    <tool lib="6" map="Button3" name="Menu Tool"/>
    1.62 +  </mappings>
    1.63 +  <toolbar>
    1.64 +    <tool lib="6" name="Poke Tool"/>
    1.65 +    <tool lib="6" name="Edit Tool"/>
    1.66 +    <tool lib="6" name="Text Tool">
    1.67 +      <a name="text" val=""/>
    1.68 +      <a name="font" val="SansSerif plain 12"/>
    1.69 +      <a name="halign" val="center"/>
    1.70 +      <a name="valign" val="base"/>
    1.71 +    </tool>
    1.72 +    <sep/>
    1.73 +    <tool lib="0" name="Pin">
    1.74 +      <a name="width" val="8"/>
    1.75 +      <a name="tristate" val="false"/>
    1.76 +    </tool>
    1.77 +    <tool lib="0" name="Pin">
    1.78 +      <a name="facing" val="west"/>
    1.79 +      <a name="output" val="true"/>
    1.80 +      <a name="width" val="8"/>
    1.81 +      <a name="labelloc" val="east"/>
    1.82 +    </tool>
    1.83 +    <tool lib="1" name="NOT Gate"/>
    1.84 +    <tool lib="1" name="AND Gate"/>
    1.85 +    <tool lib="1" name="OR Gate"/>
    1.86 +  </toolbar>
    1.87 +  <circuit name="main">
    1.88 +    <a name="circuit" val="main"/>
    1.89 +    <a name="clabel" val=""/>
    1.90 +    <a name="clabelup" val="east"/>
    1.91 +    <a name="clabelfont" val="SansSerif plain 12"/>
    1.92 +    <wire from="(170,240)" to="(310,240)"/>
    1.93 +    <wire from="(310,400)" to="(350,400)"/>
    1.94 +    <wire from="(700,460)" to="(710,460)"/>
    1.95 +    <wire from="(720,460)" to="(740,460)"/>
    1.96 +    <wire from="(720,260)" to="(720,340)"/>
    1.97 +    <wire from="(310,620)" to="(310,760)"/>
    1.98 +    <wire from="(700,440)" to="(730,440)"/>
    1.99 +    <wire from="(570,290)" to="(590,290)"/>
   1.100 +    <wire from="(570,630)" to="(570,680)"/>
   1.101 +    <wire from="(410,440)" to="(450,440)"/>
   1.102 +    <wire from="(710,460)" to="(710,470)"/>
   1.103 +    <wire from="(460,10)" to="(480,10)"/>
   1.104 +    <wire from="(630,260)" to="(720,260)"/>
   1.105 +    <wire from="(460,250)" to="(590,250)"/>
   1.106 +    <wire from="(360,280)" to="(360,290)"/>
   1.107 +    <wire from="(310,340)" to="(350,340)"/>
   1.108 +    <wire from="(400,200)" to="(580,200)"/>
   1.109 +    <wire from="(700,450)" to="(720,450)"/>
   1.110 +    <wire from="(570,520)" to="(590,520)"/>
   1.111 +    <wire from="(290,60)" to="(360,60)"/>
   1.112 +    <wire from="(720,140)" to="(740,140)"/>
   1.113 +    <wire from="(570,600)" to="(570,610)"/>
   1.114 +    <wire from="(710,470)" to="(740,470)"/>
   1.115 +    <wire from="(570,300)" to="(570,310)"/>
   1.116 +    <wire from="(790,490)" to="(790,530)"/>
   1.117 +    <wire from="(820,440)" to="(830,440)"/>
   1.118 +    <wire from="(700,430)" to="(740,430)"/>
   1.119 +    <wire from="(720,450)" to="(720,460)"/>
   1.120 +    <wire from="(400,720)" to="(480,720)"/>
   1.121 +    <wire from="(570,490)" to="(590,490)"/>
   1.122 +    <wire from="(140,190)" to="(170,190)"/>
   1.123 +    <wire from="(400,320)" to="(430,320)"/>
   1.124 +    <wire from="(320,360)" to="(320,420)"/>
   1.125 +    <wire from="(570,300)" to="(590,300)"/>
   1.126 +    <wire from="(570,480)" to="(570,490)"/>
   1.127 +    <wire from="(430,220)" to="(590,220)"/>
   1.128 +    <wire from="(570,540)" to="(570,550)"/>
   1.129 +    <wire from="(480,270)" to="(480,720)"/>
   1.130 +    <wire from="(570,580)" to="(590,580)"/>
   1.131 +    <wire from="(830,440)" to="(830,490)"/>
   1.132 +    <wire from="(310,460)" to="(310,620)"/>
   1.133 +    <wire from="(440,230)" to="(590,230)"/>
   1.134 +    <wire from="(320,420)" to="(320,500)"/>
   1.135 +    <wire from="(480,270)" to="(580,270)"/>
   1.136 +    <wire from="(320,420)" to="(350,420)"/>
   1.137 +    <wire from="(570,290)" to="(570,300)"/>
   1.138 +    <wire from="(320,570)" to="(320,710)"/>
   1.139 +    <wire from="(610,340)" to="(610,380)"/>
   1.140 +    <wire from="(310,240)" to="(330,240)"/>
   1.141 +    <wire from="(580,280)" to="(590,280)"/>
   1.142 +    <wire from="(570,310)" to="(590,310)"/>
   1.143 +    <wire from="(170,190)" to="(170,240)"/>
   1.144 +    <wire from="(610,380)" to="(650,380)"/>
   1.145 +    <wire from="(320,570)" to="(330,570)"/>
   1.146 +    <wire from="(730,450)" to="(740,450)"/>
   1.147 +    <wire from="(470,260)" to="(590,260)"/>
   1.148 +    <wire from="(320,300)" to="(350,300)"/>
   1.149 +    <wire from="(290,660)" to="(350,660)"/>
   1.150 +    <wire from="(570,320)" to="(570,370)"/>
   1.151 +    <wire from="(310,620)" to="(330,620)"/>
   1.152 +    <wire from="(320,360)" to="(350,360)"/>
   1.153 +    <wire from="(570,590)" to="(570,600)"/>
   1.154 +    <wire from="(320,100)" to="(320,160)"/>
   1.155 +    <wire from="(320,160)" to="(330,160)"/>
   1.156 +    <wire from="(570,530)" to="(590,530)"/>
   1.157 +    <wire from="(580,510)" to="(590,510)"/>
   1.158 +    <wire from="(570,530)" to="(570,540)"/>
   1.159 +    <wire from="(570,590)" to="(590,590)"/>
   1.160 +    <wire from="(700,470)" to="(700,480)"/>
   1.161 +    <wire from="(140,160)" to="(320,160)"/>
   1.162 +    <wire from="(580,270)" to="(590,270)"/>
   1.163 +    <wire from="(790,530)" to="(800,530)"/>
   1.164 +    <wire from="(570,610)" to="(570,620)"/>
   1.165 +    <wire from="(650,50)" to="(650,380)"/>
   1.166 +    <wire from="(650,380)" to="(650,660)"/>
   1.167 +    <wire from="(310,240)" to="(310,340)"/>
   1.168 +    <wire from="(460,250)" to="(460,500)"/>
   1.169 +    <wire from="(570,580)" to="(570,590)"/>
   1.170 +    <wire from="(580,270)" to="(580,280)"/>
   1.171 +    <wire from="(570,540)" to="(590,540)"/>
   1.172 +    <wire from="(790,490)" to="(830,490)"/>
   1.173 +    <wire from="(570,320)" to="(590,320)"/>
   1.174 +    <wire from="(320,500)" to="(360,500)"/>
   1.175 +    <wire from="(570,100)" to="(570,180)"/>
   1.176 +    <wire from="(570,520)" to="(570,530)"/>
   1.177 +    <wire from="(700,400)" to="(740,400)"/>
   1.178 +    <wire from="(570,600)" to="(590,600)"/>
   1.179 +    <wire from="(430,220)" to="(430,320)"/>
   1.180 +    <wire from="(700,410)" to="(740,410)"/>
   1.181 +    <wire from="(570,630)" to="(590,630)"/>
   1.182 +    <wire from="(570,190)" to="(570,290)"/>
   1.183 +    <wire from="(570,570)" to="(590,570)"/>
   1.184 +    <wire from="(580,210)" to="(590,210)"/>
   1.185 +    <wire from="(400,380)" to="(440,380)"/>
   1.186 +    <wire from="(550,500)" to="(580,500)"/>
   1.187 +    <wire from="(570,550)" to="(570,560)"/>
   1.188 +    <wire from="(610,660)" to="(650,660)"/>
   1.189 +    <wire from="(680,340)" to="(720,340)"/>
   1.190 +    <wire from="(360,290)" to="(550,290)"/>
   1.191 +    <wire from="(360,60)" to="(460,60)"/>
   1.192 +    <wire from="(550,290)" to="(550,500)"/>
   1.193 +    <wire from="(570,190)" to="(590,190)"/>
   1.194 +    <wire from="(630,560)" to="(800,560)"/>
   1.195 +    <wire from="(320,100)" to="(570,100)"/>
   1.196 +    <wire from="(310,340)" to="(310,400)"/>
   1.197 +    <wire from="(360,60)" to="(360,110)"/>
   1.198 +    <wire from="(700,420)" to="(740,420)"/>
   1.199 +    <wire from="(570,620)" to="(590,620)"/>
   1.200 +    <wire from="(570,610)" to="(590,610)"/>
   1.201 +    <wire from="(580,200)" to="(580,210)"/>
   1.202 +    <wire from="(570,490)" to="(570,520)"/>
   1.203 +    <wire from="(570,180)" to="(590,180)"/>
   1.204 +    <wire from="(480,10)" to="(480,50)"/>
   1.205 +    <wire from="(310,400)" to="(310,460)"/>
   1.206 +    <wire from="(450,240)" to="(590,240)"/>
   1.207 +    <wire from="(400,580)" to="(470,580)"/>
   1.208 +    <wire from="(720,140)" to="(720,260)"/>
   1.209 +    <wire from="(730,440)" to="(730,450)"/>
   1.210 +    <wire from="(580,500)" to="(590,500)"/>
   1.211 +    <wire from="(320,500)" to="(320,570)"/>
   1.212 +    <wire from="(440,230)" to="(440,380)"/>
   1.213 +    <wire from="(450,240)" to="(450,440)"/>
   1.214 +    <wire from="(320,160)" to="(320,300)"/>
   1.215 +    <wire from="(320,300)" to="(320,360)"/>
   1.216 +    <wire from="(290,60)" to="(290,660)"/>
   1.217 +    <wire from="(700,480)" to="(740,480)"/>
   1.218 +    <wire from="(570,550)" to="(590,550)"/>
   1.219 +    <wire from="(320,710)" to="(330,710)"/>
   1.220 +    <wire from="(570,570)" to="(570,580)"/>
   1.221 +    <wire from="(390,500)" to="(460,500)"/>
   1.222 +    <wire from="(570,480)" to="(590,480)"/>
   1.223 +    <wire from="(580,200)" to="(590,200)"/>
   1.224 +    <wire from="(570,560)" to="(590,560)"/>
   1.225 +    <wire from="(570,560)" to="(570,570)"/>
   1.226 +    <wire from="(610,640)" to="(610,660)"/>
   1.227 +    <wire from="(480,50)" to="(650,50)"/>
   1.228 +    <wire from="(310,460)" to="(350,460)"/>
   1.229 +    <wire from="(570,620)" to="(570,630)"/>
   1.230 +    <wire from="(310,760)" to="(330,760)"/>
   1.231 +    <wire from="(570,310)" to="(570,320)"/>
   1.232 +    <wire from="(470,260)" to="(470,580)"/>
   1.233 +    <wire from="(680,340)" to="(680,440)"/>
   1.234 +    <wire from="(580,500)" to="(580,510)"/>
   1.235 +    <comp loc="(380,160)" name="8bit add/sub"/>
   1.236 +    <comp lib="6" loc="(407,129)" name="Text">
   1.237 +      <a name="text" val="add/sub"/>
   1.238 +    </comp>
   1.239 +    <comp lib="1" loc="(390,500)" name="NOT Gate">
   1.240 +      <a name="width" val="8"/>
   1.241 +    </comp>
   1.242 +    <comp lib="0" loc="(800,530)" name="Pin">
   1.243 +      <a name="facing" val="west"/>
   1.244 +      <a name="output" val="true"/>
   1.245 +      <a name="label" val="zero flag"/>
   1.246 +      <a name="labelloc" val="east"/>
   1.247 +    </comp>
   1.248 +    <comp lib="0" loc="(140,160)" name="Pin">
   1.249 +      <a name="width" val="8"/>
   1.250 +      <a name="tristate" val="false"/>
   1.251 +      <a name="label" val="InA"/>
   1.252 +    </comp>
   1.253 +    <comp lib="0" loc="(800,560)" name="Pin">
   1.254 +      <a name="facing" val="west"/>
   1.255 +      <a name="output" val="true"/>
   1.256 +      <a name="label" val="overflow bit"/>
   1.257 +      <a name="labelloc" val="east"/>
   1.258 +    </comp>
   1.259 +    <comp lib="6" loc="(419,671)" name="Text">
   1.260 +      <a name="text" val="right shifter"/>
   1.261 +    </comp>
   1.262 +    <comp lib="0" loc="(330,240)" name="Splitter">
   1.263 +      <a name="fanout" val="8"/>
   1.264 +      <a name="incoming" val="8"/>
   1.265 +      <a name="appear" val="legacy"/>
   1.266 +    </comp>
   1.267 +    <comp lib="0" loc="(140,190)" name="Pin">
   1.268 +      <a name="width" val="8"/>
   1.269 +      <a name="tristate" val="false"/>
   1.270 +      <a name="label" val="InB"/>
   1.271 +    </comp>
   1.272 +    <comp lib="2" loc="(630,560)" name="Multiplexer">
   1.273 +      <a name="select" val="4"/>
   1.274 +      <a name="enable" val="false"/>
   1.275 +    </comp>
   1.276 +    <comp lib="0" loc="(400,720)" name="Splitter">
   1.277 +      <a name="facing" val="west"/>
   1.278 +      <a name="fanout" val="8"/>
   1.279 +      <a name="incoming" val="8"/>
   1.280 +      <a name="appear" val="legacy"/>
   1.281 +    </comp>
   1.282 +    <comp lib="0" loc="(330,760)" name="Splitter">
   1.283 +      <a name="fanout" val="3"/>
   1.284 +      <a name="incoming" val="8"/>
   1.285 +      <a name="appear" val="legacy"/>
   1.286 +      <a name="bit3" val="none"/>
   1.287 +      <a name="bit4" val="none"/>
   1.288 +      <a name="bit5" val="none"/>
   1.289 +      <a name="bit6" val="none"/>
   1.290 +      <a name="bit7" val="none"/>
   1.291 +    </comp>
   1.292 +    <comp lib="6" loc="(413,531)" name="Text">
   1.293 +      <a name="text" val="left shifter"/>
   1.294 +    </comp>
   1.295 +    <comp lib="1" loc="(400,320)" name="AND Gate">
   1.296 +      <a name="width" val="8"/>
   1.297 +      <a name="inputs" val="2"/>
   1.298 +    </comp>
   1.299 +    <comp lib="0" loc="(570,370)" name="Constant">
   1.300 +      <a name="facing" val="west"/>
   1.301 +      <a name="width" val="8"/>
   1.302 +      <a name="value" val="0x0"/>
   1.303 +    </comp>
   1.304 +    <comp lib="0" loc="(480,50)" name="Splitter">
   1.305 +      <a name="facing" val="west"/>
   1.306 +      <a name="fanout" val="4"/>
   1.307 +      <a name="incoming" val="4"/>
   1.308 +    </comp>
   1.309 +    <comp lib="0" loc="(400,200)" name="Splitter">
   1.310 +      <a name="facing" val="west"/>
   1.311 +      <a name="fanout" val="8"/>
   1.312 +      <a name="incoming" val="8"/>
   1.313 +      <a name="appear" val="legacy"/>
   1.314 +    </comp>
   1.315 +    <comp lib="0" loc="(330,570)" name="Splitter">
   1.316 +      <a name="fanout" val="8"/>
   1.317 +      <a name="incoming" val="8"/>
   1.318 +      <a name="appear" val="legacy"/>
   1.319 +    </comp>
   1.320 +    <comp loc="(380,680)" name="8bit right shifter"/>
   1.321 +    <comp lib="0" loc="(680,440)" name="Splitter">
   1.322 +      <a name="fanout" val="8"/>
   1.323 +      <a name="incoming" val="8"/>
   1.324 +      <a name="appear" val="legacy"/>
   1.325 +    </comp>
   1.326 +    <comp lib="0" loc="(330,160)" name="Splitter">
   1.327 +      <a name="fanout" val="8"/>
   1.328 +      <a name="incoming" val="8"/>
   1.329 +      <a name="appear" val="legacy"/>
   1.330 +    </comp>
   1.331 +    <comp lib="0" loc="(570,680)" name="Constant">
   1.332 +      <a name="facing" val="west"/>
   1.333 +      <a name="value" val="0x0"/>
   1.334 +    </comp>
   1.335 +    <comp lib="0" loc="(460,10)" name="Pin">
   1.336 +      <a name="width" val="4"/>
   1.337 +      <a name="tristate" val="false"/>
   1.338 +      <a name="label" val="Opcode"/>
   1.339 +    </comp>
   1.340 +    <comp lib="0" loc="(330,710)" name="Splitter">
   1.341 +      <a name="fanout" val="8"/>
   1.342 +      <a name="incoming" val="8"/>
   1.343 +      <a name="appear" val="legacy"/>
   1.344 +    </comp>
   1.345 +    <comp lib="0" loc="(330,620)" name="Splitter">
   1.346 +      <a name="fanout" val="3"/>
   1.347 +      <a name="incoming" val="8"/>
   1.348 +      <a name="appear" val="legacy"/>
   1.349 +      <a name="bit3" val="none"/>
   1.350 +      <a name="bit4" val="none"/>
   1.351 +      <a name="bit5" val="none"/>
   1.352 +      <a name="bit6" val="none"/>
   1.353 +      <a name="bit7" val="none"/>
   1.354 +    </comp>
   1.355 +    <comp loc="(380,540)" name="8bit left shifter"/>
   1.356 +    <comp lib="0" loc="(400,580)" name="Splitter">
   1.357 +      <a name="facing" val="west"/>
   1.358 +      <a name="fanout" val="8"/>
   1.359 +      <a name="incoming" val="8"/>
   1.360 +      <a name="appear" val="legacy"/>
   1.361 +    </comp>
   1.362 +    <comp lib="1" loc="(820,440)" name="NOR Gate">
   1.363 +      <a name="size" val="70"/>
   1.364 +      <a name="inputs" val="8"/>
   1.365 +    </comp>
   1.366 +    <comp lib="0" loc="(740,140)" name="Pin">
   1.367 +      <a name="facing" val="west"/>
   1.368 +      <a name="output" val="true"/>
   1.369 +      <a name="width" val="8"/>
   1.370 +      <a name="label" val="Out"/>
   1.371 +      <a name="labelloc" val="east"/>
   1.372 +    </comp>
   1.373 +    <comp lib="0" loc="(350,520)" name="Constant">
   1.374 +      <a name="value" val="0x0"/>
   1.375 +    </comp>
   1.376 +    <comp lib="1" loc="(400,380)" name="OR Gate">
   1.377 +      <a name="width" val="8"/>
   1.378 +      <a name="inputs" val="2"/>
   1.379 +    </comp>
   1.380 +    <comp lib="1" loc="(410,440)" name="XOR Gate">
   1.381 +      <a name="width" val="8"/>
   1.382 +      <a name="inputs" val="2"/>
   1.383 +    </comp>
   1.384 +    <comp lib="2" loc="(630,260)" name="Multiplexer">
   1.385 +      <a name="select" val="4"/>
   1.386 +      <a name="width" val="8"/>
   1.387 +      <a name="enable" val="false"/>
   1.388 +    </comp>
   1.389 +  </circuit>
   1.390 +  <circuit name="1bit adder">
   1.391 +    <a name="circuit" val="1bit adder"/>
   1.392 +    <a name="clabel" val=""/>
   1.393 +    <a name="clabelup" val="east"/>
   1.394 +    <a name="clabelfont" val="SansSerif plain 12"/>
   1.395 +    <wire from="(370,250)" to="(410,250)"/>
   1.396 +    <wire from="(250,180)" to="(250,200)"/>
   1.397 +    <wire from="(330,220)" to="(340,220)"/>
   1.398 +    <wire from="(440,220)" to="(500,220)"/>
   1.399 +    <wire from="(210,160)" to="(250,160)"/>
   1.400 +    <wire from="(310,150)" to="(350,150)"/>
   1.401 +    <wire from="(210,260)" to="(340,260)"/>
   1.402 +    <wire from="(390,160)" to="(500,160)"/>
   1.403 +    <wire from="(100,160)" to="(210,160)"/>
   1.404 +    <wire from="(330,170)" to="(330,220)"/>
   1.405 +    <wire from="(410,230)" to="(410,250)"/>
   1.406 +    <wire from="(230,240)" to="(340,240)"/>
   1.407 +    <wire from="(310,200)" to="(340,200)"/>
   1.408 +    <wire from="(310,150)" to="(310,200)"/>
   1.409 +    <wire from="(230,200)" to="(250,200)"/>
   1.410 +    <wire from="(330,170)" to="(350,170)"/>
   1.411 +    <wire from="(210,160)" to="(210,260)"/>
   1.412 +    <wire from="(310,60)" to="(310,150)"/>
   1.413 +    <wire from="(370,210)" to="(410,210)"/>
   1.414 +    <wire from="(230,200)" to="(230,240)"/>
   1.415 +    <wire from="(290,170)" to="(330,170)"/>
   1.416 +    <wire from="(100,200)" to="(230,200)"/>
   1.417 +    <comp lib="1" loc="(440,220)" name="OR Gate">
   1.418 +      <a name="size" val="30"/>
   1.419 +      <a name="inputs" val="2"/>
   1.420 +    </comp>
   1.421 +    <comp lib="0" loc="(500,160)" name="Pin">
   1.422 +      <a name="facing" val="west"/>
   1.423 +      <a name="output" val="true"/>
   1.424 +      <a name="label" val="S"/>
   1.425 +      <a name="labelloc" val="east"/>
   1.426 +    </comp>
   1.427 +    <comp lib="1" loc="(290,170)" name="XOR Gate">
   1.428 +      <a name="size" val="30"/>
   1.429 +      <a name="inputs" val="2"/>
   1.430 +    </comp>
   1.431 +    <comp lib="1" loc="(390,160)" name="XOR Gate">
   1.432 +      <a name="size" val="30"/>
   1.433 +      <a name="inputs" val="2"/>
   1.434 +    </comp>
   1.435 +    <comp lib="0" loc="(100,160)" name="Pin">
   1.436 +      <a name="tristate" val="false"/>
   1.437 +      <a name="label" val="A"/>
   1.438 +    </comp>
   1.439 +    <comp lib="1" loc="(370,250)" name="AND Gate">
   1.440 +      <a name="size" val="30"/>
   1.441 +      <a name="inputs" val="2"/>
   1.442 +    </comp>
   1.443 +    <comp lib="0" loc="(310,60)" name="Pin">
   1.444 +      <a name="facing" val="south"/>
   1.445 +      <a name="tristate" val="false"/>
   1.446 +      <a name="label" val="Cin"/>
   1.447 +    </comp>
   1.448 +    <comp lib="1" loc="(370,210)" name="AND Gate">
   1.449 +      <a name="size" val="30"/>
   1.450 +      <a name="inputs" val="2"/>
   1.451 +    </comp>
   1.452 +    <comp lib="0" loc="(500,220)" name="Pin">
   1.453 +      <a name="facing" val="west"/>
   1.454 +      <a name="output" val="true"/>
   1.455 +      <a name="label" val="Cout"/>
   1.456 +      <a name="labelloc" val="east"/>
   1.457 +    </comp>
   1.458 +    <comp lib="0" loc="(100,200)" name="Pin">
   1.459 +      <a name="tristate" val="false"/>
   1.460 +      <a name="label" val="B"/>
   1.461 +    </comp>
   1.462 +  </circuit>
   1.463 +  <circuit name="8bit add/sub">
   1.464 +    <a name="circuit" val="8bit add/sub"/>
   1.465 +    <a name="clabel" val=""/>
   1.466 +    <a name="clabelup" val="east"/>
   1.467 +    <a name="clabelfont" val="SansSerif plain 12"/>
   1.468 +    <wire from="(100,380)" to="(300,380)"/>
   1.469 +    <wire from="(210,440)" to="(240,440)"/>
   1.470 +    <wire from="(320,270)" to="(350,270)"/>
   1.471 +    <wire from="(340,290)" to="(470,290)"/>
   1.472 +    <wire from="(350,150)" to="(350,170)"/>
   1.473 +    <wire from="(320,420)" to="(320,430)"/>
   1.474 +    <wire from="(320,170)" to="(320,180)"/>
   1.475 +    <wire from="(90,230)" to="(90,430)"/>
   1.476 +    <wire from="(160,160)" to="(240,160)"/>
   1.477 +    <wire from="(200,360)" to="(240,360)"/>
   1.478 +    <wire from="(210,190)" to="(240,190)"/>
   1.479 +    <wire from="(120,170)" to="(120,280)"/>
   1.480 +    <wire from="(300,180)" to="(300,190)"/>
   1.481 +    <wire from="(300,290)" to="(310,290)"/>
   1.482 +    <wire from="(90,430)" to="(300,430)"/>
   1.483 +    <wire from="(210,20)" to="(210,30)"/>
   1.484 +    <wire from="(320,220)" to="(320,230)"/>
   1.485 +    <wire from="(500,230)" to="(550,230)"/>
   1.486 +    <wire from="(300,130)" to="(300,140)"/>
   1.487 +    <wire from="(350,400)" to="(350,420)"/>
   1.488 +    <wire from="(210,90)" to="(240,90)"/>
   1.489 +    <wire from="(70,190)" to="(110,190)"/>
   1.490 +    <wire from="(110,130)" to="(300,130)"/>
   1.491 +    <wire from="(280,100)" to="(310,100)"/>
   1.492 +    <wire from="(180,260)" to="(180,520)"/>
   1.493 +    <wire from="(280,400)" to="(310,400)"/>
   1.494 +    <wire from="(300,240)" to="(310,240)"/>
   1.495 +    <wire from="(340,100)" to="(350,100)"/>
   1.496 +    <wire from="(350,350)" to="(350,370)"/>
   1.497 +    <wire from="(460,150)" to="(550,150)"/>
   1.498 +    <wire from="(320,370)" to="(350,370)"/>
   1.499 +    <wire from="(340,300)" to="(350,300)"/>
   1.500 +    <wire from="(110,190)" to="(110,330)"/>
   1.501 +    <wire from="(210,240)" to="(240,240)"/>
   1.502 +    <wire from="(280,350)" to="(310,350)"/>
   1.503 +    <wire from="(300,230)" to="(300,240)"/>
   1.504 +    <wire from="(70,130)" to="(100,130)"/>
   1.505 +    <wire from="(320,170)" to="(350,170)"/>
   1.506 +    <wire from="(300,280)" to="(300,290)"/>
   1.507 +    <wire from="(340,90)" to="(550,90)"/>
   1.508 +    <wire from="(300,190)" to="(310,190)"/>
   1.509 +    <wire from="(230,460)" to="(230,600)"/>
   1.510 +    <wire from="(130,150)" to="(130,230)"/>
   1.511 +    <wire from="(400,450)" to="(400,590)"/>
   1.512 +    <wire from="(300,440)" to="(310,440)"/>
   1.513 +    <wire from="(140,180)" to="(300,180)"/>
   1.514 +    <wire from="(320,420)" to="(350,420)"/>
   1.515 +    <wire from="(210,190)" to="(210,240)"/>
   1.516 +    <wire from="(480,190)" to="(480,340)"/>
   1.517 +    <wire from="(320,320)" to="(320,330)"/>
   1.518 +    <wire from="(70,170)" to="(120,170)"/>
   1.519 +    <wire from="(120,280)" to="(300,280)"/>
   1.520 +    <wire from="(340,200)" to="(350,200)"/>
   1.521 +    <wire from="(210,290)" to="(240,290)"/>
   1.522 +    <wire from="(460,150)" to="(460,240)"/>
   1.523 +    <wire from="(340,340)" to="(480,340)"/>
   1.524 +    <wire from="(140,140)" to="(140,180)"/>
   1.525 +    <wire from="(450,130)" to="(550,130)"/>
   1.526 +    <wire from="(170,210)" to="(240,210)"/>
   1.527 +    <wire from="(100,140)" to="(140,140)"/>
   1.528 +    <wire from="(70,560)" to="(200,560)"/>
   1.529 +    <wire from="(340,390)" to="(490,390)"/>
   1.530 +    <wire from="(210,30)" to="(320,30)"/>
   1.531 +    <wire from="(340,250)" to="(350,250)"/>
   1.532 +    <wire from="(210,340)" to="(210,390)"/>
   1.533 +    <wire from="(300,340)" to="(310,340)"/>
   1.534 +    <wire from="(320,370)" to="(320,380)"/>
   1.535 +    <wire from="(350,300)" to="(350,320)"/>
   1.536 +    <wire from="(160,160)" to="(160,480)"/>
   1.537 +    <wire from="(110,80)" to="(110,90)"/>
   1.538 +    <wire from="(110,80)" to="(300,80)"/>
   1.539 +    <wire from="(210,140)" to="(240,140)"/>
   1.540 +    <wire from="(70,90)" to="(110,90)"/>
   1.541 +    <wire from="(210,290)" to="(210,340)"/>
   1.542 +    <wire from="(300,390)" to="(310,390)"/>
   1.543 +    <wire from="(300,430)" to="(300,440)"/>
   1.544 +    <wire from="(70,540)" to="(190,540)"/>
   1.545 +    <wire from="(70,150)" to="(130,150)"/>
   1.546 +    <wire from="(300,380)" to="(300,390)"/>
   1.547 +    <wire from="(300,140)" to="(310,140)"/>
   1.548 +    <wire from="(340,440)" to="(500,440)"/>
   1.549 +    <wire from="(150,110)" to="(150,460)"/>
   1.550 +    <wire from="(70,110)" to="(110,110)"/>
   1.551 +    <wire from="(450,130)" to="(450,190)"/>
   1.552 +    <wire from="(320,120)" to="(350,120)"/>
   1.553 +    <wire from="(350,200)" to="(350,220)"/>
   1.554 +    <wire from="(490,210)" to="(490,390)"/>
   1.555 +    <wire from="(220,410)" to="(240,410)"/>
   1.556 +    <wire from="(150,110)" to="(240,110)"/>
   1.557 +    <wire from="(190,310)" to="(190,540)"/>
   1.558 +    <wire from="(340,350)" to="(350,350)"/>
   1.559 +    <wire from="(300,80)" to="(300,90)"/>
   1.560 +    <wire from="(100,210)" to="(100,380)"/>
   1.561 +    <wire from="(350,250)" to="(350,270)"/>
   1.562 +    <wire from="(70,580)" to="(220,580)"/>
   1.563 +    <wire from="(440,110)" to="(550,110)"/>
   1.564 +    <wire from="(440,110)" to="(440,140)"/>
   1.565 +    <wire from="(320,30)" to="(320,80)"/>
   1.566 +    <wire from="(280,150)" to="(310,150)"/>
   1.567 +    <wire from="(170,210)" to="(170,500)"/>
   1.568 +    <wire from="(70,600)" to="(230,600)"/>
   1.569 +    <wire from="(350,100)" to="(350,120)"/>
   1.570 +    <wire from="(70,210)" to="(100,210)"/>
   1.571 +    <wire from="(180,260)" to="(240,260)"/>
   1.572 +    <wire from="(500,230)" to="(500,440)"/>
   1.573 +    <wire from="(480,190)" to="(550,190)"/>
   1.574 +    <wire from="(340,150)" to="(350,150)"/>
   1.575 +    <wire from="(70,230)" to="(90,230)"/>
   1.576 +    <wire from="(470,170)" to="(470,290)"/>
   1.577 +    <wire from="(220,410)" to="(220,580)"/>
   1.578 +    <wire from="(100,130)" to="(100,140)"/>
   1.579 +    <wire from="(280,200)" to="(310,200)"/>
   1.580 +    <wire from="(320,320)" to="(350,320)"/>
   1.581 +    <wire from="(210,140)" to="(210,190)"/>
   1.582 +    <wire from="(340,450)" to="(400,450)"/>
   1.583 +    <wire from="(280,300)" to="(310,300)"/>
   1.584 +    <wire from="(210,390)" to="(210,440)"/>
   1.585 +    <wire from="(340,240)" to="(460,240)"/>
   1.586 +    <wire from="(340,400)" to="(350,400)"/>
   1.587 +    <wire from="(210,340)" to="(240,340)"/>
   1.588 +    <wire from="(200,360)" to="(200,560)"/>
   1.589 +    <wire from="(280,450)" to="(310,450)"/>
   1.590 +    <wire from="(300,330)" to="(300,340)"/>
   1.591 +    <wire from="(110,330)" to="(300,330)"/>
   1.592 +    <wire from="(280,250)" to="(310,250)"/>
   1.593 +    <wire from="(210,90)" to="(210,140)"/>
   1.594 +    <wire from="(70,520)" to="(180,520)"/>
   1.595 +    <wire from="(70,500)" to="(170,500)"/>
   1.596 +    <wire from="(490,210)" to="(550,210)"/>
   1.597 +    <wire from="(70,460)" to="(150,460)"/>
   1.598 +    <wire from="(210,240)" to="(210,290)"/>
   1.599 +    <wire from="(320,270)" to="(320,280)"/>
   1.600 +    <wire from="(210,390)" to="(240,390)"/>
   1.601 +    <wire from="(210,30)" to="(210,90)"/>
   1.602 +    <wire from="(320,220)" to="(350,220)"/>
   1.603 +    <wire from="(130,230)" to="(300,230)"/>
   1.604 +    <wire from="(190,310)" to="(240,310)"/>
   1.605 +    <wire from="(300,90)" to="(310,90)"/>
   1.606 +    <wire from="(340,140)" to="(440,140)"/>
   1.607 +    <wire from="(230,460)" to="(240,460)"/>
   1.608 +    <wire from="(70,480)" to="(160,480)"/>
   1.609 +    <wire from="(320,120)" to="(320,130)"/>
   1.610 +    <wire from="(110,110)" to="(110,130)"/>
   1.611 +    <wire from="(470,170)" to="(550,170)"/>
   1.612 +    <wire from="(340,190)" to="(450,190)"/>
   1.613 +    <comp lib="0" loc="(70,460)" name="Pin">
   1.614 +      <a name="tristate" val="false"/>
   1.615 +    </comp>
   1.616 +    <comp lib="0" loc="(70,130)" name="Pin">
   1.617 +      <a name="tristate" val="false"/>
   1.618 +    </comp>
   1.619 +    <comp lib="0" loc="(70,540)" name="Pin">
   1.620 +      <a name="tristate" val="false"/>
   1.621 +    </comp>
   1.622 +    <comp lib="1" loc="(280,400)" name="XOR Gate">
   1.623 +      <a name="size" val="30"/>
   1.624 +      <a name="inputs" val="2"/>
   1.625 +    </comp>
   1.626 +    <comp lib="0" loc="(70,170)" name="Pin">
   1.627 +      <a name="tristate" val="false"/>
   1.628 +    </comp>
   1.629 +    <comp loc="(340,90)" name="1bit adder"/>
   1.630 +    <comp loc="(340,290)" name="1bit adder"/>
   1.631 +    <comp loc="(340,140)" name="1bit adder"/>
   1.632 +    <comp lib="0" loc="(70,560)" name="Pin">
   1.633 +      <a name="tristate" val="false"/>
   1.634 +    </comp>
   1.635 +    <comp lib="0" loc="(550,130)" name="Pin">
   1.636 +      <a name="facing" val="west"/>
   1.637 +      <a name="output" val="true"/>
   1.638 +      <a name="labelloc" val="east"/>
   1.639 +    </comp>
   1.640 +    <comp lib="1" loc="(280,450)" name="XOR Gate">
   1.641 +      <a name="size" val="30"/>
   1.642 +      <a name="inputs" val="2"/>
   1.643 +    </comp>
   1.644 +    <comp lib="0" loc="(70,210)" name="Pin">
   1.645 +      <a name="tristate" val="false"/>
   1.646 +    </comp>
   1.647 +    <comp loc="(340,240)" name="1bit adder"/>
   1.648 +    <comp lib="1" loc="(280,150)" name="XOR Gate">
   1.649 +      <a name="size" val="30"/>
   1.650 +      <a name="inputs" val="2"/>
   1.651 +    </comp>
   1.652 +    <comp lib="0" loc="(210,20)" name="Pin">
   1.653 +      <a name="facing" val="south"/>
   1.654 +      <a name="tristate" val="false"/>
   1.655 +    </comp>
   1.656 +    <comp lib="0" loc="(70,230)" name="Pin">
   1.657 +      <a name="tristate" val="false"/>
   1.658 +    </comp>
   1.659 +    <comp lib="1" loc="(280,200)" name="XOR Gate">
   1.660 +      <a name="size" val="30"/>
   1.661 +      <a name="inputs" val="2"/>
   1.662 +    </comp>
   1.663 +    <comp lib="0" loc="(550,170)" name="Pin">
   1.664 +      <a name="facing" val="west"/>
   1.665 +      <a name="output" val="true"/>
   1.666 +      <a name="labelloc" val="east"/>
   1.667 +    </comp>
   1.668 +    <comp lib="0" loc="(70,90)" name="Pin">
   1.669 +      <a name="tristate" val="false"/>
   1.670 +    </comp>
   1.671 +    <comp lib="0" loc="(70,500)" name="Pin">
   1.672 +      <a name="tristate" val="false"/>
   1.673 +    </comp>
   1.674 +    <comp loc="(340,340)" name="1bit adder"/>
   1.675 +    <comp loc="(340,190)" name="1bit adder"/>
   1.676 +    <comp lib="0" loc="(550,210)" name="Pin">
   1.677 +      <a name="facing" val="west"/>
   1.678 +      <a name="output" val="true"/>
   1.679 +      <a name="labelloc" val="east"/>
   1.680 +    </comp>
   1.681 +    <comp loc="(340,390)" name="1bit adder"/>
   1.682 +    <comp lib="0" loc="(550,230)" name="Pin">
   1.683 +      <a name="facing" val="west"/>
   1.684 +      <a name="output" val="true"/>
   1.685 +      <a name="labelloc" val="east"/>
   1.686 +    </comp>
   1.687 +    <comp lib="0" loc="(550,110)" name="Pin">
   1.688 +      <a name="facing" val="west"/>
   1.689 +      <a name="output" val="true"/>
   1.690 +      <a name="labelloc" val="east"/>
   1.691 +    </comp>
   1.692 +    <comp lib="0" loc="(550,190)" name="Pin">
   1.693 +      <a name="facing" val="west"/>
   1.694 +      <a name="output" val="true"/>
   1.695 +      <a name="labelloc" val="east"/>
   1.696 +    </comp>
   1.697 +    <comp lib="0" loc="(70,110)" name="Pin">
   1.698 +      <a name="tristate" val="false"/>
   1.699 +    </comp>
   1.700 +    <comp lib="0" loc="(70,190)" name="Pin">
   1.701 +      <a name="tristate" val="false"/>
   1.702 +    </comp>
   1.703 +    <comp lib="0" loc="(70,150)" name="Pin">
   1.704 +      <a name="tristate" val="false"/>
   1.705 +    </comp>
   1.706 +    <comp lib="0" loc="(70,580)" name="Pin">
   1.707 +      <a name="tristate" val="false"/>
   1.708 +    </comp>
   1.709 +    <comp lib="0" loc="(550,90)" name="Pin">
   1.710 +      <a name="facing" val="west"/>
   1.711 +      <a name="output" val="true"/>
   1.712 +      <a name="labelloc" val="east"/>
   1.713 +    </comp>
   1.714 +    <comp lib="0" loc="(400,590)" name="Pin">
   1.715 +      <a name="facing" val="north"/>
   1.716 +      <a name="output" val="true"/>
   1.717 +      <a name="labelloc" val="east"/>
   1.718 +    </comp>
   1.719 +    <comp lib="0" loc="(550,150)" name="Pin">
   1.720 +      <a name="facing" val="west"/>
   1.721 +      <a name="output" val="true"/>
   1.722 +      <a name="labelloc" val="east"/>
   1.723 +    </comp>
   1.724 +    <comp lib="0" loc="(70,520)" name="Pin">
   1.725 +      <a name="tristate" val="false"/>
   1.726 +    </comp>
   1.727 +    <comp lib="1" loc="(280,350)" name="XOR Gate">
   1.728 +      <a name="size" val="30"/>
   1.729 +      <a name="inputs" val="2"/>
   1.730 +    </comp>
   1.731 +    <comp lib="1" loc="(280,250)" name="XOR Gate">
   1.732 +      <a name="size" val="30"/>
   1.733 +      <a name="inputs" val="2"/>
   1.734 +    </comp>
   1.735 +    <comp loc="(340,440)" name="1bit adder"/>
   1.736 +    <comp lib="0" loc="(70,480)" name="Pin">
   1.737 +      <a name="tristate" val="false"/>
   1.738 +    </comp>
   1.739 +    <comp lib="1" loc="(280,100)" name="XOR Gate">
   1.740 +      <a name="size" val="30"/>
   1.741 +      <a name="inputs" val="2"/>
   1.742 +    </comp>
   1.743 +    <comp lib="0" loc="(70,600)" name="Pin">
   1.744 +      <a name="tristate" val="false"/>
   1.745 +    </comp>
   1.746 +    <comp lib="1" loc="(280,300)" name="XOR Gate">
   1.747 +      <a name="size" val="30"/>
   1.748 +      <a name="inputs" val="2"/>
   1.749 +    </comp>
   1.750 +  </circuit>
   1.751 +  <circuit name="8bit left shifter">
   1.752 +    <a name="circuit" val="8bit left shifter"/>
   1.753 +    <a name="clabel" val=""/>
   1.754 +    <a name="clabelup" val="east"/>
   1.755 +    <a name="clabelfont" val="SansSerif plain 12"/>
   1.756 +    <wire from="(220,210)" to="(220,300)"/>
   1.757 +    <wire from="(580,150)" to="(580,240)"/>
   1.758 +    <wire from="(680,250)" to="(730,250)"/>
   1.759 +    <wire from="(340,520)" to="(370,520)"/>
   1.760 +    <wire from="(500,250)" to="(500,320)"/>
   1.761 +    <wire from="(400,230)" to="(470,230)"/>
   1.762 +    <wire from="(460,600)" to="(510,600)"/>
   1.763 +    <wire from="(360,590)" to="(370,590)"/>
   1.764 +    <wire from="(80,120)" to="(140,120)"/>
   1.765 +    <wire from="(360,220)" to="(370,220)"/>
   1.766 +    <wire from="(220,440)" to="(240,440)"/>
   1.767 +    <wire from="(500,320)" to="(510,320)"/>
   1.768 +    <wire from="(250,450)" to="(250,520)"/>
   1.769 +    <wire from="(540,310)" to="(600,310)"/>
   1.770 +    <wire from="(100,200)" to="(100,560)"/>
   1.771 +    <wire from="(220,80)" to="(240,80)"/>
   1.772 +    <wire from="(520,470)" to="(520,540)"/>
   1.773 +    <wire from="(380,600)" to="(380,680)"/>
   1.774 +    <wire from="(400,100)" to="(490,100)"/>
   1.775 +    <wire from="(460,300)" to="(510,300)"/>
   1.776 +    <wire from="(250,170)" to="(250,240)"/>
   1.777 +    <wire from="(520,540)" to="(520,610)"/>
   1.778 +    <wire from="(220,490)" to="(220,580)"/>
   1.779 +    <wire from="(380,390)" to="(380,460)"/>
   1.780 +    <wire from="(520,130)" to="(520,190)"/>
   1.781 +    <wire from="(210,140)" to="(210,230)"/>
   1.782 +    <wire from="(400,160)" to="(480,160)"/>
   1.783 +    <wire from="(620,190)" to="(620,380)"/>
   1.784 +    <wire from="(470,230)" to="(510,230)"/>
   1.785 +    <wire from="(210,420)" to="(240,420)"/>
   1.786 +    <wire from="(210,420)" to="(210,510)"/>
   1.787 +    <wire from="(250,110)" to="(250,170)"/>
   1.788 +    <wire from="(400,580)" to="(510,580)"/>
   1.789 +    <wire from="(660,230)" to="(660,520)"/>
   1.790 +    <wire from="(270,150)" to="(340,150)"/>
   1.791 +    <wire from="(340,150)" to="(340,310)"/>
   1.792 +    <wire from="(640,210)" to="(730,210)"/>
   1.793 +    <wire from="(380,460)" to="(380,530)"/>
   1.794 +    <wire from="(480,460)" to="(510,460)"/>
   1.795 +    <wire from="(270,220)" to="(360,220)"/>
   1.796 +    <wire from="(270,500)" to="(370,500)"/>
   1.797 +    <wire from="(230,100)" to="(240,100)"/>
   1.798 +    <wire from="(380,530)" to="(380,600)"/>
   1.799 +    <wire from="(680,250)" to="(680,590)"/>
   1.800 +    <wire from="(560,130)" to="(560,170)"/>
   1.801 +    <wire from="(120,420)" to="(210,420)"/>
   1.802 +    <wire from="(270,430)" to="(360,430)"/>
   1.803 +    <wire from="(490,100)" to="(490,390)"/>
   1.804 +    <wire from="(360,430)" to="(370,430)"/>
   1.805 +    <wire from="(80,60)" to="(170,60)"/>
   1.806 +    <wire from="(220,300)" to="(240,300)"/>
   1.807 +    <wire from="(110,490)" to="(220,490)"/>
   1.808 +    <wire from="(210,230)" to="(240,230)"/>
   1.809 +    <wire from="(540,170)" to="(560,170)"/>
   1.810 +    <wire from="(150,210)" to="(220,210)"/>
   1.811 +    <wire from="(230,30)" to="(360,30)"/>
   1.812 +    <wire from="(620,190)" to="(730,190)"/>
   1.813 +    <wire from="(350,290)" to="(370,290)"/>
   1.814 +    <wire from="(400,510)" to="(510,510)"/>
   1.815 +    <wire from="(350,90)" to="(350,240)"/>
   1.816 +    <wire from="(490,390)" to="(510,390)"/>
   1.817 +    <wire from="(110,180)" to="(110,490)"/>
   1.818 +    <wire from="(400,300)" to="(460,300)"/>
   1.819 +    <wire from="(230,30)" to="(230,100)"/>
   1.820 +    <wire from="(540,110)" to="(730,110)"/>
   1.821 +    <wire from="(100,560)" to="(240,560)"/>
   1.822 +    <wire from="(80,700)" to="(520,700)"/>
   1.823 +    <wire from="(220,490)" to="(240,490)"/>
   1.824 +    <wire from="(340,150)" to="(370,150)"/>
   1.825 +    <wire from="(660,230)" to="(730,230)"/>
   1.826 +    <wire from="(210,140)" to="(240,140)"/>
   1.827 +    <wire from="(480,160)" to="(480,460)"/>
   1.828 +    <wire from="(380,120)" to="(380,180)"/>
   1.829 +    <wire from="(640,210)" to="(640,450)"/>
   1.830 +    <wire from="(350,290)" to="(350,450)"/>
   1.831 +    <wire from="(130,140)" to="(130,350)"/>
   1.832 +    <wire from="(250,240)" to="(250,310)"/>
   1.833 +    <wire from="(560,130)" to="(730,130)"/>
   1.834 +    <wire from="(600,170)" to="(730,170)"/>
   1.835 +    <wire from="(250,590)" to="(250,660)"/>
   1.836 +    <wire from="(500,180)" to="(510,180)"/>
   1.837 +    <wire from="(500,120)" to="(500,180)"/>
   1.838 +    <wire from="(150,100)" to="(150,210)"/>
   1.839 +    <wire from="(170,80)" to="(220,80)"/>
   1.840 +    <wire from="(350,90)" to="(370,90)"/>
   1.841 +    <wire from="(360,220)" to="(360,380)"/>
   1.842 +    <wire from="(270,90)" to="(350,90)"/>
   1.843 +    <wire from="(500,120)" to="(510,120)"/>
   1.844 +    <wire from="(80,180)" to="(110,180)"/>
   1.845 +    <wire from="(270,570)" to="(370,570)"/>
   1.846 +    <wire from="(360,380)" to="(370,380)"/>
   1.847 +    <wire from="(160,80)" to="(160,140)"/>
   1.848 +    <wire from="(500,30)" to="(500,120)"/>
   1.849 +    <wire from="(520,330)" to="(520,400)"/>
   1.850 +    <wire from="(160,140)" to="(210,140)"/>
   1.851 +    <wire from="(470,230)" to="(470,530)"/>
   1.852 +    <wire from="(380,250)" to="(380,320)"/>
   1.853 +    <wire from="(360,30)" to="(500,30)"/>
   1.854 +    <wire from="(220,580)" to="(240,580)"/>
   1.855 +    <wire from="(210,280)" to="(210,370)"/>
   1.856 +    <wire from="(220,160)" to="(240,160)"/>
   1.857 +    <wire from="(470,530)" to="(510,530)"/>
   1.858 +    <wire from="(220,350)" to="(220,440)"/>
   1.859 +    <wire from="(80,80)" to="(160,80)"/>
   1.860 +    <wire from="(360,170)" to="(370,170)"/>
   1.861 +    <wire from="(360,110)" to="(360,170)"/>
   1.862 +    <wire from="(540,380)" to="(620,380)"/>
   1.863 +    <wire from="(600,170)" to="(600,310)"/>
   1.864 +    <wire from="(400,440)" to="(510,440)"/>
   1.865 +    <wire from="(460,300)" to="(460,600)"/>
   1.866 +    <wire from="(490,100)" to="(510,100)"/>
   1.867 +    <wire from="(220,80)" to="(220,160)"/>
   1.868 +    <wire from="(120,160)" to="(120,420)"/>
   1.869 +    <wire from="(360,110)" to="(370,110)"/>
   1.870 +    <wire from="(220,350)" to="(240,350)"/>
   1.871 +    <wire from="(210,280)" to="(240,280)"/>
   1.872 +    <wire from="(270,290)" to="(350,290)"/>
   1.873 +    <wire from="(340,360)" to="(370,360)"/>
   1.874 +    <wire from="(520,260)" to="(520,330)"/>
   1.875 +    <wire from="(80,160)" to="(120,160)"/>
   1.876 +    <wire from="(540,240)" to="(580,240)"/>
   1.877 +    <wire from="(540,450)" to="(640,450)"/>
   1.878 +    <wire from="(540,520)" to="(660,520)"/>
   1.879 +    <wire from="(140,120)" to="(140,280)"/>
   1.880 +    <wire from="(380,320)" to="(380,390)"/>
   1.881 +    <wire from="(250,380)" to="(250,450)"/>
   1.882 +    <wire from="(380,180)" to="(380,250)"/>
   1.883 +    <wire from="(540,590)" to="(680,590)"/>
   1.884 +    <wire from="(80,200)" to="(100,200)"/>
   1.885 +    <wire from="(140,280)" to="(210,280)"/>
   1.886 +    <wire from="(210,370)" to="(240,370)"/>
   1.887 +    <wire from="(340,310)" to="(370,310)"/>
   1.888 +    <wire from="(350,450)" to="(370,450)"/>
   1.889 +    <wire from="(180,30)" to="(230,30)"/>
   1.890 +    <wire from="(80,100)" to="(150,100)"/>
   1.891 +    <wire from="(270,360)" to="(340,360)"/>
   1.892 +    <wire from="(80,140)" to="(130,140)"/>
   1.893 +    <wire from="(250,310)" to="(250,380)"/>
   1.894 +    <wire from="(480,160)" to="(510,160)"/>
   1.895 +    <wire from="(360,30)" to="(360,110)"/>
   1.896 +    <wire from="(520,190)" to="(520,260)"/>
   1.897 +    <wire from="(340,360)" to="(340,520)"/>
   1.898 +    <wire from="(80,680)" to="(380,680)"/>
   1.899 +    <wire from="(80,660)" to="(250,660)"/>
   1.900 +    <wire from="(210,510)" to="(240,510)"/>
   1.901 +    <wire from="(220,210)" to="(240,210)"/>
   1.902 +    <wire from="(350,240)" to="(370,240)"/>
   1.903 +    <wire from="(170,60)" to="(170,80)"/>
   1.904 +    <wire from="(500,180)" to="(500,250)"/>
   1.905 +    <wire from="(580,150)" to="(730,150)"/>
   1.906 +    <wire from="(500,250)" to="(510,250)"/>
   1.907 +    <wire from="(250,520)" to="(250,590)"/>
   1.908 +    <wire from="(520,400)" to="(520,470)"/>
   1.909 +    <wire from="(400,370)" to="(510,370)"/>
   1.910 +    <wire from="(360,430)" to="(360,590)"/>
   1.911 +    <wire from="(130,350)" to="(220,350)"/>
   1.912 +    <wire from="(520,610)" to="(520,700)"/>
   1.913 +    <comp lib="2" loc="(270,570)" name="Multiplexer">
   1.914 +      <a name="enable" val="false"/>
   1.915 +    </comp>
   1.916 +    <comp lib="2" loc="(400,100)" name="Multiplexer">
   1.917 +      <a name="enable" val="false"/>
   1.918 +    </comp>
   1.919 +    <comp lib="2" loc="(400,440)" name="Multiplexer">
   1.920 +      <a name="enable" val="false"/>
   1.921 +    </comp>
   1.922 +    <comp lib="2" loc="(270,500)" name="Multiplexer">
   1.923 +      <a name="enable" val="false"/>
   1.924 +    </comp>
   1.925 +    <comp lib="2" loc="(400,370)" name="Multiplexer">
   1.926 +      <a name="enable" val="false"/>
   1.927 +    </comp>
   1.928 +    <comp lib="0" loc="(730,250)" name="Pin">
   1.929 +      <a name="facing" val="west"/>
   1.930 +      <a name="output" val="true"/>
   1.931 +      <a name="label" val="R7"/>
   1.932 +      <a name="labelloc" val="east"/>
   1.933 +    </comp>
   1.934 +    <comp lib="0" loc="(730,230)" name="Pin">
   1.935 +      <a name="facing" val="west"/>
   1.936 +      <a name="output" val="true"/>
   1.937 +      <a name="label" val="R6"/>
   1.938 +      <a name="labelloc" val="east"/>
   1.939 +    </comp>
   1.940 +    <comp lib="0" loc="(180,30)" name="Pin">
   1.941 +      <a name="tristate" val="false"/>
   1.942 +      <a name="label" val="sin"/>
   1.943 +    </comp>
   1.944 +    <comp lib="0" loc="(80,160)" name="Pin">
   1.945 +      <a name="tristate" val="false"/>
   1.946 +      <a name="label" val="A5"/>
   1.947 +    </comp>
   1.948 +    <comp lib="2" loc="(400,160)" name="Multiplexer">
   1.949 +      <a name="enable" val="false"/>
   1.950 +    </comp>
   1.951 +    <comp lib="0" loc="(80,60)" name="Pin">
   1.952 +      <a name="tristate" val="false"/>
   1.953 +      <a name="label" val="A0"/>
   1.954 +    </comp>
   1.955 +    <comp lib="0" loc="(80,100)" name="Pin">
   1.956 +      <a name="tristate" val="false"/>
   1.957 +      <a name="label" val="A2"/>
   1.958 +    </comp>
   1.959 +    <comp lib="0" loc="(80,80)" name="Pin">
   1.960 +      <a name="tristate" val="false"/>
   1.961 +      <a name="label" val="A1"/>
   1.962 +    </comp>
   1.963 +    <comp lib="2" loc="(540,590)" name="Multiplexer">
   1.964 +      <a name="enable" val="false"/>
   1.965 +    </comp>
   1.966 +    <comp lib="0" loc="(80,700)" name="Pin">
   1.967 +      <a name="tristate" val="false"/>
   1.968 +      <a name="label" val="S2"/>
   1.969 +    </comp>
   1.970 +    <comp lib="0" loc="(730,130)" name="Pin">
   1.971 +      <a name="facing" val="west"/>
   1.972 +      <a name="output" val="true"/>
   1.973 +      <a name="label" val="R1"/>
   1.974 +      <a name="labelloc" val="east"/>
   1.975 +    </comp>
   1.976 +    <comp lib="0" loc="(730,190)" name="Pin">
   1.977 +      <a name="facing" val="west"/>
   1.978 +      <a name="output" val="true"/>
   1.979 +      <a name="label" val="R4"/>
   1.980 +      <a name="labelloc" val="east"/>
   1.981 +    </comp>
   1.982 +    <comp lib="2" loc="(540,450)" name="Multiplexer">
   1.983 +      <a name="enable" val="false"/>
   1.984 +    </comp>
   1.985 +    <comp lib="2" loc="(540,310)" name="Multiplexer">
   1.986 +      <a name="enable" val="false"/>
   1.987 +    </comp>
   1.988 +    <comp lib="0" loc="(80,180)" name="Pin">
   1.989 +      <a name="tristate" val="false"/>
   1.990 +      <a name="label" val="A6"/>
   1.991 +    </comp>
   1.992 +    <comp lib="2" loc="(270,90)" name="Multiplexer">
   1.993 +      <a name="enable" val="false"/>
   1.994 +    </comp>
   1.995 +    <comp lib="0" loc="(80,660)" name="Pin">
   1.996 +      <a name="tristate" val="false"/>
   1.997 +      <a name="label" val="S0"/>
   1.998 +    </comp>
   1.999 +    <comp lib="2" loc="(540,110)" name="Multiplexer">
  1.1000 +      <a name="enable" val="false"/>
  1.1001 +    </comp>
  1.1002 +    <comp lib="0" loc="(80,120)" name="Pin">
  1.1003 +      <a name="tristate" val="false"/>
  1.1004 +      <a name="label" val="A3"/>
  1.1005 +    </comp>
  1.1006 +    <comp lib="2" loc="(270,150)" name="Multiplexer">
  1.1007 +      <a name="enable" val="false"/>
  1.1008 +    </comp>
  1.1009 +    <comp lib="2" loc="(400,300)" name="Multiplexer">
  1.1010 +      <a name="enable" val="false"/>
  1.1011 +    </comp>
  1.1012 +    <comp lib="2" loc="(270,430)" name="Multiplexer">
  1.1013 +      <a name="enable" val="false"/>
  1.1014 +    </comp>
  1.1015 +    <comp lib="2" loc="(540,240)" name="Multiplexer">
  1.1016 +      <a name="enable" val="false"/>
  1.1017 +    </comp>
  1.1018 +    <comp lib="2" loc="(540,520)" name="Multiplexer">
  1.1019 +      <a name="enable" val="false"/>
  1.1020 +    </comp>
  1.1021 +    <comp lib="2" loc="(540,380)" name="Multiplexer">
  1.1022 +      <a name="enable" val="false"/>
  1.1023 +    </comp>
  1.1024 +    <comp lib="0" loc="(730,110)" name="Pin">
  1.1025 +      <a name="facing" val="west"/>
  1.1026 +      <a name="output" val="true"/>
  1.1027 +      <a name="label" val="R0"/>
  1.1028 +      <a name="labelloc" val="east"/>
  1.1029 +    </comp>
  1.1030 +    <comp lib="0" loc="(730,210)" name="Pin">
  1.1031 +      <a name="facing" val="west"/>
  1.1032 +      <a name="output" val="true"/>
  1.1033 +      <a name="label" val="R5"/>
  1.1034 +      <a name="labelloc" val="east"/>
  1.1035 +    </comp>
  1.1036 +    <comp lib="0" loc="(80,140)" name="Pin">
  1.1037 +      <a name="tristate" val="false"/>
  1.1038 +      <a name="label" val="A4"/>
  1.1039 +    </comp>
  1.1040 +    <comp lib="2" loc="(270,220)" name="Multiplexer">
  1.1041 +      <a name="enable" val="false"/>
  1.1042 +    </comp>
  1.1043 +    <comp lib="0" loc="(730,170)" name="Pin">
  1.1044 +      <a name="facing" val="west"/>
  1.1045 +      <a name="output" val="true"/>
  1.1046 +      <a name="label" val="R3"/>
  1.1047 +      <a name="labelloc" val="east"/>
  1.1048 +    </comp>
  1.1049 +    <comp lib="2" loc="(400,230)" name="Multiplexer">
  1.1050 +      <a name="enable" val="false"/>
  1.1051 +    </comp>
  1.1052 +    <comp lib="2" loc="(400,580)" name="Multiplexer">
  1.1053 +      <a name="enable" val="false"/>
  1.1054 +    </comp>
  1.1055 +    <comp lib="2" loc="(270,360)" name="Multiplexer">
  1.1056 +      <a name="enable" val="false"/>
  1.1057 +    </comp>
  1.1058 +    <comp lib="0" loc="(730,150)" name="Pin">
  1.1059 +      <a name="facing" val="west"/>
  1.1060 +      <a name="output" val="true"/>
  1.1061 +      <a name="label" val="R2"/>
  1.1062 +      <a name="labelloc" val="east"/>
  1.1063 +    </comp>
  1.1064 +    <comp lib="0" loc="(80,680)" name="Pin">
  1.1065 +      <a name="tristate" val="false"/>
  1.1066 +      <a name="label" val="S1"/>
  1.1067 +    </comp>
  1.1068 +    <comp lib="2" loc="(400,510)" name="Multiplexer">
  1.1069 +      <a name="enable" val="false"/>
  1.1070 +    </comp>
  1.1071 +    <comp lib="2" loc="(540,170)" name="Multiplexer">
  1.1072 +      <a name="enable" val="false"/>
  1.1073 +    </comp>
  1.1074 +    <comp lib="0" loc="(80,200)" name="Pin">
  1.1075 +      <a name="tristate" val="false"/>
  1.1076 +      <a name="label" val="A7"/>
  1.1077 +    </comp>
  1.1078 +    <comp lib="2" loc="(270,290)" name="Multiplexer">
  1.1079 +      <a name="enable" val="false"/>
  1.1080 +    </comp>
  1.1081 +  </circuit>
  1.1082 +  <circuit name="8bit right shifter">
  1.1083 +    <a name="circuit" val="8bit right shifter"/>
  1.1084 +    <a name="clabel" val=""/>
  1.1085 +    <a name="clabelup" val="east"/>
  1.1086 +    <a name="clabelfont" val="SansSerif plain 12"/>
  1.1087 +    <wire from="(530,540)" to="(530,610)"/>
  1.1088 +    <wire from="(170,140)" to="(240,140)"/>
  1.1089 +    <wire from="(280,360)" to="(370,360)"/>
  1.1090 +    <wire from="(240,160)" to="(240,210)"/>
  1.1091 +    <wire from="(390,320)" to="(390,390)"/>
  1.1092 +    <wire from="(360,450)" to="(360,570)"/>
  1.1093 +    <wire from="(370,500)" to="(380,500)"/>
  1.1094 +    <wire from="(280,430)" to="(360,430)"/>
  1.1095 +    <wire from="(240,510)" to="(240,560)"/>
  1.1096 +    <wire from="(240,160)" to="(250,160)"/>
  1.1097 +    <wire from="(260,170)" to="(260,240)"/>
  1.1098 +    <wire from="(550,170)" to="(570,170)"/>
  1.1099 +    <wire from="(550,240)" to="(590,240)"/>
  1.1100 +    <wire from="(490,250)" to="(520,250)"/>
  1.1101 +    <wire from="(370,380)" to="(380,380)"/>
  1.1102 +    <wire from="(90,60)" to="(180,60)"/>
  1.1103 +    <wire from="(120,490)" to="(240,490)"/>
  1.1104 +    <wire from="(240,440)" to="(250,440)"/>
  1.1105 +    <wire from="(150,120)" to="(150,280)"/>
  1.1106 +    <wire from="(240,510)" to="(250,510)"/>
  1.1107 +    <wire from="(170,80)" to="(170,140)"/>
  1.1108 +    <wire from="(550,520)" to="(670,520)"/>
  1.1109 +    <wire from="(370,220)" to="(380,220)"/>
  1.1110 +    <wire from="(500,320)" to="(500,580)"/>
  1.1111 +    <wire from="(240,100)" to="(240,140)"/>
  1.1112 +    <wire from="(530,260)" to="(530,330)"/>
  1.1113 +    <wire from="(90,20)" to="(190,20)"/>
  1.1114 +    <wire from="(260,590)" to="(260,660)"/>
  1.1115 +    <wire from="(670,230)" to="(670,520)"/>
  1.1116 +    <wire from="(240,100)" to="(250,100)"/>
  1.1117 +    <wire from="(370,610)" to="(510,610)"/>
  1.1118 +    <wire from="(240,440)" to="(240,490)"/>
  1.1119 +    <wire from="(550,380)" to="(630,380)"/>
  1.1120 +    <wire from="(390,460)" to="(390,530)"/>
  1.1121 +    <wire from="(370,590)" to="(370,610)"/>
  1.1122 +    <wire from="(130,160)" to="(130,420)"/>
  1.1123 +    <wire from="(190,580)" to="(190,610)"/>
  1.1124 +    <wire from="(370,110)" to="(380,110)"/>
  1.1125 +    <wire from="(650,210)" to="(740,210)"/>
  1.1126 +    <wire from="(510,390)" to="(520,390)"/>
  1.1127 +    <wire from="(160,210)" to="(240,210)"/>
  1.1128 +    <wire from="(90,160)" to="(130,160)"/>
  1.1129 +    <wire from="(390,180)" to="(390,250)"/>
  1.1130 +    <wire from="(280,500)" to="(370,500)"/>
  1.1131 +    <wire from="(360,570)" to="(380,570)"/>
  1.1132 +    <wire from="(410,300)" to="(520,300)"/>
  1.1133 +    <wire from="(510,460)" to="(520,460)"/>
  1.1134 +    <wire from="(260,240)" to="(260,310)"/>
  1.1135 +    <wire from="(470,370)" to="(520,370)"/>
  1.1136 +    <wire from="(90,200)" to="(110,200)"/>
  1.1137 +    <wire from="(240,560)" to="(250,560)"/>
  1.1138 +    <wire from="(550,450)" to="(650,450)"/>
  1.1139 +    <wire from="(410,510)" to="(490,510)"/>
  1.1140 +    <wire from="(360,170)" to="(380,170)"/>
  1.1141 +    <wire from="(240,230)" to="(250,230)"/>
  1.1142 +    <wire from="(410,370)" to="(470,370)"/>
  1.1143 +    <wire from="(190,580)" to="(250,580)"/>
  1.1144 +    <wire from="(90,100)" to="(160,100)"/>
  1.1145 +    <wire from="(370,240)" to="(380,240)"/>
  1.1146 +    <wire from="(530,610)" to="(530,700)"/>
  1.1147 +    <wire from="(370,520)" to="(370,590)"/>
  1.1148 +    <wire from="(240,230)" to="(240,280)"/>
  1.1149 +    <wire from="(500,320)" to="(520,320)"/>
  1.1150 +    <wire from="(360,290)" to="(380,290)"/>
  1.1151 +    <wire from="(130,420)" to="(240,420)"/>
  1.1152 +    <wire from="(190,20)" to="(190,580)"/>
  1.1153 +    <wire from="(240,420)" to="(250,420)"/>
  1.1154 +    <wire from="(370,360)" to="(380,360)"/>
  1.1155 +    <wire from="(480,180)" to="(520,180)"/>
  1.1156 +    <wire from="(530,330)" to="(530,400)"/>
  1.1157 +    <wire from="(500,580)" to="(520,580)"/>
  1.1158 +    <wire from="(260,110)" to="(260,170)"/>
  1.1159 +    <wire from="(390,530)" to="(390,600)"/>
  1.1160 +    <wire from="(370,590)" to="(380,590)"/>
  1.1161 +    <wire from="(90,660)" to="(260,660)"/>
  1.1162 +    <wire from="(360,450)" to="(380,450)"/>
  1.1163 +    <wire from="(630,190)" to="(630,380)"/>
  1.1164 +    <wire from="(110,200)" to="(110,560)"/>
  1.1165 +    <wire from="(90,180)" to="(120,180)"/>
  1.1166 +    <wire from="(280,570)" to="(360,570)"/>
  1.1167 +    <wire from="(510,390)" to="(510,460)"/>
  1.1168 +    <wire from="(240,300)" to="(240,350)"/>
  1.1169 +    <wire from="(630,190)" to="(740,190)"/>
  1.1170 +    <wire from="(470,120)" to="(520,120)"/>
  1.1171 +    <wire from="(530,400)" to="(530,470)"/>
  1.1172 +    <wire from="(360,170)" to="(360,290)"/>
  1.1173 +    <wire from="(370,110)" to="(370,220)"/>
  1.1174 +    <wire from="(90,80)" to="(170,80)"/>
  1.1175 +    <wire from="(510,530)" to="(520,530)"/>
  1.1176 +    <wire from="(410,100)" to="(520,100)"/>
  1.1177 +    <wire from="(260,310)" to="(260,380)"/>
  1.1178 +    <wire from="(360,310)" to="(380,310)"/>
  1.1179 +    <wire from="(240,490)" to="(250,490)"/>
  1.1180 +    <wire from="(260,450)" to="(260,520)"/>
  1.1181 +    <wire from="(240,300)" to="(250,300)"/>
  1.1182 +    <wire from="(390,390)" to="(390,460)"/>
  1.1183 +    <wire from="(370,240)" to="(370,360)"/>
  1.1184 +    <wire from="(280,150)" to="(380,150)"/>
  1.1185 +    <wire from="(360,430)" to="(380,430)"/>
  1.1186 +    <wire from="(650,210)" to="(650,450)"/>
  1.1187 +    <wire from="(140,140)" to="(140,350)"/>
  1.1188 +    <wire from="(370,520)" to="(380,520)"/>
  1.1189 +    <wire from="(590,150)" to="(740,150)"/>
  1.1190 +    <wire from="(530,190)" to="(530,260)"/>
  1.1191 +    <wire from="(180,60)" to="(180,80)"/>
  1.1192 +    <wire from="(610,170)" to="(610,310)"/>
  1.1193 +    <wire from="(480,440)" to="(520,440)"/>
  1.1194 +    <wire from="(240,140)" to="(250,140)"/>
  1.1195 +    <wire from="(390,120)" to="(390,180)"/>
  1.1196 +    <wire from="(510,600)" to="(520,600)"/>
  1.1197 +    <wire from="(140,350)" to="(240,350)"/>
  1.1198 +    <wire from="(160,100)" to="(160,210)"/>
  1.1199 +    <wire from="(390,600)" to="(390,680)"/>
  1.1200 +    <wire from="(510,460)" to="(510,530)"/>
  1.1201 +    <wire from="(240,350)" to="(250,350)"/>
  1.1202 +    <wire from="(410,160)" to="(520,160)"/>
  1.1203 +    <wire from="(570,130)" to="(740,130)"/>
  1.1204 +    <wire from="(390,250)" to="(390,320)"/>
  1.1205 +    <wire from="(90,120)" to="(150,120)"/>
  1.1206 +    <wire from="(90,680)" to="(390,680)"/>
  1.1207 +    <wire from="(530,470)" to="(530,540)"/>
  1.1208 +    <wire from="(470,120)" to="(470,370)"/>
  1.1209 +    <wire from="(280,290)" to="(360,290)"/>
  1.1210 +    <wire from="(260,380)" to="(260,450)"/>
  1.1211 +    <wire from="(670,230)" to="(740,230)"/>
  1.1212 +    <wire from="(550,310)" to="(610,310)"/>
  1.1213 +    <wire from="(280,220)" to="(370,220)"/>
  1.1214 +    <wire from="(590,150)" to="(590,240)"/>
  1.1215 +    <wire from="(150,280)" to="(240,280)"/>
  1.1216 +    <wire from="(570,130)" to="(570,170)"/>
  1.1217 +    <wire from="(410,580)" to="(500,580)"/>
  1.1218 +    <wire from="(190,610)" to="(370,610)"/>
  1.1219 +    <wire from="(90,700)" to="(530,700)"/>
  1.1220 +    <wire from="(490,250)" to="(490,510)"/>
  1.1221 +    <wire from="(110,560)" to="(240,560)"/>
  1.1222 +    <wire from="(410,230)" to="(520,230)"/>
  1.1223 +    <wire from="(490,510)" to="(520,510)"/>
  1.1224 +    <wire from="(240,210)" to="(250,210)"/>
  1.1225 +    <wire from="(240,280)" to="(250,280)"/>
  1.1226 +    <wire from="(510,530)" to="(510,600)"/>
  1.1227 +    <wire from="(370,380)" to="(370,500)"/>
  1.1228 +    <wire from="(610,170)" to="(740,170)"/>
  1.1229 +    <wire from="(240,370)" to="(240,420)"/>
  1.1230 +    <wire from="(260,520)" to="(260,590)"/>
  1.1231 +    <wire from="(280,90)" to="(380,90)"/>
  1.1232 +    <wire from="(410,440)" to="(480,440)"/>
  1.1233 +    <wire from="(510,600)" to="(510,610)"/>
  1.1234 +    <wire from="(690,250)" to="(740,250)"/>
  1.1235 +    <wire from="(550,590)" to="(690,590)"/>
  1.1236 +    <wire from="(120,180)" to="(120,490)"/>
  1.1237 +    <wire from="(360,310)" to="(360,430)"/>
  1.1238 +    <wire from="(90,140)" to="(140,140)"/>
  1.1239 +    <wire from="(690,250)" to="(690,590)"/>
  1.1240 +    <wire from="(480,180)" to="(480,440)"/>
  1.1241 +    <wire from="(530,130)" to="(530,190)"/>
  1.1242 +    <wire from="(550,110)" to="(740,110)"/>
  1.1243 +    <wire from="(180,80)" to="(250,80)"/>
  1.1244 +    <wire from="(240,370)" to="(250,370)"/>
  1.1245 +    <comp lib="2" loc="(410,230)" name="Multiplexer">
  1.1246 +      <a name="enable" val="false"/>
  1.1247 +    </comp>
  1.1248 +    <comp lib="2" loc="(550,110)" name="Multiplexer">
  1.1249 +      <a name="enable" val="false"/>
  1.1250 +    </comp>
  1.1251 +    <comp lib="0" loc="(740,150)" name="Pin">
  1.1252 +      <a name="facing" val="west"/>
  1.1253 +      <a name="output" val="true"/>
  1.1254 +      <a name="label" val="R2"/>
  1.1255 +      <a name="labelloc" val="east"/>
  1.1256 +    </comp>
  1.1257 +    <comp lib="2" loc="(410,300)" name="Multiplexer">
  1.1258 +      <a name="enable" val="false"/>
  1.1259 +    </comp>
  1.1260 +    <comp lib="0" loc="(90,100)" name="Pin">
  1.1261 +      <a name="tristate" val="false"/>
  1.1262 +      <a name="label" val="A2"/>
  1.1263 +    </comp>
  1.1264 +    <comp lib="0" loc="(740,230)" name="Pin">
  1.1265 +      <a name="facing" val="west"/>
  1.1266 +      <a name="output" val="true"/>
  1.1267 +      <a name="label" val="R6"/>
  1.1268 +      <a name="labelloc" val="east"/>
  1.1269 +    </comp>
  1.1270 +    <comp lib="0" loc="(90,120)" name="Pin">
  1.1271 +      <a name="tristate" val="false"/>
  1.1272 +      <a name="label" val="A3"/>
  1.1273 +    </comp>
  1.1274 +    <comp lib="0" loc="(90,680)" name="Pin">
  1.1275 +      <a name="tristate" val="false"/>
  1.1276 +      <a name="label" val="S1"/>
  1.1277 +    </comp>
  1.1278 +    <comp lib="0" loc="(90,20)" name="Pin">
  1.1279 +      <a name="tristate" val="false"/>
  1.1280 +      <a name="label" val="sin"/>
  1.1281 +    </comp>
  1.1282 +    <comp lib="2" loc="(410,370)" name="Multiplexer">
  1.1283 +      <a name="enable" val="false"/>
  1.1284 +    </comp>
  1.1285 +    <comp lib="2" loc="(550,240)" name="Multiplexer">
  1.1286 +      <a name="enable" val="false"/>
  1.1287 +    </comp>
  1.1288 +    <comp lib="2" loc="(410,100)" name="Multiplexer">
  1.1289 +      <a name="enable" val="false"/>
  1.1290 +    </comp>
  1.1291 +    <comp lib="0" loc="(740,110)" name="Pin">
  1.1292 +      <a name="facing" val="west"/>
  1.1293 +      <a name="output" val="true"/>
  1.1294 +      <a name="label" val="R0"/>
  1.1295 +      <a name="labelloc" val="east"/>
  1.1296 +    </comp>
  1.1297 +    <comp lib="2" loc="(550,310)" name="Multiplexer">
  1.1298 +      <a name="enable" val="false"/>
  1.1299 +    </comp>
  1.1300 +    <comp lib="0" loc="(90,80)" name="Pin">
  1.1301 +      <a name="tristate" val="false"/>
  1.1302 +      <a name="label" val="A1"/>
  1.1303 +    </comp>
  1.1304 +    <comp lib="0" loc="(740,130)" name="Pin">
  1.1305 +      <a name="facing" val="west"/>
  1.1306 +      <a name="output" val="true"/>
  1.1307 +      <a name="label" val="R1"/>
  1.1308 +      <a name="labelloc" val="east"/>
  1.1309 +    </comp>
  1.1310 +    <comp lib="2" loc="(280,360)" name="Multiplexer">
  1.1311 +      <a name="enable" val="false"/>
  1.1312 +    </comp>
  1.1313 +    <comp lib="2" loc="(410,510)" name="Multiplexer">
  1.1314 +      <a name="enable" val="false"/>
  1.1315 +    </comp>
  1.1316 +    <comp lib="2" loc="(280,150)" name="Multiplexer">
  1.1317 +      <a name="enable" val="false"/>
  1.1318 +    </comp>
  1.1319 +    <comp lib="0" loc="(740,210)" name="Pin">
  1.1320 +      <a name="facing" val="west"/>
  1.1321 +      <a name="output" val="true"/>
  1.1322 +      <a name="label" val="R5"/>
  1.1323 +      <a name="labelloc" val="east"/>
  1.1324 +    </comp>
  1.1325 +    <comp lib="0" loc="(90,60)" name="Pin">
  1.1326 +      <a name="tristate" val="false"/>
  1.1327 +      <a name="label" val="A0"/>
  1.1328 +    </comp>
  1.1329 +    <comp lib="2" loc="(550,520)" name="Multiplexer">
  1.1330 +      <a name="enable" val="false"/>
  1.1331 +    </comp>
  1.1332 +    <comp lib="0" loc="(90,660)" name="Pin">
  1.1333 +      <a name="tristate" val="false"/>
  1.1334 +      <a name="label" val="S0"/>
  1.1335 +    </comp>
  1.1336 +    <comp lib="0" loc="(740,170)" name="Pin">
  1.1337 +      <a name="facing" val="west"/>
  1.1338 +      <a name="output" val="true"/>
  1.1339 +      <a name="label" val="R3"/>
  1.1340 +      <a name="labelloc" val="east"/>
  1.1341 +    </comp>
  1.1342 +    <comp lib="2" loc="(280,500)" name="Multiplexer">
  1.1343 +      <a name="enable" val="false"/>
  1.1344 +    </comp>
  1.1345 +    <comp lib="2" loc="(410,160)" name="Multiplexer">
  1.1346 +      <a name="enable" val="false"/>
  1.1347 +    </comp>
  1.1348 +    <comp lib="2" loc="(280,570)" name="Multiplexer">
  1.1349 +      <a name="enable" val="false"/>
  1.1350 +    </comp>
  1.1351 +    <comp lib="2" loc="(280,290)" name="Multiplexer">
  1.1352 +      <a name="enable" val="false"/>
  1.1353 +    </comp>
  1.1354 +    <comp lib="0" loc="(90,200)" name="Pin">
  1.1355 +      <a name="tristate" val="false"/>
  1.1356 +      <a name="label" val="A7"/>
  1.1357 +    </comp>
  1.1358 +    <comp lib="0" loc="(90,700)" name="Pin">
  1.1359 +      <a name="tristate" val="false"/>
  1.1360 +      <a name="label" val="S2"/>
  1.1361 +    </comp>
  1.1362 +    <comp lib="2" loc="(550,590)" name="Multiplexer">
  1.1363 +      <a name="enable" val="false"/>
  1.1364 +    </comp>
  1.1365 +    <comp lib="2" loc="(550,380)" name="Multiplexer">
  1.1366 +      <a name="enable" val="false"/>
  1.1367 +    </comp>
  1.1368 +    <comp lib="2" loc="(280,220)" name="Multiplexer">
  1.1369 +      <a name="enable" val="false"/>
  1.1370 +    </comp>
  1.1371 +    <comp lib="0" loc="(740,250)" name="Pin">
  1.1372 +      <a name="facing" val="west"/>
  1.1373 +      <a name="output" val="true"/>
  1.1374 +      <a name="label" val="R7"/>
  1.1375 +      <a name="labelloc" val="east"/>
  1.1376 +    </comp>
  1.1377 +    <comp lib="2" loc="(280,90)" name="Multiplexer">
  1.1378 +      <a name="enable" val="false"/>
  1.1379 +    </comp>
  1.1380 +    <comp lib="0" loc="(90,180)" name="Pin">
  1.1381 +      <a name="tristate" val="false"/>
  1.1382 +      <a name="label" val="A6"/>
  1.1383 +    </comp>
  1.1384 +    <comp lib="2" loc="(280,430)" name="Multiplexer">
  1.1385 +      <a name="enable" val="false"/>
  1.1386 +    </comp>
  1.1387 +    <comp lib="2" loc="(410,580)" name="Multiplexer">
  1.1388 +      <a name="enable" val="false"/>
  1.1389 +    </comp>
  1.1390 +    <comp lib="2" loc="(410,440)" name="Multiplexer">
  1.1391 +      <a name="enable" val="false"/>
  1.1392 +    </comp>
  1.1393 +    <comp lib="0" loc="(90,160)" name="Pin">
  1.1394 +      <a name="tristate" val="false"/>
  1.1395 +      <a name="label" val="A5"/>
  1.1396 +    </comp>
  1.1397 +    <comp lib="0" loc="(90,140)" name="Pin">
  1.1398 +      <a name="tristate" val="false"/>
  1.1399 +      <a name="label" val="A4"/>
  1.1400 +    </comp>
  1.1401 +    <comp lib="0" loc="(740,190)" name="Pin">
  1.1402 +      <a name="facing" val="west"/>
  1.1403 +      <a name="output" val="true"/>
  1.1404 +      <a name="label" val="R4"/>
  1.1405 +      <a name="labelloc" val="east"/>
  1.1406 +    </comp>
  1.1407 +    <comp lib="2" loc="(550,170)" name="Multiplexer">
  1.1408 +      <a name="enable" val="false"/>
  1.1409 +    </comp>
  1.1410 +    <comp lib="2" loc="(550,450)" name="Multiplexer">
  1.1411 +      <a name="enable" val="false"/>
  1.1412 +    </comp>
  1.1413 +  </circuit>
  1.1414 +</project>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/cpuops	Fri Jan 03 07:19:15 2014 +0200
     2.3 @@ -0,0 +1,13 @@
     2.4 +ALU opcodes
     2.5 +-----------
     2.6 +0	(0000)	move
     2.7 +1	(0001)	?
     2.8 +2	(0010)	add
     2.9 +3	(0011)	subtract
    2.10 +4	(0100)	and
    2.11 +5	(0101)	or
    2.12 +6	(0110)	xor
    2.13 +7	(0111)	not
    2.14 +8	(1000)	shl/sal
    2.15 +9	(1001)	shr
    2.16 +10	(1010)	sar