Merge branch 'development' of https://gitlab.lrz.de/lrr-tum/students/eragp-misim...
authorFabian Stemmler <stemmler@in.tum.de>
Sat, 31 Aug 2019 14:52:37 +0000 (16:52 +0200)
committerFabian Stemmler <stemmler@in.tum.de>
Sat, 31 Aug 2019 14:52:37 +0000 (16:52 +0200)
17 files changed:
net.mograsim.logic.model.am2900/GUIAm2904Testbench.json [new file with mode: 0644]
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904RegCTInstrDecode.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/GUIAm2904ShiftInstrDecode.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2904Testbench.java [new file with mode: 0644]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2910Testbench.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java
net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model/src/net/mograsim/logic/model/SimpleLogicUIStandalone.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIMerger.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json

diff --git a/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json b/net.mograsim.logic.model.am2900/GUIAm2904Testbench.json
new file mode 100644 (file)
index 0000000..faea225
--- /dev/null
@@ -0,0 +1,2338 @@
+{
+  "width": 0.0,
+  "height": 0.0,
+  "interfacePins": [],
+  "innerScale": 1.0,
+  "submodel": {
+    "components": [
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#1",
+        "pos": {
+          "x": 140.0,
+          "y": 125.0
+        },
+        "params": "IC"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
+        "pos": {
+          "x": 335.0,
+          "y": 105.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#8",
+        "pos": {
+          "x": 125.0,
+          "y": 230.0
+        },
+        "params": "_EN"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 185.0,
+          "y": 310.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
+        "pos": {
+          "x": 345.0,
+          "y": 85.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 375.0,
+          "y": 190.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
+        "pos": {
+          "x": 391.0,
+          "y": 180.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#6",
+        "pos": {
+          "x": 125.0,
+          "y": 200.0
+        },
+        "params": "_EZ"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#14",
+        "pos": {
+          "x": 40.0,
+          "y": 130.0
+        },
+        "params": "I1"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#13",
+        "pos": {
+          "x": 60.0,
+          "y": 132.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#48",
+        "pos": {
+          "x": 350.0,
+          "y": 220.0
+        },
+        "params": "_OECT"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
+        "pos": {
+          "x": 175.0,
+          "y": 370.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#42",
+        "pos": {
+          "x": 270.0,
+          "y": 135.0
+        },
+        "params": "YOVR"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
+        "pos": {
+          "x": 355.0,
+          "y": 380.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
+        "pos": {
+          "x": 85.0,
+          "y": 130.0
+        },
+        "params": 13
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#36",
+        "pos": {
+          "x": 300.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#24",
+        "pos": {
+          "x": 55.0,
+          "y": 162.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#31",
+        "pos": {
+          "x": 55.0,
+          "y": 242.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#25",
+        "pos": {
+          "x": 55.0,
+          "y": 182.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#16",
+        "pos": {
+          "x": 35.0,
+          "y": 160.0
+        },
+        "params": "I4"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
+        "pos": {
+          "x": 380.0,
+          "y": 200.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#29",
+        "pos": {
+          "x": 416.0,
+          "y": 195.0
+        },
+        "params": "YOVR"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#23",
+        "pos": {
+          "x": 60.0,
+          "y": 172.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#35",
+        "pos": {
+          "x": 300.0,
+          "y": 122.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#4",
+        "pos": {
+          "x": 170.0,
+          "y": 127.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 360.0,
+          "y": 125.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 215.0,
+          "y": 340.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#3",
+        "pos": {
+          "x": 55.0,
+          "y": 122.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 370.0,
+          "y": 175.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#34",
+        "pos": {
+          "x": 300.0,
+          "y": 92.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#2",
+        "pos": {
+          "x": 170.0,
+          "y": 112.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#44",
+        "pos": {
+          "x": 270.0,
+          "y": 90.0
+        },
+        "params": "YZ"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#32",
+        "pos": {
+          "x": 390.0,
+          "y": 315.0
+        },
+        "params": "SIOn"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#6",
+        "pos": {
+          "x": 170.0,
+          "y": 157.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#39",
+        "pos": {
+          "x": 110.0,
+          "y": 370.0
+        },
+        "params": "SIO0"
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#6",
+        "pos": {
+          "x": 365.0,
+          "y": 370.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#41",
+        "pos": {
+          "x": 110.0,
+          "y": 330.0
+        },
+        "params": "QIOn"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 185.0,
+          "y": 365.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#10",
+        "pos": {
+          "x": 35.0,
+          "y": 120.0
+        },
+        "params": "I0"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#15",
+        "pos": {
+          "x": 140.0,
+          "y": 317.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#20",
+        "pos": {
+          "x": 140.0,
+          "y": 302.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#17",
+        "pos": {
+          "x": 140.0,
+          "y": 387.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#10",
+        "pos": {
+          "x": 160.0,
+          "y": 247.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#11",
+        "pos": {
+          "x": 160.0,
+          "y": 217.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#35",
+        "pos": {
+          "x": 390.0,
+          "y": 385.0
+        },
+        "params": "QIO0"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#30",
+        "pos": {
+          "x": 390.0,
+          "y": 240.0
+        },
+        "params": "CT"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#40",
+        "pos": {
+          "x": 110.0,
+          "y": 315.0
+        },
+        "params": "SIOn"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#12",
+        "pos": {
+          "x": 35.0,
+          "y": 140.0
+        },
+        "params": "I2"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#18",
+        "pos": {
+          "x": 140.0,
+          "y": 372.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#5",
+        "pos": {
+          "x": 170.0,
+          "y": 142.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#8",
+        "pos": {
+          "x": 155.0,
+          "y": 187.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#15",
+        "pos": {
+          "x": 40.0,
+          "y": 150.0
+        },
+        "params": "I3"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#6",
+        "pos": {
+          "x": 335.0,
+          "y": 120.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#43",
+        "pos": {
+          "x": 270.0,
+          "y": 120.0
+        },
+        "params": "YN"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#29",
+        "pos": {
+          "x": 55.0,
+          "y": 222.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#1",
+        "pos": {
+          "x": 175.0,
+          "y": 330.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#45",
+        "pos": {
+          "x": 270.0,
+          "y": 105.0
+        },
+        "params": "YC"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#17",
+        "pos": {
+          "x": 35.0,
+          "y": 180.0
+        },
+        "params": "I6"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 365.0,
+          "y": 160.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#11",
+        "pos": {
+          "x": 35.0,
+          "y": 240.0
+        },
+        "params": "I12"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#7",
+        "pos": {
+          "x": 335.0,
+          "y": 135.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#3",
+        "pos": {
+          "x": 140.0,
+          "y": 155.0
+        },
+        "params": "IOVR"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#36",
+        "pos": {
+          "x": 30.0,
+          "y": 300.0
+        },
+        "params": "enable S/QIOn input"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#19",
+        "pos": {
+          "x": 35.0,
+          "y": 200.0
+        },
+        "params": "I8"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 360.0,
+          "y": 110.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#22",
+        "pos": {
+          "x": 60.0,
+          "y": 152.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#47",
+        "pos": {
+          "x": 145.0,
+          "y": 270.0
+        },
+        "params": "_SE"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#9",
+        "pos": {
+          "x": 160.0,
+          "y": 232.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#9",
+        "pos": {
+          "x": 125.0,
+          "y": 245.0
+        },
+        "params": "_EOVR"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#28",
+        "pos": {
+          "x": 416.0,
+          "y": 180.0
+        },
+        "params": "YN"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#12",
+        "pos": {
+          "x": 160.0,
+          "y": 202.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#27",
+        "pos": {
+          "x": 416.0,
+          "y": 165.0
+        },
+        "params": "YC"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#32",
+        "pos": {
+          "x": 300.0,
+          "y": 107.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#33",
+        "pos": {
+          "x": 300.0,
+          "y": 137.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#37",
+        "pos": {
+          "x": 165.0,
+          "y": 270.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#4",
+        "pos": {
+          "x": 115.0,
+          "y": 170.0
+        },
+        "params": "_CEM"
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#9",
+        "pos": {
+          "x": 365.0,
+          "y": 315.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#0",
+        "pos": {
+          "x": 255.0,
+          "y": 152.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#21",
+        "pos": {
+          "x": 35.0,
+          "y": 220.0
+        },
+        "params": "I10"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#1",
+        "pos": {
+          "x": 170.0,
+          "y": 82.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#16",
+        "pos": {
+          "x": 140.0,
+          "y": 332.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#46",
+        "pos": {
+          "x": 220.0,
+          "y": 75.0
+        },
+        "params": "enable Y input"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#30",
+        "pos": {
+          "x": 60.0,
+          "y": 212.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#0",
+        "pos": {
+          "x": 140.0,
+          "y": 110.0
+        },
+        "params": "IZ"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#14",
+        "pos": {
+          "x": 165.0,
+          "y": 287.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#8",
+        "pos": {
+          "x": 365.0,
+          "y": 330.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#5",
+        "pos": {
+          "x": 115.0,
+          "y": 185.0
+        },
+        "params": "_CEmu"
+      },
+      {
+        "id": "GUIAm2904",
+        "name": "Am2904",
+        "pos": {
+          "x": 220.0,
+          "y": 175.0
+        }
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#7",
+        "pos": {
+          "x": 155.0,
+          "y": 172.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#5",
+        "pos": {
+          "x": 365.0,
+          "y": 275.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#18",
+        "pos": {
+          "x": 40.0,
+          "y": 190.0
+        },
+        "params": "I7"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#37",
+        "pos": {
+          "x": 30.0,
+          "y": 355.0
+        },
+        "params": "enable S/QIO0 input"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#13",
+        "pos": {
+          "x": 40.0,
+          "y": 170.0
+        },
+        "params": "I5"
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 210.0,
+          "y": 325.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#22",
+        "pos": {
+          "x": 40.0,
+          "y": 230.0
+        },
+        "params": "I11"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#19",
+        "pos": {
+          "x": 140.0,
+          "y": 357.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#7",
+        "pos": {
+          "x": 125.0,
+          "y": 215.0
+        },
+        "params": "_EC"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
+        "pos": {
+          "x": 335.0,
+          "y": 90.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 360.0,
+          "y": 390.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#4",
+        "pos": {
+          "x": 365.0,
+          "y": 240.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#25",
+        "pos": {
+          "x": 225.0,
+          "y": 150.0
+        },
+        "params": "_OEY"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#31",
+        "pos": {
+          "x": 390.0,
+          "y": 275.0
+        },
+        "params": "C0"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#28",
+        "pos": {
+          "x": 55.0,
+          "y": 202.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
+        "pos": {
+          "x": 175.0,
+          "y": 385.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#23",
+        "pos": {
+          "x": 145.0,
+          "y": 285.0
+        },
+        "params": "CX"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#21",
+        "pos": {
+          "x": 55.0,
+          "y": 142.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#26",
+        "pos": {
+          "x": 416.0,
+          "y": 150.0
+        },
+        "params": "YZ"
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
+        "pos": {
+          "x": 391.0,
+          "y": 150.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#20",
+        "pos": {
+          "x": 40.0,
+          "y": 210.0
+        },
+        "params": "I9"
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
+        "pos": {
+          "x": 391.0,
+          "y": 195.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
+        "pos": {
+          "x": 391.0,
+          "y": 165.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#34",
+        "pos": {
+          "x": 390.0,
+          "y": 370.0
+        },
+        "params": "SIO0"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#38",
+        "pos": {
+          "x": 110.0,
+          "y": 385.0
+        },
+        "params": "QIO0"
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#27",
+        "pos": {
+          "x": 60.0,
+          "y": 232.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#24",
+        "pos": {
+          "x": 150.0,
+          "y": 80.0
+        },
+        "params": "C"
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 175.0,
+          "y": 315.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#26",
+        "pos": {
+          "x": 60.0,
+          "y": 192.5
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#2",
+        "pos": {
+          "x": 140.0,
+          "y": 140.0
+        },
+        "params": "IN"
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#7",
+        "pos": {
+          "x": 365.0,
+          "y": 385.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#38",
+        "pos": {
+          "x": 385.0,
+          "y": 220.0
+        },
+        "params": 1
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#33",
+        "pos": {
+          "x": 390.0,
+          "y": 330.0
+        },
+        "params": "QIOn"
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#20",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#62",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "QIO0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#6",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#64",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#42",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#16",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 310.0
+          },
+          {
+            "x": 200.0,
+            "y": 335.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#21",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 100.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "_CEmu"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 205.0
+          },
+          {
+            "x": 185.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "YN"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 375.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "IOVR"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 200.0
+          },
+          {
+            "x": 195.0,
+            "y": 165.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#6",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#70",
+        "path": [
+          {
+            "x": 375.0,
+            "y": 130.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#36",
+          "pinName": ""
+        },
+        "name": "unnamedWire#60",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#38",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "_OECT"
+        },
+        "name": "unnamedWire#75",
+        "path": [
+          {
+            "x": 410.0,
+            "y": 230.0
+          },
+          {
+            "x": 410.0,
+            "y": 215.0
+          },
+          {
+            "x": 345.0,
+            "y": 215.0
+          },
+          {
+            "x": 345.0,
+            "y": 225.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "OUT"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I8"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#28",
+          "pinName": ""
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#26",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I7"
+        },
+        "name": "unnamedWire#48",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 380.0,
+            "y": 205.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 150.0
+          },
+          {
+            "x": 200.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#35",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#6",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#56",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#31",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I12"
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "_OEY"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 160.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "IN"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#33",
+          "pinName": ""
+        },
+        "name": "unnamedWire#55",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#14",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "Cx"
+        },
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 295.0
+          },
+          {
+            "x": 200.0,
+            "y": 285.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "_SE"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#37",
+          "pinName": ""
+        },
+        "name": "unnamedWire#74",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 260.0
+          },
+          {
+            "x": 215.0,
+            "y": 280.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "EN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#65",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 140.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "IN"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#17",
+          "pinName": ""
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#23",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#50",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I6"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#25",
+          "pinName": ""
+        },
+        "name": "unnamedWire#49",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "_EOVR"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 220.0
+          },
+          {
+            "x": 205.0,
+            "y": 255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "SIOn"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "YC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#68",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 190.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIBitDisplay#8",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 350.0,
+            "y": 340.0
+          },
+          {
+            "x": 350.0,
+            "y": 380.0
+          },
+          {
+            "x": 215.0,
+            "y": 380.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "C"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 90.0
+          },
+          {
+            "x": 215.0,
+            "y": 180.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "YOVR"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "C0"
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#30",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I9"
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "_CEM"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 180.0
+          },
+          {
+            "x": 190.0,
+            "y": 205.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "IC"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 190.0
+          },
+          {
+            "x": 205.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "YZ"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 365.0
+          },
+          {
+            "x": 200.0,
+            "y": 390.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "IZ"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 120.0
+          },
+          {
+            "x": 210.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#63",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 380.0
+          },
+          {
+            "x": 210.0,
+            "y": 385.0
+          },
+          {
+            "x": 355.0,
+            "y": 385.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#25",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#69",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 115.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "SIO0"
+        },
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 295.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "_EN"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 240.0
+          },
+          {
+            "x": 200.0,
+            "y": 215.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I10"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#29",
+          "pinName": ""
+        },
+        "name": "unnamedWire#45",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "_EZ"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#24",
+          "pinName": ""
+        },
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "QIOn"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 305.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 375.0
+          },
+          {
+            "x": 345.0,
+            "y": 375.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#66",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#54",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#21",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "O"
+        },
+        "pin2": {
+          "compName": "Am2904",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 190.0
+          },
+          {
+            "x": 105.0,
+            "y": 265.0
+          },
+          {
+            "x": 210.0,
+            "y": 265.0
+          },
+          {
+            "x": 210.0,
+            "y": 235.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#32",
+          "pinName": ""
+        },
+        "name": "unnamedWire#57",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 380.0,
+            "y": 145.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#71",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "_EC"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 215.0
+          },
+          {
+            "x": 195.0,
+            "y": 225.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
+        },
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 390.0
+          },
+          {
+            "x": 210.0,
+            "y": 395.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "CT"
+        },
+        "pin2": {
+          "compName": "GUIBitDisplay#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 345.0,
+            "y": 235.0
+          },
+          {
+            "x": 345.0,
+            "y": 250.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIBitDisplay#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#39",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIMerger#0",
+          "pinName": "I11"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#27",
+          "pinName": ""
+        },
+        "name": "unnamedWire#44",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#34",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#58",
+        "path": []
+      }
+    ],
+    "version": "0.1.1"
+  },
+  "symbolRendererSnippetID": "default",
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.4"
+}
\ No newline at end of file
index 318840b..dd1723b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 120.0,
   "height": 178.0,
@@ -19,14 +18,6 @@ mograsim version: 0.1.3
       "name": "_CEM",
       "logicWidth": 1
     },
-    {
-      "location": {
-        "x": 120.0,
-        "y": 11.0
-      },
-      "name": "YZ",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
@@ -35,22 +26,6 @@ mograsim version: 0.1.3
       "name": "C",
       "logicWidth": 1
     },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 20.0
-      },
-      "name": "IN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 61.0,
-        "y": 0.0
-      },
-      "name": "_OEY",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
@@ -85,82 +60,130 @@ mograsim version: 0.1.3
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 118.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "SIO0",
+      "name": "_EZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 110.0
       },
-      "name": "IZ",
+      "name": "Cx",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 120.0,
-        "y": 60.0
+        "y": 21.0
       },
-      "name": "CT",
+      "name": "YN",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 15.0
       },
-      "name": "QIOn",
+      "name": "IC",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 42.0
       },
-      "name": "SIOn",
+      "name": "_EOVR",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 11.0
+      },
+      "name": "YZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 20.0
       },
-      "name": "_CEmu",
+      "name": "IN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 61.0,
+        "y": 0.0
+      },
+      "name": "_OEY",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 83.0
       },
-      "name": "_EZ",
+      "name": "_SE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 118.0
+      },
+      "name": "SIO0",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
+      "name": "IZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 60.0
       },
-      "name": "YN",
+      "name": "CT",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
+      "name": "QIOn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 119.0
+      },
+      "name": "SIOn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 33.0
+      },
+      "name": "_CEmu",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 51.0
+      },
+      "name": "_OECT",
       "logicWidth": 1
     },
     {
@@ -186,27 +209,44 @@ mograsim version: 0.1.3
       },
       "name": "_EC",
       "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 42.0
-      },
-      "name": "_EOVR",
-      "logicWidth": 1
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": 4
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 340.0,
+          "y": 120.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#21",
+        "pos": {
+          "x": 250.0,
+          "y": 820.0
+        }
+      },
+      {
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
+        "pos": {
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -219,21 +259,21 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 440.0,
+          "y": 385.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -245,149 +285,123 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
-        "pos": {
-          "x": 360.0,
-          "y": 495.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 285.0,
+          "y": 320.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 35.0,
-          "y": 595.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 315.0,
+          "y": 505.0
         }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 530.0,
-          "y": 170.0
-        },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
+          "x": 225.0,
+          "y": 340.0
         }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#1",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 10.0,
-          "y": 650.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 70.0
+        },
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 250.0,
+          "y": 540.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
+          "x": 415.0,
+          "y": 465.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
+          "x": 205.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 470.0,
-          "y": 160.0
+          "x": 190.0,
+          "y": 460.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "GUISplitter",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 370.0,
-          "y": 130.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 150.0,
+          "y": 160.0
+        },
+        "params": 1
       },
       {
         "id": "GUInot4",
@@ -398,97 +412,123 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 25.0,
-          "y": 355.0
+          "x": 550.0,
+          "y": 570.0
         },
-        "params": 2
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#3",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 510.0,
-          "y": 165.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 300.0,
-          "y": 310.0
+          "x": 270.0,
+          "y": 250.0
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 420.0,
+          "y": 325.0
         },
         "params": 4
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 255.0,
+          "y": 265.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
+        "pos": {
+          "x": 50.0,
+          "y": 240.0
         }
       },
       {
         "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "name": "GUIMerger#3",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 510.0,
+          "y": 165.0
         },
-        "params": 5
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
+        "id": "GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 480.0,
-          "y": 305.0
-        }
+          "x": 420.0,
+          "y": 410.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 6
+        "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 540.0,
-          "y": 295.0
+          "x": 560.0,
+          "y": 595.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 195.0,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 10.0,
+          "y": 245.0
+        },
+        "params": 13
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 215.0,
+          "y": 180.0
         },
         "params": 1
       },
@@ -502,296 +542,318 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 225.0,
-          "y": 155.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
+          "x": 530.0,
+          "y": 200.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 585.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 300.0,
-          "y": 715.0
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
+        "pos": {
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "GUISplitter",
+        "name": "GUISplitter#14",
         "pos": {
-          "x": 120.0,
+          "x": 90.0,
           "y": 720.0
-        }
+        },
+        "params": 3
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "id": "GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
-        }
+          "x": 555.0,
+          "y": 80.0
+        },
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 450.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 120.0,
-          "y": 545.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 240.0,
+          "y": 475.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "GUISplitter",
+        "name": "GUISplitter#13",
         "pos": {
-          "x": 285.0,
+          "x": 265.0,
           "y": 725.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUIMerger",
+        "name": "GUIMerger#2",
         "pos": {
-          "x": 470.0,
-          "y": 385.0
+          "x": 15.0,
+          "y": 65.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 225.0,
+          "y": 95.0
+        }
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#8",
         "pos": {
-          "x": 45.0,
-          "y": 580.0
+          "x": 420.0,
+          "y": 365.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 470.0,
-          "y": 350.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
-        },
-        "params": 3
+          "x": 300.0,
+          "y": 715.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 25.0,
+          "y": 355.0
         },
         "params": 2
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 335.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#13",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 265.0,
-          "y": 725.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 3
+        "params": 6
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 445.0,
-          "y": 410.0
-        },
-        "params": 4
+          "x": 450.0,
+          "y": 310.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#1",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
+          "x": 10.0,
+          "y": 650.0
         },
-        "params": 3
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 530.0,
+          "y": 100.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 225.0,
+          "y": 155.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 295.0,
+          "y": 120.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
+          "x": 395.0,
+          "y": 195.0
         },
-        "params": 1
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 395.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
-        },
-        "params": 1
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
-        },
-        "params": 4
+          "x": 435.0,
+          "y": 655.0
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 440.0,
+          "y": 345.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 530.0,
-          "y": 100.0
+          "x": 360.0,
+          "y": 495.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUISplitter",
+        "name": "GUISplitter#15",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 120.0,
+          "y": 455.0
         },
-        "params": 1
+        "params": 2
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
@@ -805,354 +867,427 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 215.0,
-          "y": 160.0
+          "x": 205.0,
+          "y": 30.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "GUISplitter",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 395.0,
+          "y": 225.0
+        },
+        "params": 4
       },
       {
         "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
-        }
+          "x": 560.0,
+          "y": 150.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
-        }
+          "x": 225.0,
+          "y": 215.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 415.0,
-          "y": 465.0
-        }
+          "x": 35.0,
+          "y": 595.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 520.0,
+          "y": 190.0
+        },
+        "params": 4
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 60.0,
-          "y": 570.0
+          "x": 205.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 380.0,
+          "y": 125.0
         }
       },
       {
         "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
+          "x": 365.0,
+          "y": 485.0
         }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 500.0,
-          "y": 360.0
-        }
+          "x": 285.0,
+          "y": 755.0
+        },
+        "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
+          "x": 540.0,
+          "y": 265.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 225.0,
-          "y": 215.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
-        },
-        "params": 4
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
-        },
-        "params": 4
+          "x": 135.0,
+          "y": 470.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
-        },
-        "params": 4
+          "x": 415.0,
+          "y": 210.0
+        }
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 2
+        "params": 3
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 555.0,
-          "y": 80.0
+          "x": 180.0,
+          "y": 135.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#8",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
         "pos": {
-          "x": 445.0,
-          "y": 370.0
-        },
-        "params": 4
+          "x": 120.0,
+          "y": 720.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 445.0,
-          "y": 330.0
+          "x": 535.0,
+          "y": 165.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
+          "x": 25.0,
+          "y": 305.0
         },
-        "params": 3
+        "params": 5
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 85.0,
+          "y": 590.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 330.0,
+          "y": 640.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
+        },
+        "name": "unnamedWire#100",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#172",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#170",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
+        },
+        "name": "unnamedWire#202",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "params": 13
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
-        "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
+        },
+        "name": "unnamedWire#119",
+        "path": []
       },
-      {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
-        "pos": {
-          "x": 50.0,
-          "y": 360.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#198",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I110"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
@@ -1169,158 +1304,158 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
+          "compName": "GUISplitter#4",
           "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#172",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#170",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
@@ -1332,307 +1467,304 @@ mograsim version: 0.1.3
           "compName": "DeserializedSubmodelComponent#15",
           "pinName": "I10"
         },
-        "name": "unnamedWire#171",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
-        },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#163",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 395.0
+          },
+          {
+            "x": 40.0,
+            "y": 325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
           "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
@@ -1649,2198 +1781,2193 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
+        },
+        "name": "unnamedWire#234",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#59",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUISplitter#6",
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
+          "compName": "GUISplitter#12",
           "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "SIO0"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#159",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#220",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#18",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
+          "compName": "GUISplitter#1",
           "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
+        "name": "unnamedWire#157",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
+        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#156",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#222",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#214",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "LSHIFT"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#217",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#216",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 50.0
-          },
-          {
-            "x": 5.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#225",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#205",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#151",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#9",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "O"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#142",
-        "path": []
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "GUINandGate#9",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "pinName": "muSR_CINV"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#168",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
+          "compName": "DeserializedSubmodelComponent#17",
           "pinName": "I0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#167",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#85",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
+          "compName": "DeserializedSubmodelComponent#12",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "DeserializedSubmodelComponent#13",
           "pinName": "I1"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
+          "compName": "GUISplitter#11",
           "pinName": "I"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#166",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#134",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#99",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
+          "compName": "DeserializedSubmodelComponent#17",
           "pinName": "S0"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#82",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3855,5 +3982,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.4"
 }
\ No newline at end of file
index 3296f39..4a24464 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
@@ -100,62 +99,78 @@ mograsim version: 0.1.3
       "logicWidth": 1
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 89.0,
-          "y": 104.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 194.0,
-          "y": 234.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 110.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 319.0,
-          "y": 104.0
+          "x": 84.0,
+          "y": 344.0
         },
         "params": 1
       },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
+        "pos": {
+          "x": 5.0,
+          "y": 35.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 74.0,
+          "y": 314.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 5.0,
-          "y": 295.0
+          "x": 424.0,
+          "y": 194.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "GUISplitter",
@@ -177,64 +192,103 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 414.0,
-          "y": 174.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 29.0,
-          "y": 284.0
+          "x": 89.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 5.0,
-          "y": 35.0
+          "x": 19.0,
+          "y": 294.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
+          "x": 200.0,
+          "y": 230.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
+        "pos": {
+          "x": 325.0,
+          "y": 290.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 150.0,
+          "y": 280.0
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
+          "x": 29.0,
+          "y": 284.0
         },
         "params": 1
       },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#3",
+        "pos": {
+          "x": 100.0,
+          "y": 330.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#4",
+        "pos": {
+          "x": 110.0,
+          "y": 60.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 414.0,
+          "y": 174.0
         },
         "params": 1
       },
@@ -258,38 +312,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 49.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 74.0,
-          "y": 314.0
+          "x": 89.0,
+          "y": 104.0
         },
         "params": 1
       },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 35.0,
-          "y": 250.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#10",
@@ -299,70 +328,48 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 110.0
-        }
-      },
-      {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 100.0,
-          "y": 330.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 19.0,
+          "x": 319.0,
           "y": 294.0
         },
         "params": 1
       },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 150.0,
-          "y": 280.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 89.0,
-          "y": 94.0
+          "x": 49.0,
+          "y": 114.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 319.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 110.0,
-          "y": 60.0
-        }
+          "x": 194.0,
+          "y": 234.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
+          "x": 380.0,
+          "y": 85.0
         }
       },
       {
@@ -374,367 +381,347 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 5.0,
+          "y": 295.0
         },
         "params": 4
-      },
-      {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
-        "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
+            "x": 35.0,
+            "y": 35.0
           },
           {
-            "x": 90.0,
-            "y": 355.0
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
-        "path": [
-          {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "I0_3"
         },
-        "name": "unnamedWire#79",
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
+            "x": 75.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 430.0,
-            "y": 395.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 95.0,
-            "y": 395.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#39",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#81",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 65.0
-          },
-          {
-            "x": 215.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y2"
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 205.0
-          },
-          {
-            "x": 210.0,
-            "y": 75.0
-          }
-        ]
+        "name": "unnamedWire#46",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": []
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 435.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 425.0,
+            "y": 390.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#4",
           "pinName": "I0_2"
         },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 275.0,
-            "y": 295.0
+            "x": 140.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 305.0,
-            "y": 195.0
+            "x": 420.0,
+            "y": 385.0
           },
           {
-            "x": 305.0,
-            "y": 305.0
+            "x": 85.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
+            "x": 275.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 320.0,
-            "y": 315.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 305.0
+          },
+          {
+            "x": 25.0,
+            "y": 265.0
           }
         ]
       },
@@ -752,275 +739,281 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_1"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#88",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_2"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 55.0
+          },
+          {
+            "x": 25.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 320.0,
-            "y": 95.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 355.0,
-            "y": 30.0
-          },
-          {
-            "x": 355.0,
-            "y": 215.0
+            "x": 90.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 280.0
-          },
-          {
-            "x": 340.0,
-            "y": 280.0
-          },
-          {
-            "x": 340.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 415.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1036,331 +1029,306 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 75.0
-          }
-        ]
+        "name": "unnamedWire#38",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
-          },
-          {
-            "x": 35.0,
-            "y": 125.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
+            "x": 60.0,
+            "y": 425.0
           },
           {
-            "x": 365.0,
-            "y": 20.0
+            "x": 60.0,
+            "y": 415.0
           },
           {
-            "x": 365.0,
-            "y": 90.0
+            "x": 30.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 430.0,
+            "y": 395.0
           },
           {
-            "x": 360.0,
-            "y": 205.0
+            "x": 95.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUISplitter#1",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 355.0,
+            "y": 30.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 355.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 135.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 375.0,
+            "y": 325.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 105.0,
+            "y": 235.0
+          },
+          {
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#70",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 215.0
+          },
+          {
+            "x": 295.0,
+            "y": 255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#39",
         "path": [
-          {
-            "x": 75.0,
-            "y": 265.0
+          {
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
@@ -1378,139 +1346,144 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#85",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#62",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 325.0
-          },
-          {
-            "x": 80.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 95.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 195.0,
-            "y": 435.0
+            "x": 215.0,
+            "y": 65.0
+          },
+          {
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "B"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 25.0,
-            "y": 305.0
+            "x": 55.0,
+            "y": 15.0
           },
           {
-            "x": 25.0,
-            "y": 265.0
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1526,84 +1499,128 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
+            "x": 255.0,
+            "y": 25.0
           },
           {
-            "x": 105.0,
-            "y": 65.0
+            "x": 360.0,
+            "y": 25.0
+          },
+          {
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
+        },
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 60.0,
-            "y": 425.0
+            "x": 420.0,
+            "y": 90.0
           },
           {
-            "x": 60.0,
-            "y": 415.0
+            "x": 420.0,
+            "y": 110.0
           },
           {
-            "x": 30.0,
-            "y": 415.0
+            "x": 365.0,
+            "y": 110.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#58",
         "path": []
       },
       {
@@ -1620,263 +1637,258 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#71",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 245.0
+          },
+          {
+            "x": 300.0,
+            "y": 205.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 295.0,
-            "y": 215.0
-          },
-          {
-            "x": 295.0,
-            "y": 255.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 420.0,
-            "y": 90.0
-          },
-          {
-            "x": 420.0,
-            "y": 110.0
-          },
-          {
-            "x": 365.0,
-            "y": 110.0
+            "x": 20.0,
+            "y": 155.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 20.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#74",
-        "path": []
+        "name": "unnamedWire#62",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#87",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 305.0,
+            "y": 195.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 305.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y2"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#34",
-        "path": [
-          {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#8",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1891,5 +1903,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.4"
 }
\ No newline at end of file
index f0f1818..dc3c479 100644 (file)
@@ -47,7 +47,6 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                // 110: Swap OVR and C
                // 111: _M
                addPin(new Pin(this, "MSR_MUX", 3, 20, 0), Usage.OUTPUT, Position.BOTTOM);
-               // TODO when is this HIGH?
                addPin(new Pin(this, "OEN", 1, 60, 0), Usage.OUTPUT, Position.BOTTOM);
                // Y MUX:
                // 00: mu
@@ -101,7 +100,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                {
                case 0:
                case 2:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ONE);
@@ -110,7 +109,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("muSR_WEOVR").feedSignals(ONE);
                        break;
                case 1:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ONE);
@@ -147,7 +146,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO);
                        break;
                case 9:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ONE);
@@ -165,7 +164,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO);
                        break;
                case 11:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ZERO);
@@ -183,7 +182,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("muSR_WEOVR").feedSignals(ZERO);
                        break;
                case 13:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ZERO);
@@ -201,7 +200,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("muSR_WEOVR").feedSignals(ONE);
                        break;
                case 15:
-                       readWriteEnds.get("muSR_MUX").feedSignals(ONE, ZERO);
+                       readWriteEnds.get("muSR_MUX").feedSignals(ZERO, ONE);
                        readWriteEnds.get("muSR_OVRRET").feedSignals(ZERO);
                        readWriteEnds.get("muSR_CINV").feedSignals(ZERO);
                        readWriteEnds.get("muSR_WEZ").feedSignals(ZERO);
@@ -235,10 +234,10 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                switch (IAsInt)
                {
                case 0:
-                       readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ZERO);
+                       readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ONE);
                        break;
                case 1:
-                       readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ZERO);
+                       readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ONE);
                        break;
                case 2:
                        readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ZERO);
@@ -247,7 +246,7 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ZERO);
                        break;
                case 4:
-                       readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ONE, ONE);
+                       readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ZERO);
                        break;
                case 5:
                        readWriteEnds.get("MSR_MUX").feedSignals(ONE, ONE, ONE);
@@ -263,9 +262,10 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                        readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ONE);
                        break;
                default:
-                       readWriteEnds.get("MSR_MUX").feedSignals(ZERO, ZERO, ONE);
+                       readWriteEnds.get("MSR_MUX").feedSignals(ONE, ZERO, ZERO);
                        break;
                }
+               readWriteEnds.get("OEN").feedSignals(I5_0Bits[0].or(I5_0Bits[1]).or(I5_0Bits[2]).or(I5_0Bits[3]).or(I5_0Bits[4]).or(I5_0Bits[5]));
                readWriteEnds.get("Y_MUX").feedSignals(I5_0Bits[0], I5_0Bits[1]);
                readWriteEnds.get("CT_INV").feedSignals(I5_0Bits[5]);
                readWriteEnds.get("CT_MUX").feedSignals(I5_0Bits[2], I5_0Bits[3], I5_0Bits[4]);
index 0b990db..51b6da0 100644 (file)
@@ -3,6 +3,7 @@ package net.mograsim.logic.model.am2900.components.am2904;
 import static net.mograsim.logic.core.types.Bit.ONE;
 import static net.mograsim.logic.core.types.Bit.U;
 import static net.mograsim.logic.core.types.Bit.X;
+import static net.mograsim.logic.core.types.Bit.Z;
 import static net.mograsim.logic.core.types.Bit.ZERO;
 
 import java.util.Map;
@@ -21,8 +22,9 @@ public class GUIAm2904ShiftInstrDecode extends SimpleRectangularHardcodedGUIComp
        public GUIAm2904ShiftInstrDecode(ViewModelModifiable model, String name)
        {
                super(model, name, "Shift \ninstruction\ndecode");
-               setSize(60, 70);
-               addPin(new Pin(this, "I", 5, 0, 35), Usage.INPUT, Position.RIGHT);
+               setSize(60, 80);
+               addPin(new Pin(this, "I", 5, 0, 25), Usage.INPUT, Position.RIGHT);
+               addPin(new Pin(this, "_SE", 1, 0, 55), Usage.INPUT, Position.RIGHT);
                // SIO0 MUX:
                // 000: 0
                // 001: 1
@@ -54,19 +56,51 @@ public class GUIAm2904ShiftInstrDecode extends SimpleRectangularHardcodedGUIComp
                // 10x: QIO0
                // 11x: MN
                addPin(new Pin(this, "QIOn_MUX", 3, 60, 35), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "LSHIFT", 1, 60, 45), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "OEn", 1, 60, 45), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "OE0", 1, 60, 55), Usage.OUTPUT, Position.LEFT);
                // 00: SIO0
                // 01: QIO0
                // 1x: SIOn
-               addPin(new Pin(this, "MC_MUX", 2, 60, 55), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "MC_EN", 1, 60, 65), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "MC_MUX", 2, 60, 65), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "MC_EN", 1, 60, 75), Usage.OUTPUT, Position.LEFT);
        }
 
        @Override
        protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
+               Bit _SE = readEnds.get("_SE").getValue();
                Bit[] IBits = readEnds.get("I").getValues().getBits();
-               readWriteEnds.get("LSHIFT").feedSignals(IBits[0]);
+               readWriteEnds.get("OEn").feedSignals(IBits[0].not().and(_SE.not()));
+               readWriteEnds.get("OE0").feedSignals(IBits[0].and(_SE.not()));
+               if (_SE == Z || _SE == X)
+               {
+                       readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("MC_MUX").feedSignals(X, X);
+                       readWriteEnds.get("MC_EN").feedSignals(X);
+                       return null;
+               } else if (_SE == U)
+               {
+
+                       readWriteEnds.get("SIO0_MUX").feedSignals(U, U, U);
+                       readWriteEnds.get("SIOn_MUX").feedSignals(U, U, U);
+                       readWriteEnds.get("QIO0_MUX").feedSignals(U, U, U);
+                       readWriteEnds.get("QIOn_MUX").feedSignals(U, U, U);
+                       readWriteEnds.get("MC_MUX").feedSignals(U, U);
+                       readWriteEnds.get("MC_EN").feedSignals(U);
+                       return null;
+               } else if (_SE == ONE)
+               {
+                       readWriteEnds.get("SIO0_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("SIOn_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("QIO0_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("QIOn_MUX").feedSignals(X, X, X);
+                       readWriteEnds.get("MC_MUX").feedSignals(X, X);
+                       readWriteEnds.get("MC_EN").feedSignals(ZERO);
+                       return null;
+               }
                // TODO move the following loop to BitVector.
                int IAsInt = 0;
                for (int i = 0; i < 5; i++)
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2904Testbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2904Testbench.java
new file mode 100644 (file)
index 0000000..a4c4290
--- /dev/null
@@ -0,0 +1,58 @@
+package net.mograsim.logic.model.examples;
+
+import net.haspamelodica.swt.helper.gcs.GeneralGC;
+import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
+import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
+import net.mograsim.logic.model.SimpleLogicUIStandalone;
+import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
+import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
+import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
+import net.mograsim.logic.model.serializing.IdentifierGetter;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.snippets.Renderer;
+
+public class Am2904Testbench
+{
+       public static void main(String[] args)
+       {
+               SimpleLogicUIStandalone.executeVisualisation(Am2904Testbench::create, Am2904Testbench::beforeRun);
+       }
+
+       public static void create(ViewModelModifiable model)
+       {
+               // TODO use _SE in GUIAm2904.json
+               // TODO replace with proper ViewModel deserialization
+               DeserializedSubmodelComponent testbench = (DeserializedSubmodelComponent) IndirectGUIComponentCreator.createComponent(model,
+                               "file:GUIAm2904Testbench.json", "testbench");
+               testbench.setSize(1000, 1000);
+               testbench.setOutlineRenderer(new Renderer()
+               {
+                       @Override
+                       public Object getParamsForSerializing(IdentifierGetter idGetter)
+                       {
+                               return null;
+                       }
+
+                       @Override
+                       public void render(GeneralGC gc, Rectangle visibleRegion)
+                       {
+                               // do nothing
+                       }
+               });
+       }
+
+       public static void beforeRun(VisualisationObjects vis)
+       {
+               ((SubmodelComponent) vis.model.getComponentsByName().get("testbench")).submodel.getComponentsByName().values().forEach(c ->
+               {
+                       if (c instanceof GUIManualSwitch)
+                       {
+                               GUIManualSwitch cCasted = (GUIManualSwitch) c;
+                               cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth));
+                       }
+               });
+       }
+}
\ No newline at end of file
index a9ecc03..132b913 100644 (file)
@@ -1,7 +1,10 @@
 package net.mograsim.logic.model.examples;
 
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
+import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
+import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay;
@@ -13,7 +16,7 @@ public class Am2910Testbench
 {
        public static void main(String[] args)
        {
-               SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create);
+               SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create, Am2910Testbench::beforeRun);
        }
 
        @SuppressWarnings("unused") // for GUIWires being created
@@ -62,4 +65,16 @@ public class Am2910Testbench
                new GUIWire(model, am2910.getPin("Y"), Y.getInputPin(), new Point(38, 72.5));
                new GUIWire(model, am2910.getPin("_OE"), _OE.getOutputPin());
        }
+
+       public static void beforeRun(VisualisationObjects vis)
+       {
+               vis.model.getComponentsByName().values().forEach(c ->
+               {
+                       if (c instanceof GUIManualSwitch)
+                       {
+                               GUIManualSwitch cCasted = (GUIManualSwitch) c;
+                               cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth));
+                       }
+               });
+       }
 }
\ No newline at end of file
index 3a7ffa2..b54713e 100644 (file)
@@ -4,7 +4,10 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 
+import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
+import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.components.atomic.GUIAndGate;
@@ -12,6 +15,7 @@ import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay;
 import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
 import net.mograsim.logic.model.model.components.atomic.GUINotGate;
 import net.mograsim.logic.model.model.components.atomic.TextComponent;
+import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.WireCrossPoint;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
@@ -21,7 +25,7 @@ public class Am2901Testbench
 {
        public static void main(String[] args)
        {
-               SimpleLogicUIStandalone.executeVisualisation(Am2901Testbench::createTestbench);
+               SimpleLogicUIStandalone.executeVisualisation(Am2901Testbench::createTestbench, Am2901Testbench::beforeRun);
        }
 
        public static void createTestbench(ViewModelModifiable model)
@@ -99,4 +103,16 @@ public class Am2901Testbench
                        label.moveTo(x + 25, y);
                }
        }
+
+       public static void beforeRun(VisualisationObjects vis)
+       {
+               ((SubmodelComponent) vis.model.getComponentsByName().get("testbench")).submodel.getComponentsByName().values().forEach(c ->
+               {
+                       if (c instanceof GUIManualSwitch)
+                       {
+                               GUIManualSwitch cCasted = (GUIManualSwitch) c;
+                               cCasted.setHighLevelState("out", BitVector.of(Bit.ZERO, cCasted.logicWidth));
+                       }
+               });
+       }
 }
\ No newline at end of file
index 318840b..dd1723b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 120.0,
   "height": 178.0,
@@ -19,14 +18,6 @@ mograsim version: 0.1.3
       "name": "_CEM",
       "logicWidth": 1
     },
-    {
-      "location": {
-        "x": 120.0,
-        "y": 11.0
-      },
-      "name": "YZ",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
@@ -35,22 +26,6 @@ mograsim version: 0.1.3
       "name": "C",
       "logicWidth": 1
     },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 20.0
-      },
-      "name": "IN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 61.0,
-        "y": 0.0
-      },
-      "name": "_OEY",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
@@ -85,82 +60,130 @@ mograsim version: 0.1.3
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 118.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "SIO0",
+      "name": "_EZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 110.0
       },
-      "name": "IZ",
+      "name": "Cx",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 120.0,
-        "y": 60.0
+        "y": 21.0
       },
-      "name": "CT",
+      "name": "YN",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 15.0
       },
-      "name": "QIOn",
+      "name": "IC",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 42.0
       },
-      "name": "SIOn",
+      "name": "_EOVR",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 11.0
+      },
+      "name": "YZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 20.0
       },
-      "name": "_CEmu",
+      "name": "IN",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 61.0,
+        "y": 0.0
+      },
+      "name": "_OEY",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 83.0
       },
-      "name": "_EZ",
+      "name": "_SE",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 118.0
+      },
+      "name": "SIO0",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
+      "name": "IZ",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 60.0
       },
-      "name": "YN",
+      "name": "CT",
       "logicWidth": 1
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
+      "name": "QIOn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 119.0
+      },
+      "name": "SIOn",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 33.0
+      },
+      "name": "_CEmu",
+      "logicWidth": 1
+    },
+    {
+      "location": {
+        "x": 120.0,
+        "y": 51.0
+      },
+      "name": "_OECT",
       "logicWidth": 1
     },
     {
@@ -186,27 +209,44 @@ mograsim version: 0.1.3
       },
       "name": "_EC",
       "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 42.0
-      },
-      "name": "_EOVR",
-      "logicWidth": 1
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": 4
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 340.0,
+          "y": 120.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#21",
+        "pos": {
+          "x": 250.0,
+          "y": 820.0
+        }
+      },
+      {
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
+        "pos": {
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -219,21 +259,21 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 440.0,
+          "y": 385.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -245,149 +285,123 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
-        "pos": {
-          "x": 360.0,
-          "y": 495.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 285.0,
+          "y": 320.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 35.0,
-          "y": 595.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 315.0,
+          "y": 505.0
         }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 530.0,
-          "y": 170.0
-        },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
+          "x": 225.0,
+          "y": 340.0
         }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#1",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 10.0,
-          "y": 650.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 70.0
+        },
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 250.0,
+          "y": 540.0
         },
         "params": 1
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
+          "x": 415.0,
+          "y": 465.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
+          "x": 205.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 470.0,
-          "y": 160.0
+          "x": 190.0,
+          "y": 460.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "GUISplitter",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 370.0,
-          "y": 130.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 150.0,
+          "y": 160.0
+        },
+        "params": 1
       },
       {
         "id": "GUInot4",
@@ -398,97 +412,123 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 25.0,
-          "y": 355.0
+          "x": 550.0,
+          "y": 570.0
         },
-        "params": 2
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#3",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 510.0,
-          "y": 165.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 300.0,
-          "y": 310.0
+          "x": 270.0,
+          "y": 250.0
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 420.0,
+          "y": 325.0
         },
         "params": 4
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 255.0,
+          "y": 265.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
+        "pos": {
+          "x": 50.0,
+          "y": 240.0
         }
       },
       {
         "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "name": "GUIMerger#3",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 510.0,
+          "y": 165.0
         },
-        "params": 5
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
+        "id": "GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 480.0,
-          "y": 305.0
-        }
+          "x": 420.0,
+          "y": 410.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 6
+        "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 540.0,
-          "y": 295.0
+          "x": 560.0,
+          "y": 595.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 195.0,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 10.0,
+          "y": 245.0
+        },
+        "params": 13
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 215.0,
+          "y": 180.0
         },
         "params": 1
       },
@@ -502,296 +542,318 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 225.0,
-          "y": 155.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
+          "x": 530.0,
+          "y": 200.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 585.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 300.0,
-          "y": 715.0
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
+        "pos": {
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "GUISplitter",
+        "name": "GUISplitter#14",
         "pos": {
-          "x": 120.0,
+          "x": 90.0,
           "y": 720.0
-        }
+        },
+        "params": 3
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "id": "GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
-        }
+          "x": 555.0,
+          "y": 80.0
+        },
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 450.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 120.0,
-          "y": 545.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "id": "GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 240.0,
+          "y": 475.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "GUISplitter",
+        "name": "GUISplitter#13",
         "pos": {
-          "x": 285.0,
+          "x": 265.0,
           "y": 725.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUIMerger",
+        "name": "GUIMerger#2",
         "pos": {
-          "x": 470.0,
-          "y": 385.0
+          "x": 15.0,
+          "y": 65.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 225.0,
+          "y": 95.0
+        }
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#8",
         "pos": {
-          "x": 45.0,
-          "y": 580.0
+          "x": 420.0,
+          "y": 365.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 470.0,
-          "y": 350.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
-        },
-        "params": 3
+          "x": 300.0,
+          "y": 715.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 25.0,
+          "y": 355.0
         },
         "params": 2
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 335.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#13",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 265.0,
-          "y": 725.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 3
+        "params": 6
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 445.0,
-          "y": 410.0
-        },
-        "params": 4
+          "x": 450.0,
+          "y": 310.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#1",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
+          "x": 10.0,
+          "y": 650.0
         },
-        "params": 3
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 530.0,
+          "y": 100.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 225.0,
+          "y": 155.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 295.0,
+          "y": 120.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
+          "x": 395.0,
+          "y": 195.0
         },
-        "params": 1
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 395.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
-        },
-        "params": 1
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
-        },
-        "params": 4
+          "x": 435.0,
+          "y": 655.0
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 440.0,
+          "y": 345.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 530.0,
-          "y": 100.0
+          "x": 360.0,
+          "y": 495.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUISplitter",
+        "name": "GUISplitter#15",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 120.0,
+          "y": 455.0
         },
-        "params": 1
+        "params": 2
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
@@ -805,354 +867,427 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 215.0,
-          "y": 160.0
+          "x": 205.0,
+          "y": 30.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "GUISplitter",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 395.0,
+          "y": 225.0
+        },
+        "params": 4
       },
       {
         "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
-        }
+          "x": 560.0,
+          "y": 150.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
-        }
+          "x": 225.0,
+          "y": 215.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 415.0,
-          "y": 465.0
-        }
+          "x": 35.0,
+          "y": 595.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 520.0,
+          "y": 190.0
+        },
+        "params": 4
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 60.0,
-          "y": 570.0
+          "x": 205.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 380.0,
+          "y": 125.0
         }
       },
       {
         "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
+          "x": 365.0,
+          "y": 485.0
         }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 500.0,
-          "y": 360.0
-        }
+          "x": 285.0,
+          "y": 755.0
+        },
+        "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
+          "x": 540.0,
+          "y": 265.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 225.0,
-          "y": 215.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
-        },
-        "params": 4
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
-        },
-        "params": 4
+          "x": 135.0,
+          "y": 470.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
-        },
-        "params": 4
+          "x": 415.0,
+          "y": 210.0
+        }
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 2
+        "params": 3
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 555.0,
-          "y": 80.0
+          "x": 180.0,
+          "y": 135.0
         },
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#8",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
         "pos": {
-          "x": 445.0,
-          "y": 370.0
-        },
-        "params": 4
+          "x": 120.0,
+          "y": 720.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 445.0,
-          "y": 330.0
+          "x": 535.0,
+          "y": 165.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
+          "x": 25.0,
+          "y": 305.0
         },
-        "params": 3
+        "params": 5
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 85.0,
+          "y": 590.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 330.0,
+          "y": 640.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
+        },
+        "name": "unnamedWire#100",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#172",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#170",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
+        },
+        "name": "unnamedWire#202",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "params": 13
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
-        "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
+        },
+        "name": "unnamedWire#119",
+        "path": []
       },
-      {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
-        "pos": {
-          "x": 50.0,
-          "y": 360.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#198",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I110"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
@@ -1169,158 +1304,158 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
+          "compName": "GUISplitter#4",
           "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#172",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#170",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
@@ -1332,307 +1467,304 @@ mograsim version: 0.1.3
           "compName": "DeserializedSubmodelComponent#15",
           "pinName": "I10"
         },
-        "name": "unnamedWire#171",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
-        },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#163",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 395.0
+          },
+          {
+            "x": 40.0,
+            "y": 325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
           "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
@@ -1649,2198 +1781,2193 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
+        },
+        "name": "unnamedWire#234",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#59",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUISplitter#6",
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
+          "compName": "GUISplitter#12",
           "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "SIO0"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#159",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#220",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#18",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
+          "compName": "GUISplitter#1",
           "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
+        "name": "unnamedWire#157",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
+        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#156",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#222",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#214",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "LSHIFT"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#217",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#216",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 50.0
-          },
-          {
-            "x": 5.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#225",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUINandGate#9",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#205",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#151",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#9",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "O"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#142",
-        "path": []
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "GUINandGate#9",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "pinName": "muSR_CINV"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#168",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
+          "compName": "DeserializedSubmodelComponent#17",
           "pinName": "I0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#167",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#85",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
+          "compName": "DeserializedSubmodelComponent#12",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "DeserializedSubmodelComponent#13",
           "pinName": "I1"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
+          "compName": "GUISplitter#11",
           "pinName": "I"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#166",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#134",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#99",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
+          "compName": "DeserializedSubmodelComponent#17",
           "pinName": "S0"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#82",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3855,5 +3982,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.4"
 }
\ No newline at end of file
index 3296f39..4a24464 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
@@ -100,62 +99,78 @@ mograsim version: 0.1.3
       "logicWidth": 1
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 89.0,
-          "y": 104.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 194.0,
-          "y": 234.0
-        },
-        "params": 1
+          "x": 55.0,
+          "y": 110.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 319.0,
-          "y": 104.0
+          "x": 84.0,
+          "y": 344.0
         },
         "params": 1
       },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
+        "pos": {
+          "x": 5.0,
+          "y": 35.0
+        },
+        "params": 4
+      },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 74.0,
+          "y": 314.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 5.0,
-          "y": 295.0
+          "x": 424.0,
+          "y": 194.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "GUISplitter",
@@ -177,64 +192,103 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 414.0,
-          "y": 174.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 29.0,
-          "y": 284.0
+          "x": 89.0,
+          "y": 94.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 5.0,
-          "y": 35.0
+          "x": 19.0,
+          "y": 294.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
+          "x": 200.0,
+          "y": 230.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
+        "pos": {
+          "x": 325.0,
+          "y": 290.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 150.0,
+          "y": 280.0
+        }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
+          "x": 29.0,
+          "y": 284.0
         },
         "params": 1
       },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#3",
+        "pos": {
+          "x": 100.0,
+          "y": 330.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#4",
+        "pos": {
+          "x": 110.0,
+          "y": 60.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 414.0,
+          "y": 174.0
         },
         "params": 1
       },
@@ -258,38 +312,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 49.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 74.0,
-          "y": 314.0
+          "x": 89.0,
+          "y": 104.0
         },
         "params": 1
       },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 35.0,
-          "y": 250.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#10",
@@ -299,70 +328,48 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 110.0
-        }
-      },
-      {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 100.0,
-          "y": 330.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 19.0,
+          "x": 319.0,
           "y": 294.0
         },
         "params": 1
       },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 150.0,
-          "y": 280.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 89.0,
-          "y": 94.0
+          "x": 49.0,
+          "y": 114.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 319.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 110.0,
-          "y": 60.0
-        }
+          "x": 194.0,
+          "y": 234.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
+          "x": 380.0,
+          "y": 85.0
         }
       },
       {
@@ -374,367 +381,347 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 5.0,
+          "y": 295.0
         },
         "params": 4
-      },
-      {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
-        "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
+            "x": 35.0,
+            "y": 35.0
           },
           {
-            "x": 90.0,
-            "y": 355.0
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
-        "path": [
-          {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "I0_3"
         },
-        "name": "unnamedWire#79",
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
+            "x": 75.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 430.0,
-            "y": 395.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 95.0,
-            "y": 395.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#39",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#81",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 65.0
-          },
-          {
-            "x": 215.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y2"
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 205.0
-          },
-          {
-            "x": 210.0,
-            "y": 75.0
-          }
-        ]
+        "name": "unnamedWire#46",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": []
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 435.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 425.0,
+            "y": 390.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#4",
           "pinName": "I0_2"
         },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 275.0,
-            "y": 295.0
+            "x": 140.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 415.0
+          },
+          {
+            "x": 255.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 280.0
+          },
+          {
+            "x": 340.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 305.0,
-            "y": 195.0
+            "x": 420.0,
+            "y": 385.0
           },
           {
-            "x": 305.0,
-            "y": 305.0
+            "x": 85.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
+            "x": 275.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 320.0,
-            "y": 315.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 305.0
+          },
+          {
+            "x": 25.0,
+            "y": 265.0
           }
         ]
       },
@@ -752,275 +739,281 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_1"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#88",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_2"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 55.0
+          },
+          {
+            "x": 25.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 320.0,
-            "y": 95.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
+        "name": "unnamedWire#28",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 355.0,
-            "y": 30.0
-          },
-          {
-            "x": 355.0,
-            "y": 215.0
+            "x": 90.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 280.0
-          },
-          {
-            "x": 340.0,
-            "y": 280.0
-          },
-          {
-            "x": 340.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 415.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1036,331 +1029,306 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 75.0
-          }
-        ]
+        "name": "unnamedWire#38",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
-          },
-          {
-            "x": 35.0,
-            "y": 125.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
+            "x": 60.0,
+            "y": 425.0
           },
           {
-            "x": 365.0,
-            "y": 20.0
+            "x": 60.0,
+            "y": 415.0
           },
           {
-            "x": 365.0,
-            "y": 90.0
+            "x": 30.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 430.0,
+            "y": 395.0
           },
           {
-            "x": 360.0,
-            "y": 205.0
+            "x": 95.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUISplitter#1",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 355.0,
+            "y": 30.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 355.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 135.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 375.0,
+            "y": 325.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 105.0,
+            "y": 235.0
+          },
+          {
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#70",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 215.0
+          },
+          {
+            "x": 295.0,
+            "y": 255.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#39",
         "path": [
-          {
-            "x": 75.0,
-            "y": 265.0
+          {
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
@@ -1378,139 +1346,144 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#85",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#62",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 325.0
-          },
-          {
-            "x": 80.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 95.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 195.0,
-            "y": 435.0
+            "x": 215.0,
+            "y": 65.0
+          },
+          {
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "B"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 25.0,
-            "y": 305.0
+            "x": 55.0,
+            "y": 15.0
           },
           {
-            "x": 25.0,
-            "y": 265.0
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1526,84 +1499,128 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
+            "x": 255.0,
+            "y": 25.0
           },
           {
-            "x": 105.0,
-            "y": 65.0
+            "x": 360.0,
+            "y": 25.0
+          },
+          {
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
+        },
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 60.0,
-            "y": 425.0
+            "x": 420.0,
+            "y": 90.0
           },
           {
-            "x": 60.0,
-            "y": 415.0
+            "x": 420.0,
+            "y": 110.0
           },
           {
-            "x": 30.0,
-            "y": 415.0
+            "x": 365.0,
+            "y": 110.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#47",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#58",
         "path": []
       },
       {
@@ -1620,263 +1637,258 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#71",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 245.0
+          },
+          {
+            "x": 300.0,
+            "y": 205.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 295.0,
-            "y": 215.0
-          },
-          {
-            "x": 295.0,
-            "y": 255.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 420.0,
-            "y": 90.0
-          },
-          {
-            "x": 420.0,
-            "y": 110.0
-          },
-          {
-            "x": 365.0,
-            "y": 110.0
+            "x": 20.0,
+            "y": 155.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 20.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#74",
-        "path": []
+        "name": "unnamedWire#62",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#87",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 305.0,
+            "y": 195.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 305.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y2"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#34",
-        "path": [
-          {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#8",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1891,5 +1903,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.4"
 }
\ No newline at end of file
index 23252d4..2b945b1 100644 (file)
@@ -10,14 +10,25 @@ import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 public class SimpleLogicUIStandalone
 {
        public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel)
+       {
+               executeVisualisation(setupViewModel, (Consumer<VisualisationObjects>) null);
+       }
+
+       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, Consumer<VisualisationObjects> beforeRun)
        {
                LogicModelParameters params = new LogicModelParameters();
                params.gateProcessTime = 50;
                params.wireTravelTime = 10;
-               executeVisualisation(setupViewModel, params);
+               executeVisualisation(setupViewModel, params, beforeRun);
        }
 
        public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, LogicModelParameters params)
+       {
+               executeVisualisation(setupViewModel, params, null);
+       }
+
+       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, LogicModelParameters params,
+                       Consumer<VisualisationObjects> beforeRun)
        {
                // setup view model
                ViewModelModifiable viewModel = new ViewModelModifiable();
@@ -30,12 +41,31 @@ public class SimpleLogicUIStandalone
                LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(viewModel);
                LogicExecuter exec = new LogicExecuter(timeline);
 
+               if (beforeRun != null)
+                       beforeRun.accept(new VisualisationObjects(viewModel, timeline, ui, exec));
+
                // run it
                exec.startLiveExecution();
                ui.run();
                exec.stopLiveExecution();
        }
 
+       public static class VisualisationObjects
+       {
+               public final ViewModelModifiable model;
+               public final Timeline timeline;
+               public final LogicUIStandaloneGUI gui;
+               public final LogicExecuter executer;
+
+               public VisualisationObjects(ViewModelModifiable model, Timeline timeline, LogicUIStandaloneGUI gui, LogicExecuter executer)
+               {
+                       this.model = model;
+                       this.timeline = timeline;
+                       this.gui = gui;
+                       this.executer = executer;
+               }
+       }
+
        private SimpleLogicUIStandalone()
        {
                throw new UnsupportedOperationException("No SimpleLogicUIStandalone instances");
index 5574d32..9d6b57e 100644 (file)
@@ -27,6 +27,7 @@ public class GUIBitDisplay extends GUIComponent
        private static final double height = 15;
        private static final double fontHeight = 5;
 
+       public final int logicWidth;
        private final Pin inputPin;
 
        private final LogicObserver logicObs;
@@ -40,6 +41,7 @@ public class GUIBitDisplay extends GUIComponent
        public GUIBitDisplay(ViewModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
+               this.logicWidth = logicWidth;
                logicObs = (i) -> model.requestRedraw();
 
                setSize(width, height);
@@ -93,7 +95,7 @@ public class GUIBitDisplay extends GUIComponent
        @Override
        public JsonElement getParamsForSerializing(IdentifierGetter idGetter)
        {
-               return new JsonPrimitive(inputPin.logicWidth);
+               return new JsonPrimitive(logicWidth);
        }
 
        static
index ab6e379..b9a09e3 100644 (file)
@@ -30,6 +30,7 @@ public class GUIManualSwitch extends GUIComponent
        private static final double height = 15;
        private static final double fontHeight = 5;
 
+       public final int logicWidth;
        private final Pin outputPin;
 
        private final LogicObserver logicObs;
@@ -44,6 +45,7 @@ public class GUIManualSwitch extends GUIComponent
        public GUIManualSwitch(ViewModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
+               this.logicWidth = logicWidth;
                logicObs = (i) -> model.requestRedraw();
 
                setSize(width, height);
@@ -147,7 +149,7 @@ public class GUIManualSwitch extends GUIComponent
        @Override
        public JsonElement getParamsForSerializing(IdentifierGetter idGetter)
        {
-               return new JsonPrimitive(outputPin.logicWidth);
+               return new JsonPrimitive(logicWidth);
        }
 
        static
index d1eac5e..e72cf8a 100644 (file)
@@ -26,10 +26,16 @@ public class GUIMerger extends GUIComponent
        private static final double heightPerPin = 10;
 
        public final int logicWidth;
+       private final Pin outputPin;
 
        private final ReadEnd[] inputEnds;
        private ReadEnd outputEnd;
 
+       public GUIMerger(ViewModelModifiable model, int logicWidth)
+       {
+               this(model, logicWidth, null);
+       }
+
        public GUIMerger(ViewModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
@@ -38,7 +44,7 @@ public class GUIMerger extends GUIComponent
                double inputHeight = 0;
                for (int i = 0; i < logicWidth; i++, inputHeight += 10)
                        addPin(new Pin(this, "I" + i, 1, 0, inputHeight));
-               addPin(new Pin(this, "O", logicWidth, width, (logicWidth - 1) * heightPerPin / 2));
+               addPin(this.outputPin = new Pin(this, "O", logicWidth, width, (logicWidth - 1) * heightPerPin / 2));
                inputEnds = new ReadEnd[logicWidth];
        }
 
@@ -82,6 +88,11 @@ public class GUIMerger extends GUIComponent
                this.outputEnd = outputEnd;
        }
 
+       public Pin getOutputPin()
+       {
+               return outputPin;
+       }
+
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new MergerAdapter());
index 6ddc276..0ca71c7 100644 (file)
@@ -26,16 +26,22 @@ public class GUISplitter extends GUIComponent
        private static final double heightPerPin = 10;
 
        public final int logicWidth;
+       private final Pin inputPin;
 
        private ReadEnd inputEnd;
        private final ReadEnd[] outputEnds;
 
+       public GUISplitter(ViewModelModifiable model, int logicWidth)
+       {
+               this(model, logicWidth, null);
+       }
+
        public GUISplitter(ViewModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
                setSize(width, logicWidth * heightPerPin);
-               addPin(new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2));
+               addPin(this.inputPin = new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2));
                double outputHeight = 0;
                for (int i = 0; i < logicWidth; i++, outputHeight += 10)
                        addPin(new Pin(this, "O" + i, 1, width, outputHeight));
@@ -82,6 +88,11 @@ public class GUISplitter extends GUIComponent
                System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth);
        }
 
+       public Pin getInputPin()
+       {
+               return inputPin;
+       }
+
        static
        {
                ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter());
index ddd3493..c3f625c 100644 (file)
@@ -29,6 +29,10 @@ public class WireCrossPoint extends GUIComponent
        private static final int CIRCLE_RADIUS = 1;
        private static final int CIRCLE_DIAM = CIRCLE_RADIUS * 2;
 
+       /**
+        * The logical width of this cross point.
+        */
+       public final int logicWidth;
        /**
         * The (single) pin of this cross point.
         */
@@ -53,6 +57,7 @@ public class WireCrossPoint extends GUIComponent
        public WireCrossPoint(ViewModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
+               this.logicWidth = logicWidth;
                logicObs = (i) -> model.requestRedraw();
 
                setSize(CIRCLE_DIAM, CIRCLE_DIAM);
@@ -118,7 +123,7 @@ public class WireCrossPoint extends GUIComponent
        @Override
        public JsonElement getParamsForSerializing(IdentifierGetter idGetter)
        {
-               return new JsonPrimitive(pin.logicWidth);
+               return new JsonPrimitive(logicWidth);
        }
 
        static
index c0462d8..1913f72 100644 (file)
@@ -55,7 +55,8 @@ mograsim version: 0.1.3
   "GUIsel3_4": "file:components/GUIsel3_4.json",
   "GUIsel4_12": "class:net.mograsim.logic.model.am2900.components.GUIsel4_12",
   "GUISplitter": "class:net.mograsim.logic.model.model.components.atomic.GUISplitter",
+  "GUITriStateBuffer": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer",
   "GUIxor": "file:components/GUIxor.json",
-  "WireCrossPoint": "class:net.mograsim.logic.model.model.wires.WireCrossPoint",
-  "GUITriStateBuffer": "class:net.mograsim.logic.model.model.components.atomic.GUITriStateBuffer"
+  "TextComponent": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
+  "WireCrossPoint": "class:net.mograsim.logic.model.model.wires.WireCrossPoint"
 }
\ No newline at end of file