Merge branch 'fusebug' into development
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Sun, 1 Sep 2019 11:28:16 +0000 (13:28 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Sun, 1 Sep 2019 11:29:47 +0000 (13:29 +0200)
140 files changed:
net.mograsim.logic.core/src/net/mograsim/logic/core/components/Clock.java
net.mograsim.logic.model.am2900/FusionNotWorkingTest.json [deleted file]
net.mograsim.logic.model.am2900/FusionNotWorkingTestInner.json [deleted file]
net.mograsim.logic.model.am2900/GUIAm2904Testbench.json
net.mograsim.logic.model.am2900/components/GUI_rsLatch.json
net.mograsim.logic.model.am2900/components/GUIand.json
net.mograsim.logic.model.am2900/components/GUIand41.json
net.mograsim.logic.model.am2900/components/GUIandor414.json
net.mograsim.logic.model.am2900/components/GUIdemux2.json
net.mograsim.logic.model.am2900/components/GUIdff.json
net.mograsim.logic.model.am2900/components/GUIdff4.json
net.mograsim.logic.model.am2900/components/GUIdff4_invwe.json
net.mograsim.logic.model.am2900/components/GUIdlatch.json
net.mograsim.logic.model.am2900/components/GUIdlatch4.json
net.mograsim.logic.model.am2900/components/GUIfulladder.json
net.mograsim.logic.model.am2900/components/GUIhalfadder.json
net.mograsim.logic.model.am2900/components/GUImux1.json
net.mograsim.logic.model.am2900/components/GUImux1_4.json
net.mograsim.logic.model.am2900/components/GUImux2.json
net.mograsim.logic.model.am2900/components/GUImux2_4.json
net.mograsim.logic.model.am2900/components/GUImux3.json
net.mograsim.logic.model.am2900/components/GUInand3.json
net.mograsim.logic.model.am2900/components/GUInot4.json
net.mograsim.logic.model.am2900/components/GUIor4.json
net.mograsim.logic.model.am2900/components/GUIor_4.json
net.mograsim.logic.model.am2900/components/GUIram2.json
net.mograsim.logic.model.am2900/components/GUIram4.json
net.mograsim.logic.model.am2900/components/GUIsel1.json
net.mograsim.logic.model.am2900/components/GUIsel2_4.json
net.mograsim.logic.model.am2900/components/GUIsel3_4.json
net.mograsim.logic.model.am2900/components/GUIxor.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUFuncDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUInclDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901ALUOneBit.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901DestDecode.json
net.mograsim.logic.model.am2900/components/am2901/GUIAm2901SourceDecode.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904TestLogic.json
net.mograsim.logic.model.am2900/components/am2904/GUIAm2904muSR.json
net.mograsim.logic.model.am2900/components/am2910/GUIAm2910.json
net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIdff4_finewe.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIinc12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUInor12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIram5_12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/GUIsel4_12.java
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/am2900/components/am2910/GUIAm2910InstrPLA.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910RegCntr.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/GUIAm2910SP.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2904Testbench.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2910Testbench.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/FusionNotWorkingTest.java [deleted file]
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/GUIComponentTestbench.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java [new file with mode: 0644]
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java [new file with mode: 0644]
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java [new file with mode: 0644]
net.mograsim.logic.model.editor/components/GUI_rsLatch.json
net.mograsim.logic.model.editor/components/GUIand.json
net.mograsim.logic.model.editor/components/GUIand41.json
net.mograsim.logic.model.editor/components/GUIandor414.json
net.mograsim.logic.model.editor/components/GUIdemux2.json
net.mograsim.logic.model.editor/components/GUIdff.json
net.mograsim.logic.model.editor/components/GUIdff4.json
net.mograsim.logic.model.editor/components/GUIdff4_invwe.json
net.mograsim.logic.model.editor/components/GUIdlatch.json
net.mograsim.logic.model.editor/components/GUIdlatch4.json
net.mograsim.logic.model.editor/components/GUIfulladder.json
net.mograsim.logic.model.editor/components/GUIhalfadder.json
net.mograsim.logic.model.editor/components/GUImux1.json
net.mograsim.logic.model.editor/components/GUImux1_4.json
net.mograsim.logic.model.editor/components/GUImux2.json
net.mograsim.logic.model.editor/components/GUImux2_4.json
net.mograsim.logic.model.editor/components/GUImux3.json
net.mograsim.logic.model.editor/components/GUInand3.json
net.mograsim.logic.model.editor/components/GUInot4.json
net.mograsim.logic.model.editor/components/GUIor4.json
net.mograsim.logic.model.editor/components/GUIor_4.json
net.mograsim.logic.model.editor/components/GUIram2.json
net.mograsim.logic.model.editor/components/GUIram4.json
net.mograsim.logic.model.editor/components/GUIsel1.json
net.mograsim.logic.model.editor/components/GUIsel2_4.json
net.mograsim.logic.model.editor/components/GUIsel3_4.json
net.mograsim.logic.model.editor/components/GUIxor.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUFuncDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUInclSourceDecodeInclFunctionDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901ALUOneBit.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901DestDecode.json
net.mograsim.logic.model.editor/components/am2901/GUIAm2901SourceDecode.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904MSR.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904TestLogic.json
net.mograsim.logic.model.editor/components/am2904/GUIAm2904muSR.json
net.mograsim.logic.model.editor/components/am2910/GUIAm2910.json
net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json [deleted file]
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/EditableSubmodelComponent.java [deleted file]
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/states/SelectionState.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/Orientation.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java [new file with mode: 0644]
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/GUIClock.java [new file with mode: 0644]
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/components/atomic/GUITriStateBuffer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularGUIGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedGUIComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SimpleRectangularSubmodelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/MovablePin.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/PinUsage.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ManualSwitchAdapter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/SimpleRectangularHardcodedGUIComponentAdapter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/TriStateBufferAdapter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IdentifierGetter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentParams.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/standardComponentIDMapping.json
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/CodeSnippetSupplier.java
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/standardSnippetIDMapping.json
net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/standardSnippetIDMapping.json
net.mograsim.logic.model/src/net/mograsim/logic/model/util/Version.java
net.mograsim.machine/src/net/mograsim/machine/standard/memory/GUIMemoryWA.java
net.mograsim.plugin.core/src/net/mograsim/plugin/views/LogicUIPart.java

index 6562135..b691d7e 100644 (file)
@@ -1,7 +1,11 @@
 package net.mograsim.logic.core.components;
 
+import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 
+import net.mograsim.logic.core.LogicObservable;
+import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.timeline.TimelineEvent;
 import net.mograsim.logic.core.timeline.TimelineEventHandler;
@@ -10,8 +14,9 @@ import net.mograsim.logic.core.wires.Wire;
 import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 
-public class Clock extends Component implements TimelineEventHandler
+public class Clock extends Component implements TimelineEventHandler, LogicObservable
 {
+       private Collection<LogicObserver> observers;
        private boolean toggle = false;
        private ReadWriteEnd out;
        private int delta;
@@ -26,6 +31,7 @@ public class Clock extends Component implements TimelineEventHandler
                super(timeline);
                this.delta = delta;
                this.out = out;
+               this.observers = new HashSet<>();
                addToTimeline();
        }
 
@@ -35,6 +41,7 @@ public class Clock extends Component implements TimelineEventHandler
                addToTimeline();
                out.feedSignals(toggle ? Bit.ONE : Bit.ZERO);
                toggle = !toggle;
+               notifyObservers();
        }
 
        public ReadWriteEnd getOut()
@@ -42,6 +49,11 @@ public class Clock extends Component implements TimelineEventHandler
                return out;
        }
 
+       public boolean isOn()
+       {
+               return !toggle;
+       }
+
        private void addToTimeline()
        {
                timeline.addEvent(this, delta);
@@ -58,4 +70,22 @@ public class Clock extends Component implements TimelineEventHandler
        {
                return List.of(out);
        }
+
+       @Override
+       public void registerObserver(LogicObserver ob)
+       {
+               observers.add(ob);
+       }
+
+       @Override
+       public void deregisterObserver(LogicObserver ob)
+       {
+               observers.remove(ob);
+       }
+
+       @Override
+       public void notifyObservers()
+       {
+               observers.forEach(ob -> ob.update(this));
+       }
 }
diff --git a/net.mograsim.logic.model.am2900/FusionNotWorkingTest.json b/net.mograsim.logic.model.am2900/FusionNotWorkingTest.json
deleted file mode 100644 (file)
index da84908..0000000
+++ /dev/null
@@ -1,648 +0,0 @@
-{
-  "width": 0.0,
-  "height": 0.0,
-  "interfacePins": [],
-  "innerScale": 1.0,
-  "submodel": {
-    "components": [
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#2",
-        "pos": {
-          "x": 185.0,
-          "y": 170.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 391.0,
-          "y": 150.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 391.0,
-          "y": 195.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#4",
-        "pos": {
-          "x": 185.0,
-          "y": 190.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
-        "pos": {
-          "x": 380.0,
-          "y": 205.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 370.0,
-          "y": 175.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#5",
-        "pos": {
-          "x": 185.0,
-          "y": 210.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#7",
-        "pos": {
-          "x": 335.0,
-          "y": 135.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
-        "pos": {
-          "x": 335.0,
-          "y": 105.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
-        "pos": {
-          "x": 360.0,
-          "y": 110.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 391.0,
-          "y": 180.0
-        },
-        "params": 1
-      },
-      {
-        "id": "file:FusionNotWorkingTestInner.json",
-        "name": "inner",
-        "pos": {
-          "x": 220.0,
-          "y": 175.0
-        }
-      },
-      {
-        "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": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 391.0,
-          "y": 165.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#0",
-        "pos": {
-          "x": 240.0,
-          "y": 150.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
-        "pos": {
-          "x": 375.0,
-          "y": 190.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#35",
-        "pos": {
-          "x": 300.0,
-          "y": 122.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#34",
-        "pos": {
-          "x": 300.0,
-          "y": 92.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
-        "pos": {
-          "x": 335.0,
-          "y": 90.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 345.0,
-          "y": 85.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 365.0,
-          "y": 160.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#36",
-        "pos": {
-          "x": 300.0,
-          "y": 77.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#6",
-        "pos": {
-          "x": 185.0,
-          "y": 230.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 360.0,
-          "y": 125.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#6",
-        "pos": {
-          "x": 335.0,
-          "y": 120.0
-        },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
-      }
-    ],
-    "wires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "inner",
-          "pinName": "YN"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 210.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#35",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "IN"
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "inner",
-          "pinName": "YOVR"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 380.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "EN"
-        },
-        "name": "unnamedWire#64",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "inner",
-          "pinName": "YC"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#68",
-        "path": [
-          {
-            "x": 370.0,
-            "y": 200.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#61",
-        "path": [
-          {
-            "x": 360.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "inner",
-          "pinName": "_OEY"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#72",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
-        },
-        "name": "unnamedWire#59",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "inner",
-          "pinName": "YZ"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 190.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#36",
-          "pinName": ""
-        },
-        "name": "unnamedWire#60",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#71",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "inner",
-          "pinName": "IOVR"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "inner",
-          "pinName": "IZ"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
-        },
-        "name": "unnamedWire#67",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 100.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#63",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#33",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "inner",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "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#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "OUT"
-        },
-        "name": "unnamedWire#70",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
-        },
-        "name": "unnamedWire#62",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "inner",
-          "pinName": "IC"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#65",
-        "path": [
-          {
-            "x": 360.0,
-            "y": 140.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#66",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "OUT"
-        },
-        "name": "unnamedWire#73",
-        "path": [
-          {
-            "x": 380.0,
-            "y": 145.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#32",
-          "pinName": ""
-        },
-        "name": "unnamedWire#57",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#34",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "IN"
-        },
-        "name": "unnamedWire#58",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#16",
-        "path": []
-      }
-    ],
-    "version": "0.1.1"
-  },
-  "symbolRendererSnippetID": "default",
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default",
-  "version": "0.1.4"
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/FusionNotWorkingTestInner.json b/net.mograsim.logic.model.am2900/FusionNotWorkingTestInner.json
deleted file mode 100644 (file)
index 3218cfc..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-{
-  "width": 115.0,
-  "height": 70.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "IOVR",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 115.0,
-        "y": 15.0
-      },
-      "name": "YZ",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 15.0
-      },
-      "name": "IZ",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 115.0,
-        "y": 35.0
-      },
-      "name": "YN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 35.0
-      },
-      "name": "IN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 55.0,
-        "y": 0.0
-      },
-      "name": "_OEY",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 115.0,
-        "y": 25.0
-      },
-      "name": "YC",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 25.0
-      },
-      "name": "IC",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 115.0,
-        "y": 45.0
-      },
-      "name": "YOVR",
-      "logicWidth": 1
-    }
-  ],
-  "innerScale": 1.0,
-  "submodel": {
-    "components": [
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
-        "pos": {
-          "x": 45.0,
-          "y": 20.0
-        },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 35.0,
-          "y": 45.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
-        "pos": {
-          "x": 17.0,
-          "y": 15.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 75.0,
-          "y": 35.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUISplitter",
-        "name": "GUISplitter#1",
-        "pos": {
-          "x": 100.0,
-          "y": 15.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 65.0,
-          "y": 5.0
-        },
-        "params": 1
-      }
-    ],
-    "wires": [
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YZ"
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
-        },
-        "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
-        },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 40.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "IZ"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
-        },
-        "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#19",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#232",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#230",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      }
-    ],
-    "version": "0.1.1"
-  },
-  "symbolRendererSnippetID": "default",
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default",
-  "version": "0.1.4"
-}
\ No newline at end of file
index faea225..a36c8e0 100644 (file)
   "submodel": {
     "components": [
       {
-        "id": "TextComponent",
-        "name": "TextComponent#1",
+        "id": "GUIAm2904",
+        "name": "Am2904",
         "pos": {
-          "x": 140.0,
-          "y": 125.0
-        },
-        "params": "IC"
+          "x": 220.0,
+          "y": 175.0
+        }
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 335.0,
-          "y": 105.0
+          "x": 391.0,
+          "y": 150.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#8",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 125.0,
-          "y": 230.0
+          "x": 391.0,
+          "y": 165.0
         },
-        "params": "_EN"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 185.0,
-          "y": 310.0
+          "x": 391.0,
+          "y": 180.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 345.0,
-          "y": 85.0
+          "x": 391.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#4",
         "pos": {
-          "x": 375.0,
-          "y": 190.0
+          "x": 365.0,
+          "y": 240.0
         },
         "params": 1
       },
       {
         "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "name": "GUIBitDisplay#5",
         "pos": {
-          "x": 391.0,
-          "y": 180.0
+          "x": 365.0,
+          "y": 275.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#6",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#6",
         "pos": {
-          "x": 125.0,
-          "y": 200.0
+          "x": 365.0,
+          "y": 370.0
         },
-        "params": "_EZ"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#14",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#7",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 365.0,
+          "y": 385.0
         },
-        "params": "I1"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#13",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#8",
         "pos": {
-          "x": 60.0,
-          "y": 132.5
+          "x": 365.0,
+          "y": 330.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#48",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#9",
         "pos": {
-          "x": 350.0,
-          "y": 220.0
+          "x": 365.0,
+          "y": 315.0
         },
-        "params": "_OECT"
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#0",
         "pos": {
-          "x": 175.0,
-          "y": 370.0
+          "x": 255.0,
+          "y": 152.5
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#42",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#1",
         "pos": {
-          "x": 270.0,
-          "y": 135.0
+          "x": 170.0,
+          "y": 82.5
         },
-        "params": "YOVR"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#10",
         "pos": {
-          "x": 355.0,
-          "y": 380.0
+          "x": 160.0,
+          "y": 247.5
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#11",
         "pos": {
-          "x": 85.0,
-          "y": 130.0
+          "x": 160.0,
+          "y": 217.5
         },
-        "params": 13
+        "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#36",
+        "name": "GUIManualSwitch#12",
         "pos": {
-          "x": 300.0,
-          "y": 77.5
+          "x": 160.0,
+          "y": 202.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#24",
+        "name": "GUIManualSwitch#13",
         "pos": {
-          "x": 55.0,
-          "y": 162.5
+          "x": 60.0,
+          "y": 132.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#31",
+        "name": "GUIManualSwitch#14",
         "pos": {
-          "x": 55.0,
-          "y": 242.5
+          "x": 165.0,
+          "y": 287.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#25",
+        "name": "GUIManualSwitch#15",
         "pos": {
-          "x": 55.0,
-          "y": 182.5
+          "x": 140.0,
+          "y": 317.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#16",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#16",
         "pos": {
-          "x": 35.0,
-          "y": 160.0
+          "x": 140.0,
+          "y": 332.5
         },
-        "params": "I4"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#17",
         "pos": {
-          "x": 380.0,
-          "y": 200.0
+          "x": 140.0,
+          "y": 387.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#29",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#18",
         "pos": {
-          "x": 416.0,
-          "y": 195.0
+          "x": 140.0,
+          "y": 372.5
         },
-        "params": "YOVR"
+        "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#23",
+        "name": "GUIManualSwitch#19",
         "pos": {
-          "x": 60.0,
-          "y": 172.5
+          "x": 140.0,
+          "y": 357.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#35",
+        "name": "GUIManualSwitch#2",
         "pos": {
-          "x": 300.0,
-          "y": 122.5
+          "x": 170.0,
+          "y": 112.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#4",
+        "name": "GUIManualSwitch#20",
         "pos": {
-          "x": 170.0,
-          "y": 127.5
+          "x": 140.0,
+          "y": 302.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#21",
         "pos": {
-          "x": 360.0,
-          "y": 125.0
+          "x": 55.0,
+          "y": 142.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#22",
         "pos": {
-          "x": 215.0,
-          "y": 340.0
+          "x": 60.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#3",
+        "name": "GUIManualSwitch#23",
         "pos": {
-          "x": 55.0,
-          "y": 122.5
+          "x": 60.0,
+          "y": 172.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#24",
         "pos": {
-          "x": 370.0,
-          "y": 175.0
+          "x": 55.0,
+          "y": 162.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#34",
+        "name": "GUIManualSwitch#25",
         "pos": {
-          "x": 300.0,
-          "y": 92.5
+          "x": 55.0,
+          "y": 182.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#2",
+        "name": "GUIManualSwitch#26",
         "pos": {
-          "x": 170.0,
-          "y": 112.5
+          "x": 60.0,
+          "y": 192.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#44",
-        "pos": {
-          "x": 270.0,
-          "y": 90.0
-        },
-        "params": "YZ"
-      },
-      {
-        "id": "TextComponent",
-        "name": "TextComponent#32",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#27",
         "pos": {
-          "x": 390.0,
-          "y": 315.0
+          "x": 60.0,
+          "y": 232.5
         },
-        "params": "SIOn"
+        "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#6",
+        "name": "GUIManualSwitch#28",
         "pos": {
-          "x": 170.0,
-          "y": 157.5
+          "x": 55.0,
+          "y": 202.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#39",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#29",
         "pos": {
-          "x": 110.0,
-          "y": 370.0
+          "x": 55.0,
+          "y": 222.5
         },
-        "params": "SIO0"
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#6",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#3",
         "pos": {
-          "x": 365.0,
-          "y": 370.0
+          "x": 55.0,
+          "y": 122.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#41",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#30",
         "pos": {
-          "x": 110.0,
-          "y": 330.0
+          "x": 60.0,
+          "y": 212.5
         },
-        "params": "QIOn"
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#31",
         "pos": {
-          "x": 185.0,
-          "y": 365.0
+          "x": 55.0,
+          "y": 242.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#10",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#32",
         "pos": {
-          "x": 35.0,
-          "y": 120.0
+          "x": 300.0,
+          "y": 107.5
         },
-        "params": "I0"
+        "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#15",
+        "name": "GUIManualSwitch#33",
         "pos": {
-          "x": 140.0,
-          "y": 317.5
+          "x": 300.0,
+          "y": 137.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#20",
+        "name": "GUIManualSwitch#34",
         "pos": {
-          "x": 140.0,
-          "y": 302.5
+          "x": 300.0,
+          "y": 92.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#17",
+        "name": "GUIManualSwitch#35",
         "pos": {
-          "x": 140.0,
-          "y": 387.5
+          "x": 300.0,
+          "y": 122.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#10",
+        "name": "GUIManualSwitch#36",
         "pos": {
-          "x": 160.0,
-          "y": 247.5
+          "x": 300.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#11",
+        "name": "GUIManualSwitch#37",
         "pos": {
-          "x": 160.0,
-          "y": 217.5
+          "x": 165.0,
+          "y": 270.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#35",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#38",
         "pos": {
-          "x": 390.0,
-          "y": 385.0
+          "x": 385.0,
+          "y": 220.0
         },
-        "params": "QIO0"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#30",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#4",
         "pos": {
-          "x": 390.0,
-          "y": 240.0
+          "x": 170.0,
+          "y": 127.5
         },
-        "params": "CT"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#40",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#5",
         "pos": {
-          "x": 110.0,
-          "y": 315.0
+          "x": 170.0,
+          "y": 142.5
         },
-        "params": "SIOn"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#12",
+        "id": "GUIManualSwitch",
+        "name": "GUIManualSwitch#6",
         "pos": {
-          "x": 35.0,
-          "y": 140.0
+          "x": 170.0,
+          "y": 157.5
         },
-        "params": "I2"
+        "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#18",
+        "name": "GUIManualSwitch#7",
         "pos": {
-          "x": 140.0,
-          "y": 372.5
+          "x": 155.0,
+          "y": 172.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#5",
+        "name": "GUIManualSwitch#8",
         "pos": {
-          "x": 170.0,
-          "y": 142.5
+          "x": 155.0,
+          "y": 187.5
         },
         "params": 1
       },
       {
         "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#8",
+        "name": "GUIManualSwitch#9",
         "pos": {
-          "x": 155.0,
-          "y": 187.5
+          "x": 160.0,
+          "y": 232.5
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#15",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 40.0,
-          "y": 150.0
+          "x": 85.0,
+          "y": 130.0
         },
-        "params": "I3"
+        "params": 13
       },
       {
         "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#6",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 335.0,
-          "y": 120.0
+          "x": 175.0,
+          "y": 315.0
         },
         "params": {
           "logicWidth": 1,
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#43",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#1",
         "pos": {
-          "x": 270.0,
-          "y": 120.0
+          "x": 175.0,
+          "y": 330.0
         },
-        "params": "YN"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#29",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 55.0,
-          "y": 222.5
+          "x": 175.0,
+          "y": 385.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
         "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#1",
+        "name": "GUITriStateBuffer#3",
         "pos": {
           "x": 175.0,
-          "y": 330.0
+          "y": 370.0
         },
         "params": {
           "logicWidth": 1,
         }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#45",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 270.0,
+          "x": 335.0,
           "y": 105.0
         },
-        "params": "YC"
-      },
-      {
-        "id": "TextComponent",
-        "name": "TextComponent#17",
-        "pos": {
-          "x": 35.0,
-          "y": 180.0
-        },
-        "params": "I6"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 365.0,
-          "y": 160.0
+          "x": 335.0,
+          "y": 90.0
         },
-        "params": 1
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#11",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#6",
         "pos": {
-          "x": 35.0,
-          "y": 240.0
+          "x": 335.0,
+          "y": 120.0
         },
-        "params": "I12"
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
         "id": "GUITriStateBuffer",
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#3",
+        "name": "TextComponent#0",
         "pos": {
           "x": 140.0,
-          "y": 155.0
+          "y": 110.0
         },
-        "params": "IOVR"
+        "params": "IZ"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#36",
+        "name": "TextComponent#1",
         "pos": {
-          "x": 30.0,
-          "y": 300.0
+          "x": 140.0,
+          "y": 125.0
         },
-        "params": "enable S/QIOn input"
+        "params": "IC"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#19",
+        "name": "TextComponent#10",
         "pos": {
           "x": 35.0,
-          "y": 200.0
+          "y": 120.0
         },
-        "params": "I8"
+        "params": "I0"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "TextComponent",
+        "name": "TextComponent#11",
         "pos": {
-          "x": 360.0,
-          "y": 110.0
+          "x": 35.0,
+          "y": 240.0
         },
-        "params": 1
+        "params": "I12"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#22",
+        "id": "TextComponent",
+        "name": "TextComponent#12",
         "pos": {
-          "x": 60.0,
-          "y": 152.5
+          "x": 35.0,
+          "y": 140.0
         },
-        "params": 1
+        "params": "I2"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#47",
+        "name": "TextComponent#13",
         "pos": {
-          "x": 145.0,
-          "y": 270.0
+          "x": 40.0,
+          "y": 170.0
         },
-        "params": "_SE"
+        "params": "I5"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#9",
+        "id": "TextComponent",
+        "name": "TextComponent#14",
         "pos": {
-          "x": 160.0,
-          "y": 232.5
+          "x": 40.0,
+          "y": 130.0
         },
-        "params": 1
+        "params": "I1"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#9",
+        "name": "TextComponent#15",
         "pos": {
-          "x": 125.0,
-          "y": 245.0
+          "x": 40.0,
+          "y": 150.0
         },
-        "params": "_EOVR"
+        "params": "I3"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#28",
+        "name": "TextComponent#16",
         "pos": {
-          "x": 416.0,
+          "x": 35.0,
+          "y": 160.0
+        },
+        "params": "I4"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#17",
+        "pos": {
+          "x": 35.0,
           "y": 180.0
         },
-        "params": "YN"
+        "params": "I6"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#12",
+        "id": "TextComponent",
+        "name": "TextComponent#18",
         "pos": {
-          "x": 160.0,
-          "y": 202.5
+          "x": 40.0,
+          "y": 190.0
         },
-        "params": 1
+        "params": "I7"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#27",
+        "name": "TextComponent#19",
         "pos": {
-          "x": 416.0,
-          "y": 165.0
+          "x": 35.0,
+          "y": 200.0
         },
-        "params": "YC"
+        "params": "I8"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#32",
+        "id": "TextComponent",
+        "name": "TextComponent#2",
         "pos": {
-          "x": 300.0,
-          "y": 107.5
+          "x": 140.0,
+          "y": 140.0
         },
-        "params": 1
+        "params": "IN"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#33",
+        "id": "TextComponent",
+        "name": "TextComponent#20",
         "pos": {
-          "x": 300.0,
-          "y": 137.5
+          "x": 40.0,
+          "y": 210.0
         },
-        "params": 1
+        "params": "I9"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#37",
+        "id": "TextComponent",
+        "name": "TextComponent#21",
         "pos": {
-          "x": 165.0,
-          "y": 270.0
+          "x": 35.0,
+          "y": 220.0
         },
-        "params": 1
+        "params": "I10"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#4",
+        "name": "TextComponent#22",
         "pos": {
-          "x": 115.0,
-          "y": 170.0
+          "x": 40.0,
+          "y": 230.0
         },
-        "params": "_CEM"
+        "params": "I11"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#9",
+        "id": "TextComponent",
+        "name": "TextComponent#23",
         "pos": {
-          "x": 365.0,
-          "y": 315.0
+          "x": 145.0,
+          "y": 285.0
         },
-        "params": 1
+        "params": "CX"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#0",
+        "id": "TextComponent",
+        "name": "TextComponent#24",
         "pos": {
-          "x": 255.0,
-          "y": 152.5
+          "x": 150.0,
+          "y": 80.0
         },
-        "params": 1
+        "params": "C"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#21",
+        "name": "TextComponent#25",
         "pos": {
-          "x": 35.0,
-          "y": 220.0
+          "x": 225.0,
+          "y": 150.0
         },
-        "params": "I10"
+        "params": "_OEY"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#1",
+        "id": "TextComponent",
+        "name": "TextComponent#26",
         "pos": {
-          "x": 170.0,
-          "y": 82.5
+          "x": 416.0,
+          "y": 150.0
         },
-        "params": 1
+        "params": "YZ"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#16",
+        "id": "TextComponent",
+        "name": "TextComponent#27",
         "pos": {
-          "x": 140.0,
-          "y": 332.5
+          "x": 416.0,
+          "y": 165.0
         },
-        "params": 1
+        "params": "YC"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#46",
+        "name": "TextComponent#28",
         "pos": {
-          "x": 220.0,
-          "y": 75.0
+          "x": 416.0,
+          "y": 180.0
         },
-        "params": "enable Y input"
+        "params": "YN"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#30",
+        "id": "TextComponent",
+        "name": "TextComponent#29",
         "pos": {
-          "x": 60.0,
-          "y": 212.5
+          "x": 416.0,
+          "y": 195.0
         },
-        "params": 1
+        "params": "YOVR"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#0",
+        "name": "TextComponent#3",
         "pos": {
           "x": 140.0,
-          "y": 110.0
+          "y": 155.0
         },
-        "params": "IZ"
+        "params": "IOVR"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#14",
+        "id": "TextComponent",
+        "name": "TextComponent#30",
         "pos": {
-          "x": 165.0,
-          "y": 287.5
+          "x": 390.0,
+          "y": 240.0
         },
-        "params": 1
+        "params": "CT"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#8",
+        "id": "TextComponent",
+        "name": "TextComponent#31",
         "pos": {
-          "x": 365.0,
-          "y": 330.0
+          "x": 390.0,
+          "y": 275.0
         },
-        "params": 1
+        "params": "C0"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#5",
+        "name": "TextComponent#32",
         "pos": {
-          "x": 115.0,
-          "y": 185.0
+          "x": 390.0,
+          "y": 315.0
         },
-        "params": "_CEmu"
+        "params": "SIOn"
       },
       {
-        "id": "GUIAm2904",
-        "name": "Am2904",
+        "id": "TextComponent",
+        "name": "TextComponent#33",
         "pos": {
-          "x": 220.0,
-          "y": 175.0
-        }
+          "x": 390.0,
+          "y": 330.0
+        },
+        "params": "QIOn"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#7",
+        "id": "TextComponent",
+        "name": "TextComponent#34",
         "pos": {
-          "x": 155.0,
-          "y": 172.5
+          "x": 390.0,
+          "y": 370.0
         },
-        "params": 1
+        "params": "SIO0"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#5",
+        "id": "TextComponent",
+        "name": "TextComponent#35",
         "pos": {
-          "x": 365.0,
-          "y": 275.0
+          "x": 390.0,
+          "y": 385.0
         },
-        "params": 1
+        "params": "QIO0"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#18",
+        "name": "TextComponent#36",
         "pos": {
-          "x": 40.0,
-          "y": 190.0
+          "x": 30.0,
+          "y": 300.0
         },
-        "params": "I7"
+        "params": "enable S/QIOn input"
       },
       {
         "id": "TextComponent",
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#13",
+        "name": "TextComponent#38",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 110.0,
+          "y": 385.0
         },
-        "params": "I5"
+        "params": "QIO0"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "TextComponent",
+        "name": "TextComponent#39",
         "pos": {
-          "x": 210.0,
-          "y": 325.0
+          "x": 110.0,
+          "y": 370.0
         },
-        "params": 1
+        "params": "SIO0"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#22",
+        "name": "TextComponent#4",
         "pos": {
-          "x": 40.0,
-          "y": 230.0
+          "x": 115.0,
+          "y": 170.0
         },
-        "params": "I11"
+        "params": "_CEM"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#19",
+        "id": "TextComponent",
+        "name": "TextComponent#40",
         "pos": {
-          "x": 140.0,
-          "y": 357.5
+          "x": 110.0,
+          "y": 315.0
         },
-        "params": 1
+        "params": "SIOn"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#7",
+        "name": "TextComponent#41",
         "pos": {
-          "x": 125.0,
-          "y": 215.0
+          "x": 110.0,
+          "y": 330.0
         },
-        "params": "_EC"
+        "params": "QIOn"
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "TextComponent",
+        "name": "TextComponent#42",
         "pos": {
-          "x": 335.0,
-          "y": 90.0
+          "x": 270.0,
+          "y": 135.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": "YOVR"
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "TextComponent",
+        "name": "TextComponent#43",
         "pos": {
-          "x": 360.0,
-          "y": 390.0
+          "x": 270.0,
+          "y": 120.0
         },
-        "params": 1
+        "params": "YN"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#4",
+        "id": "TextComponent",
+        "name": "TextComponent#44",
         "pos": {
-          "x": 365.0,
-          "y": 240.0
+          "x": 270.0,
+          "y": 90.0
         },
-        "params": 1
+        "params": "YZ"
+      },
+      {
+        "id": "TextComponent",
+        "name": "TextComponent#45",
+        "pos": {
+          "x": 270.0,
+          "y": 105.0
+        },
+        "params": "YC"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#25",
+        "name": "TextComponent#46",
         "pos": {
-          "x": 225.0,
-          "y": 150.0
+          "x": 220.0,
+          "y": 75.0
         },
-        "params": "_OEY"
+        "params": "enable Y input"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#31",
+        "name": "TextComponent#47",
         "pos": {
-          "x": 390.0,
-          "y": 275.0
+          "x": 145.0,
+          "y": 270.0
         },
-        "params": "C0"
+        "params": "_SE"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#28",
+        "id": "TextComponent",
+        "name": "TextComponent#48",
         "pos": {
-          "x": 55.0,
-          "y": 202.5
+          "x": 350.0,
+          "y": 220.0
         },
-        "params": 1
+        "params": "_OECT"
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "TextComponent",
+        "name": "TextComponent#5",
         "pos": {
-          "x": 175.0,
-          "y": 385.0
+          "x": 115.0,
+          "y": 185.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": "_CEmu"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#23",
+        "name": "TextComponent#6",
         "pos": {
-          "x": 145.0,
-          "y": 285.0
+          "x": 125.0,
+          "y": 200.0
         },
-        "params": "CX"
+        "params": "_EZ"
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#21",
+        "id": "TextComponent",
+        "name": "TextComponent#7",
         "pos": {
-          "x": 55.0,
-          "y": 142.5
+          "x": 125.0,
+          "y": 215.0
         },
-        "params": 1
+        "params": "_EC"
       },
       {
         "id": "TextComponent",
-        "name": "TextComponent#26",
+        "name": "TextComponent#8",
         "pos": {
-          "x": 416.0,
-          "y": 150.0
+          "x": 125.0,
+          "y": 230.0
         },
-        "params": "YZ"
+        "params": "_EN"
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "TextComponent",
+        "name": "TextComponent#9",
         "pos": {
-          "x": 391.0,
-          "y": 150.0
+          "x": 125.0,
+          "y": 245.0
         },
-        "params": 1
+        "params": "_EOVR"
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#20",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 40.0,
-          "y": 210.0
+          "x": 185.0,
+          "y": 365.0
         },
-        "params": "I9"
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 391.0,
-          "y": 195.0
+          "x": 185.0,
+          "y": 310.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 391.0,
-          "y": 165.0
+          "x": 370.0,
+          "y": 175.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#34",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 390.0,
-          "y": 370.0
+          "x": 375.0,
+          "y": 190.0
         },
-        "params": "SIO0"
+        "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#38",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 110.0,
-          "y": 385.0
+          "x": 380.0,
+          "y": 200.0
         },
-        "params": "QIO0"
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#27",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 60.0,
-          "y": 232.5
+          "x": 210.0,
+          "y": 325.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#24",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 150.0,
-          "y": 80.0
+          "x": 215.0,
+          "y": 340.0
         },
-        "params": "C"
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 175.0,
-          "y": 315.0
+          "x": 355.0,
+          "y": 380.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#26",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 60.0,
-          "y": 192.5
+          "x": 360.0,
+          "y": 390.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 140.0,
-          "y": 140.0
+          "x": 345.0,
+          "y": 85.0
         },
-        "params": "IN"
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 365.0,
-          "y": 385.0
+          "x": 360.0,
+          "y": 110.0
         },
         "params": 1
       },
       {
-        "id": "GUIManualSwitch",
-        "name": "GUIManualSwitch#38",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 385.0,
-          "y": 220.0
+          "x": 360.0,
+          "y": 125.0
         },
         "params": 1
       },
       {
-        "id": "TextComponent",
-        "name": "TextComponent#33",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 390.0,
-          "y": 330.0
+          "x": 365.0,
+          "y": 160.0
         },
-        "params": "QIOn"
+        "params": 1
       }
     ],
     "wires": [
       {
         "pin1": {
-          "compName": "GUIManualSwitch#20",
+          "compName": "GUIManualSwitch#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 160.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "GUIManualSwitch#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "C"
         },
-        "name": "unnamedWire#62",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 90.0
+          },
+          {
+            "x": 215.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "QIO0"
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIManualSwitch#10",
           "pinName": ""
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 360.0,
-            "y": 305.0
+            "x": 205.0,
+            "y": 220.0
+          },
+          {
+            "x": 205.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#18",
+          "compName": "GUIManualSwitch#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "Am2904",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 240.0
+          },
+          {
+            "x": 200.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "I"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "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": "GUIManualSwitch#3",
+          "compName": "GUIManualSwitch#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "Am2904",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#42",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 295.0
+          },
+          {
+            "x": 200.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "Am2904",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 200.0,
-            "y": 310.0
-          },
-          {
-            "x": 200.0,
-            "y": 335.0
+            "x": 375.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "YZ"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 365.0,
-            "y": 100.0
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "_CEmu"
+          "pinName": "CT"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#8",
+          "compName": "GUIBitDisplay#4",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 185.0,
-            "y": 205.0
+            "x": 345.0,
+            "y": 235.0
           },
           {
-            "x": 185.0,
-            "y": 195.0
+            "x": 345.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "C0"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "YN"
+          "compName": "GUIBitDisplay#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "IOVR"
+          "compName": "GUIManualSwitch#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#6",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "IZ"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 195.0,
-            "y": 200.0
+            "x": 210.0,
+            "y": 120.0
           },
           {
-            "x": 195.0,
-            "y": 165.0
+            "x": 210.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "SIOn"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "OUT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 375.0,
-            "y": 130.0
+            "x": 210.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#36",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#38",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
           "compName": "Am2904",
-          "pinName": "_OECT"
+          "pinName": "QIOn"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#22",
         "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
+            "x": 215.0,
+            "y": 305.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#19",
+          "compName": "GUIManualSwitch#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIManualSwitch#16",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "pin2": {
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I8"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#28",
+          "compName": "GUIManualSwitch#17",
           "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#26",
+          "compName": "GUIManualSwitch#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I7"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#15",
+          "compName": "GUIManualSwitch#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
+        },
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "Am2904",
+          "pinName": "IC"
+        },
+        "pin2": {
+          "compName": "GUIManualSwitch#4",
           "pinName": ""
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 380.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 190.0
+          },
+          {
+            "x": 205.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "IN"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#30",
         "path": [
           {
             "x": 200.0,
-            "y": 150.0
+            "y": 365.0
           },
           {
             "x": 200.0,
-            "y": 195.0
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#35",
+          "compName": "GUIManualSwitch#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#6",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#31",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I12"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "_OEY"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 280.0,
-            "y": 160.0
+            "x": 200.0,
+            "y": 310.0
+          },
+          {
+            "x": 200.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "IN"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#33",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "Cx"
+          "compName": "GUIBitDisplay#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 200.0,
-            "y": 295.0
+            "x": 210.0,
+            "y": 375.0
           },
           {
-            "x": 200.0,
-            "y": 285.0
+            "x": 345.0,
+            "y": 375.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_SE"
+          "compName": "GUIBitDisplay#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#37",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#35",
         "path": [
           {
-            "x": 215.0,
-            "y": 260.0
+            "x": 350.0,
+            "y": 340.0
+          },
+          {
+            "x": 350.0,
+            "y": 380.0
           },
           {
             "x": 215.0,
-            "y": 280.0
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#7",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 360.0,
-            "y": 140.0
+            "x": 210.0,
+            "y": 380.0
+          },
+          {
+            "x": 210.0,
+            "y": 385.0
+          },
+          {
+            "x": 355.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#17",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 390.0
+          },
+          {
+            "x": 210.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#23",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "GUIBitDisplay#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I6"
+          "compName": "GUIBitDisplay#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#25",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EOVR"
+          "compName": "GUIManualSwitch#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#10",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 205.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 150.0
           },
           {
-            "x": 205.0,
-            "y": 255.0
+            "x": 200.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "SIOn"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "SIO0"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 210.0,
+            "x": 355.0,
             "y": 295.0
           }
         ]
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "YC"
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 370.0,
-            "y": 190.0
+            "x": 360.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#8",
+          "compName": "GUIManualSwitch#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#35",
-        "path": [
-          {
-            "x": 350.0,
-            "y": 340.0
-          },
-          {
-            "x": 350.0,
-            "y": 380.0
-          },
-          {
-            "x": 215.0,
-            "y": 380.0
-          }
-        ]
+        "name": "unnamedWire#42",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#1",
+          "compName": "GUIManualSwitch#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "C"
+          "compName": "GUIMerger#0",
+          "pinName": "I12"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 90.0
-          },
-          {
-            "x": 215.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "GUIManualSwitch#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#22",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIManualSwitch#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "YOVR"
+          "compName": "GUIManualSwitch#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I9"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "C0"
+          "compName": "GUIMerger#0",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#5",
+          "compName": "GUIManualSwitch#28",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#30",
+          "compName": "GUIManualSwitch#26",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIMerger#0",
-          "pinName": "I9"
+          "pinName": "I7"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "_CEM"
+          "compName": "GUIManualSwitch#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 180.0
-          },
-          {
-            "x": 190.0,
-            "y": 205.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "IC"
+          "pinName": "IOVR"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#4",
+          "compName": "GUIManualSwitch#6",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 205.0,
-            "y": 190.0
+            "x": 195.0,
+            "y": 200.0
           },
           {
-            "x": 205.0,
-            "y": 135.0
+            "x": 195.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "GUIManualSwitch#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "YZ"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "GUIManualSwitch#24",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 365.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "GUIManualSwitch#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 365.0
-          },
-          {
-            "x": 200.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#2",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "IZ"
+          "compName": "GUIManualSwitch#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 120.0
-          },
-          {
-            "x": 210.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "GUIManualSwitch#13",
           "pinName": ""
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIManualSwitch#33",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 380.0
-          },
-          {
-            "x": 210.0,
-            "y": 385.0
-          },
-          {
-            "x": 355.0,
-            "y": 385.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#16",
+          "compName": "GUIManualSwitch#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
+          "compName": "GUITriStateBuffer#6",
           "pinName": "IN"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUIManualSwitch#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
-        "path": [
-          {
-            "x": 370.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIManualSwitch#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#7",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 360.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "SIO0"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#40",
-        "path": [
-          {
-            "x": 355.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIManualSwitch#9",
+          "compName": "GUIManualSwitch#7",
           "pinName": ""
         },
         "pin2": {
           "compName": "Am2904",
-          "pinName": "_EN"
+          "pinName": "_CEM"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 200.0,
-            "y": 240.0
+            "x": 190.0,
+            "y": 180.0
           },
           {
-            "x": 200.0,
-            "y": 215.0
+            "x": 190.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I10"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#29",
+          "compName": "GUIManualSwitch#36",
           "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 360.0,
+            "y": 85.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#12",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#24",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "QIOn"
+          "compName": "GUITriStateBuffer#6",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#7",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#9",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 210.0,
-            "y": 375.0
-          },
-          {
-            "x": 345.0,
-            "y": 375.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
+            "x": 360.0,
+            "y": 140.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
-        },
-        "pin2": {
-          "compName": "GUIManualSwitch#13",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
-        },
         "pin2": {
-          "compName": "GUIManualSwitch#21",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#53",
-        "path": []
+        "name": "unnamedWire#67",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "Am2904",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "Am2904",
-          "pinName": "I"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 105.0,
+            "x": 370.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"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#32",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
-        "name": "unnamedWire#57",
-        "path": []
+        "name": "unnamedWire#69",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 115.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_CEmu"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "GUIManualSwitch#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 205.0
+          },
+          {
+            "x": 185.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#7",
+          "compName": "GUITriStateBuffer#6",
           "pinName": "OUT"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 380.0,
-            "y": 145.0
+            "x": 375.0,
+            "y": 130.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "Am2904",
-          "pinName": "_EC"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIManualSwitch#11",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 195.0,
-            "y": 215.0
-          },
-          {
-            "x": 195.0,
-            "y": 225.0
+            "x": 380.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#2",
+          "compName": "GUITriStateBuffer#7",
           "pinName": "OUT"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 210.0,
-            "y": 390.0
-          },
-          {
-            "x": 210.0,
-            "y": 395.0
+            "x": 380.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "Am2904",
-          "pinName": "CT"
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#4",
+          "compName": "GUIManualSwitch#37",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 345.0,
-            "y": 235.0
+            "x": 215.0,
+            "y": 260.0
           },
           {
-            "x": 345.0,
-            "y": 250.0
+            "x": 215.0,
+            "y": 280.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "GUIManualSwitch#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 360.0,
-            "y": 85.0
+            "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": "GUIBitDisplay#6",
-          "pinName": ""
+          "compName": "Am2904",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIManualSwitch#12",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I11"
+          "compName": "Am2904",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIManualSwitch#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIManualSwitch#34",
+          "compName": "GUIManualSwitch#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "IN"
-        },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 215.0
+          },
+          {
+            "x": 195.0,
+            "y": 225.0
+          }
+        ]
       }
     ],
     "version": "0.1.1"
   "symbolRendererSnippetID": "default",
   "outlineRendererSnippetID": "default",
   "highLevelStateHandlerSnippetID": "default",
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 6f679a9..89eab0a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_R",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,50 +35,63 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "_S",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 40.0,
-          "y": 12.5
+          "x": 10.0,
+          "y": 7.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 40.0,
+          "y": 12.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 64.0,
-          "y": 36.5
+          "x": 34.0,
+          "y": 16.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 16.5
+          "x": 64.0,
+          "y": 36.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "_q",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#0",
@@ -108,14 +123,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_S"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "_q",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
@@ -141,37 +156,29 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_S"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 65.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
             "y": 22.5
           }
         ]
@@ -190,34 +197,31 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
             "y": 22.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -244,5 +248,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef57797..5e343e0 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,26 +26,27 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 50.0,
+          "x": 20.0,
           "y": 15.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 20.0,
+          "x": 50.0,
           "y": 15.0
         },
         "params": 1
@@ -59,39 +61,40 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "A"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#1"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#1"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -100,13 +103,13 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 45.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
@@ -117,29 +120,29 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 45.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#5"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -149,5 +152,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 87b7394..c7ae05e 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,26 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,7 +71,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,39 +80,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 96.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUIand",
         "name": "GUIand#0",
@@ -116,18 +97,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 30.0,
-          "y": 57.5
+          "y": 32.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 30.0,
-          "y": 32.5
+          "y": 57.5
         }
       },
       {
@@ -137,31 +118,58 @@ mograsim version: 0.1.3
           "x": 30.0,
           "y": 82.5
         }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIand#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
@@ -170,101 +178,89 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "GUIand#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 22.5
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -284,53 +280,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#2",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -340,5 +349,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index bd61b9d..5f6d292 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,74 +5,83 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 75.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "C4",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 35.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "C4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +89,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,20 +116,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUIor_4",
-        "name": "GUIor_4#0",
-        "pos": {
-          "x": 35.0,
-          "y": 37.5
-        }
-      },
+    "components": [
       {
         "id": "GUIand41",
         "name": "GUIand41#0",
@@ -126,206 +130,272 @@ mograsim version: 0.1.3
           "x": 15.0,
           "y": 137.5
         }
+      },
+      {
+        "id": "GUIor_4",
+        "name": "GUIor_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 80.0,
-            "y": 52.5
+            "x": 10.0,
+            "y": 112.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 10.0,
+            "y": 142.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 75.0,
-            "y": 42.5
+            "x": 5.0,
+            "y": 137.5
           },
           {
-            "x": 75.0,
-            "y": 12.5
+            "x": 5.0,
+            "y": 152.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIor_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 80.0,
-            "y": 72.5
+            "x": 65.0,
+            "y": 152.5
           },
           {
-            "x": 80.0,
-            "y": 87.5
+            "x": 65.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIor_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#15",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 162.5
+          },
+          {
+            "x": 60.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B1"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 142.5
+            "x": 55.0,
+            "y": 172.5
           },
           {
-            "x": 70.0,
-            "y": 120.0
+            "x": 55.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 120.0
+            "x": 15.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 82.5
+            "x": 15.0,
+            "y": 112.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C4"
+          "compName": "GUIor_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 5.0,
-            "y": 87.5
+            "x": 75.0,
+            "y": 42.5
           },
           {
-            "x": 5.0,
-            "y": 72.5
+            "x": 75.0,
+            "y": 12.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C3"
+          "compName": "GUIor_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "GUIor_4#0",
-          "pinName": "A3"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C2"
+          "compName": "GUIor_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 80.0,
+            "y": 72.5
           },
           {
-            "x": 5.0,
-            "y": 52.5
+            "x": 80.0,
+            "y": 87.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A2"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 137.5
+            "y": 187.5
           },
           {
             "x": 5.0,
-            "y": 152.5
+            "y": 172.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A1"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 10.0,
-            "y": 112.5
+            "y": 212.5
           },
           {
             "x": 10.0,
-            "y": 142.5
+            "y": 182.5
           }
         ]
       },
@@ -352,146 +422,89 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "C2"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B2"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 65.0,
-            "y": 152.5
-          },
-          {
-            "x": 65.0,
-            "y": 125.0
-          },
-          {
-            "x": 25.0,
-            "y": 125.0
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 25.0,
-            "y": 92.5
+            "x": 5.0,
+            "y": 52.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "GUIor_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 212.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "C4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
+          "compName": "GUIor_4#0",
           "pinName": "A4"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 187.5
+            "y": 87.5
           },
           {
             "x": 5.0,
-            "y": 172.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 172.5
-          },
-          {
-            "x": 55.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 112.5
+            "y": 72.5
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B3"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 162.5
+            "x": 70.0,
+            "y": 142.5
           },
           {
-            "x": 60.0,
-            "y": 130.0
+            "x": 70.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 130.0
+            "x": 30.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 102.5
+            "x": 30.0,
+            "y": 82.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -501,5 +514,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3523e99..7e28bfd 100644 (file)
@@ -1,31 +1,33 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y00",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "Y11",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "Y10",
-      "logicWidth": 1
+      "name": "Y00",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,43 +35,46 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y01",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y10",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "Y11",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 27.5
+          "y": 2.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 10.0,
-          "y": 2.5
+          "y": 27.5
         },
         "params": 1
       },
@@ -83,18 +88,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 40.0,
-          "y": 52.5
+          "y": 27.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 40.0,
-          "y": 27.5
+          "y": 52.5
         }
       },
       {
@@ -105,6 +110,15 @@ mograsim version: 0.1.3
           "y": 77.5
         }
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -116,10 +130,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 36.5,
+          "y": 61.5
         },
         "params": 1
       },
@@ -134,10 +148,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 36.5,
-          "y": 61.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
@@ -152,10 +166,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 31.5,
+          "y": 11.5
         },
         "params": 1
       },
@@ -167,32 +181,71 @@ mograsim version: 0.1.3
           "y": 36.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 31.5,
-          "y": 11.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 37.5,
-            "y": 32.5
+            "x": 32.5,
+            "y": 7.5
           }
         ]
       },
@@ -215,18 +268,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#2",
+          "compName": "GUIand#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 32.5,
-            "y": 57.5
+            "x": 37.5,
+            "y": 32.5
           }
         ]
       },
@@ -249,18 +302,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#3",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 37.5,
-            "y": 82.5
+            "x": 32.5,
+            "y": 57.5
           }
         ]
       },
@@ -278,106 +331,98 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 32.5,
-            "y": 92.5
+            "x": 37.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#19",
         "path": [
-          {
-            "x": 5.0,
-            "y": 67.5
-          },
           {
             "x": 32.5,
-            "y": 67.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 7.5,
-            "y": 62.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y00"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#20"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y01"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#21"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y10"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#22"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y11"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#23"
       },
       {
         "pin1": {
@@ -385,144 +430,105 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y01"
-        },
-        "name": "unnamedWire#21"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y00"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20"
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 32.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 32.5,
-            "y": 7.5
+            "x": 7.5,
+            "y": 62.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y11"
-        },
-        "name": "unnamedWire#23"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y10"
-        },
-        "name": "unnamedWire#22"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -532,5 +538,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 66af673..30c17e6 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "params": 1
+      },
       {
         "id": "GUI_rsLatch",
         "name": "GUI_rsLatch#0",
@@ -47,6 +59,14 @@ mograsim version: 0.1.3
           "y": 10.0
         }
       },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1",
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        }
+      },
       {
         "id": "GUInand3",
         "name": "GUInand3#0",
@@ -56,22 +76,14 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 60.0
+          "x": 9.0,
+          "y": 24.0
         },
         "params": 1
       },
-      {
-        "id": "GUI_rsLatch",
-        "name": "GUI_rsLatch#1",
-        "pos": {
-          "x": 120.0,
-          "y": 30.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -83,10 +95,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 9.0,
-          "y": 24.0
+          "x": 99.0,
+          "y": 34.0
         },
         "params": 1
       },
@@ -98,153 +110,123 @@ mograsim version: 0.1.3
           "y": 44.0
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 99.0,
-          "y": 34.0
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#13"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_S"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "A"
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 35.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 100.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#13"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_Q"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "pinName": "_Q"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUInand3#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 15.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -274,63 +256,85 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUInand3#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 100.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUInand3#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUI_rsLatch#1",
-          "pinName": "_R"
+          "pinName": "_S"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -353,5 +357,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d03fafe..a717818 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,20 +122,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -123,10 +147,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
@@ -141,10 +165,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -157,6 +181,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -165,44 +198,95 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 175.0
+          },
+          {
+            "x": 5.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +302,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +326,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +357,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +383,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +407,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +440,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 200.0
-          },
-          {
-            "x": 45.0,
-            "y": 200.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +486,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +534,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +573,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,95 +609,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 225.0
-          },
-          {
-            "x": 10.0,
-            "y": 145.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 175.0
-          },
-          {
-            "x": 5.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -712,5 +722,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3108cc5..c34cb35 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "_WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "_WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,20 +122,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -123,10 +147,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
@@ -141,10 +165,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -157,6 +181,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -165,44 +198,104 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 85.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 225.0
+          },
+          {
+            "x": 20.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +311,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +335,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +366,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +392,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +416,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +449,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 210.0
-          },
-          {
-            "x": 45.0,
-            "y": 210.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 135.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +495,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +543,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +582,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
         "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,104 +618,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 20.0,
-            "y": 225.0
-          },
-          {
-            "x": 20.0,
-            "y": 105.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "_WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 175.0
-          },
-          {
-            "x": 15.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -721,5 +731,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 034ab79..b09c439 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "E",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "E",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -57,11 +69,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 2.5
+          "x": 4.0,
+          "y": 36.5
         },
         "params": 1
       },
@@ -73,97 +85,78 @@ mograsim version: 0.1.3
           "y": 11.5
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "E"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 22.5
+            "x": 5.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "E"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0"
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -191,51 +184,62 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 5.0,
-            "y": 42.5
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -258,5 +262,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d798d7f..3bc4df7 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -6,105 +5,95 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 25.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 14.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 14.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0",
         "pos": {
-          "x": 14.0,
-          "y": 96.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 7.5
+        }
       },
       {
         "id": "GUIdlatch",
@@ -116,10 +105,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdlatch",
-        "name": "GUIdlatch#0",
+        "name": "GUIdlatch#2",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 57.5
         }
       },
       {
@@ -131,206 +120,226 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIdlatch",
-        "name": "GUIdlatch#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 30.0,
-          "y": 57.5
-        }
+          "x": 14.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIdlatch#3",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIdlatch#3",
+          "pinName": "E"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#3",
           "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIdlatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "GUIdlatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#2",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 22.5
-          }
-        ]
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdlatch#3",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 112.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
+          "compName": "GUIdlatch#2",
           "pinName": "E"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "E"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#0",
           "pinName": "E"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIdlatch#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "compName": "GUIdlatch#2",
+          "pinName": "D"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -391,5 +400,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d464701..8b41bd3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -41,12 +44,13 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -73,46 +77,18 @@ mograsim version: 0.1.3
         }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Z"
-        },
-        "name": "unnamedWire#7"
-      },
-      {
-        "pin1": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "_Z"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 22.5
-          },
-          {
-            "x": 82.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
@@ -128,26 +104,24 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "A"
+          "compName": "GUIhalfadder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#2"
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#1",
+          "compName": "GUIhalfadder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUIhalfadder#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
@@ -163,27 +137,58 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIhalfadder#1",
-          "pinName": "B"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#3"
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 22.5
+          },
+          {
+            "x": 82.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIhalfadder#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Z"
         },
-        "name": "unnamedWire#2"
+        "name": "unnamedWire#7"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -193,5 +198,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index d0a0fa2..92720a8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,12 +35,22 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -50,10 +62,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 15.0
+          "x": 40.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -68,28 +80,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -103,72 +106,88 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 35.0,
-            "y": 17.5
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Z"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 80.0,
-            "y": 25.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 62.5,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -177,27 +196,27 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -206,35 +225,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 62.5,
-            "y": 12.5
-          },
-          {
-            "x": 62.5,
-            "y": 7.5
+            "y": 42.5
           }
         ]
       },
@@ -244,80 +242,86 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 5.0,
-            "y": 42.5
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 35.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 17.5
+            "x": 35.0,
+            "y": 32.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -327,5 +331,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c0d53e5..279f905 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,28 +17,40 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -50,10 +62,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 35.0,
+          "y": 47.5
         },
         "params": 1
       },
@@ -68,107 +80,93 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 21.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 47.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 21.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#10"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -184,51 +182,57 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -238,5 +242,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c90cd3e..1caab2c 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0_1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Y2",
-      "logicWidth": 1
+      "name": "I0_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,47 +26,44 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I0_3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
-      },
-      "name": "I1_2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "Y3",
-      "logicWidth": 1
+      "name": "I0_4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "I0_2",
-      "logicWidth": 1
+      "name": "I1_1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 65.0
       },
-      "name": "I1_1",
-      "logicWidth": 1
+      "name": "I1_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "Y4",
-      "logicWidth": 1
+      "name": "I1_3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +71,8 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "I1_4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,28 +80,73 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "I0_4",
-      "logicWidth": 1
+      "name": "Y1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "I1_3",
-      "logicWidth": 1
+      "name": "Y2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#0",
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#1",
+        "pos": {
+          "x": 30.0,
+          "y": 42.5
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#2",
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        }
+      },
       {
         "id": "GUImux1",
         "name": "GUImux1#3",
@@ -121,30 +157,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 24.0,
-          "y": 46.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 24.0,
-          "y": 11.5
+          "y": 46.5
         },
         "params": 1
       },
-      {
-        "id": "GUImux1",
-        "name": "GUImux1#0",
-        "pos": {
-          "x": 30.0,
-          "y": 7.5
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#2",
@@ -153,35 +181,77 @@ mograsim version: 0.1.3
           "y": 81.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#2",
-        "pos": {
-          "x": 30.0,
-          "y": 77.5
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#1",
-        "pos": {
-          "x": 30.0,
-          "y": 42.5
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "GUImux1#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#14"
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -206,24 +276,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_4"
+          "compName": "GUImux1#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#3",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 112.5
-          },
-          {
-            "x": 5.0,
-            "y": 127.5
-          }
-        ]
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -244,14 +304,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUImux1#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -276,91 +346,67 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#1",
+          "compName": "GUImux1#3",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_2"
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I1"
+          "compName": "GUImux1#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 15.0,
-            "y": 162.5
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 15.0,
-            "y": 67.5
+            "x": 5.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_2"
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I0"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 62.5
+            "x": 10.0,
+            "y": 137.5
           },
           {
-            "x": 5.0,
-            "y": 57.5
+            "x": 10.0,
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -381,100 +427,67 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 137.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_3"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUImux1#2",
+          "compName": "GUImux1#1",
           "pinName": "I0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 87.5
+            "y": 62.5
           },
           {
             "x": 5.0,
-            "y": 92.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_1"
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUImux1#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 15.0,
+            "y": 162.5
           },
           {
-            "x": 5.0,
-            "y": 22.5
+            "x": 15.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUImux1#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#2",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -484,5 +497,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 2542ce0..b1cf3a6 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 70.0,
   "height": 70.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 1
+      "name": "I01",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 70.0,
-        "y": 10.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 1
+      "name": "I11",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,12 +53,46 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 70.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 60.0,
+          "y": 35.0
+        }
+      },
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 60.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -72,6 +102,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -83,10 +122,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 24.0
+          "y": 49.0
         },
         "params": 1
       },
@@ -98,52 +137,72 @@ mograsim version: 0.1.3
           "y": 39.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 49.0
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 20.0
+          }
+        ]
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 60.0,
-          "y": 100.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 60.0,
-          "y": 35.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 115.0,
-          "y": 20.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S1"
+          "pinName": "S2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -160,20 +219,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -194,133 +248,92 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S1"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 55.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 25.0
+            "x": 55.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I00"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 105.0
+            "x": 35.0,
+            "y": 75.0
           },
           {
-            "x": 105.0,
-            "y": 45.0
+            "x": 35.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 105.0,
-            "y": 40.0
+            "x": 40.0,
+            "y": 100.0
           },
           {
-            "x": 105.0,
-            "y": 35.0
+            "x": 40.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 20.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -344,95 +357,89 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I10"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 105.0,
+            "y": 40.0
           },
           {
-            "x": 40.0,
-            "y": 70.0
+            "x": 105.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 35.0,
-            "y": 75.0
+            "x": 105.0,
+            "y": 105.0
           },
           {
-            "x": 35.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 25.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -443,5 +450,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 042d9e1..7d1342a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 62.0,
   "height": 90.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 4
+      "name": "I01",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 62.0,
-        "y": 16.0
-      },
-      "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 4
+      "name": "I11",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,29 +53,45 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 62.0,
+        "y": 16.0
+      },
+      "name": "Y",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 19.0,
-          "y": 34.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 30.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 25.0,
-          "y": 45.0
-        },
-        "params": 4
+          "x": 40.0,
+          "y": 125.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 100.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUIMerger",
@@ -92,97 +104,110 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "name": "GUISplitter#0",
         "pos": {
           "x": 25.0,
-          "y": 180.0
+          "y": 45.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#1",
         "pos": {
           "x": 25.0,
-          "y": 140.0
+          "y": 85.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "name": "GUISplitter#2",
         "pos": {
           "x": 25.0,
-          "y": 85.0
+          "y": 140.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 40.0,
-          "y": 125.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 40.0,
-          "y": 30.0
-        }
+          "x": 25.0,
+          "y": 180.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 100.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 34.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
@@ -198,14 +223,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
@@ -227,14 +264,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
@@ -254,18 +291,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -290,23 +315,14 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUISplitter#2",
-          "pinName": "I"
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 155.0
-          },
-          {
-            "x": 15.0,
-            "y": 125.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -322,15 +338,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 155.0
+          },
+          {
+            "x": 15.0,
+            "y": 125.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -356,13 +381,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -379,24 +404,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 75.0
-          },
-          {
-            "x": 80.0,
-            "y": 130.0
-          }
-        ]
+        "name": "unnamedWire#25",
+        "path": []
       },
       {
         "pin1": {
@@ -413,21 +429,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "pinName": "I1_1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 90.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 75.0
           },
           {
-            "x": 90.0,
-            "y": 150.0
+            "x": 80.0,
+            "y": 130.0
           }
         ]
       },
@@ -454,74 +470,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
           "compName": "GUISplitter#3",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
           "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -547,26 +524,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
@@ -583,101 +548,143 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O3"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIMerger#0",
-          "pinName": "O"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O3"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#3",
           "pinName": "O2"
         },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -688,5 +695,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3f6a8bc..a27f5ca 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 80.0,
   "height": 120.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "I000",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 70.0
-      },
-      "name": "I011",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 100.0
+        "y": 50.0
       },
-      "name": "I110",
-      "logicWidth": 1
+      "name": "I001",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +26,17 @@ mograsim version: 0.1.3
         "y": 60.0
       },
       "name": "I010",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 90.0
+        "y": 70.0
       },
-      "name": "I101",
-      "logicWidth": 1
+      "name": "I011",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,31 +44,35 @@ mograsim version: 0.1.3
         "y": 80.0
       },
       "name": "I100",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 90.0
       },
-      "name": "I111",
-      "logicWidth": 1
+      "name": "I101",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 80.0,
-        "y": 10.0
+        "x": 0.0,
+        "y": 100.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "I110",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 50.0
+        "y": 110.0
       },
-      "name": "I001",
-      "logicWidth": 1
+      "name": "I111",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +80,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +89,8 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,30 +98,22 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 80.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 94.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 19.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#0",
@@ -129,6 +122,14 @@ mograsim version: 0.1.3
           "y": 185.0
         }
       },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 125.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#3",
@@ -138,36 +139,113 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 125.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I111"
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "I11"
         },
-        "name": "unnamedWire#14",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I011"
+        },
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 145.0
           },
           {
             "x": 15.0,
-            "y": 245.0
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I00"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I100"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 215.0
+          },
+          {
+            "x": 10.0,
+            "y": 200.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I101"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
@@ -191,22 +269,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 110.0,
-            "y": 95.0
+            "x": 15.0,
+            "y": 275.0
           },
           {
-            "x": 110.0,
-            "y": 35.0
+            "x": 15.0,
+            "y": 245.0
           }
         ]
       },
@@ -233,89 +311,56 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 25.0
-          },
-          {
-            "x": 70.0,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
+            "x": 110.0,
+            "y": 95.0
           },
           {
-            "x": 10.0,
-            "y": 135.0
+            "x": 110.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I001"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I000"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I00"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 10.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 25.0
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 70.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -324,31 +369,26 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "S1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "S0"
         },
         "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 25.0,
-            "y": 25.0
+            "y": 195.0
           }
         ]
       },
@@ -371,100 +411,72 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I011"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 145.0
-          },
-          {
-            "x": 15.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 195.0
+            "x": 10.0,
+            "y": 100.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S1"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I101"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I01"
         },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I001"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I00"
+          "compName": "_submodelinterface",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 10.0,
-            "y": 215.0
+            "y": 150.0
           },
           {
             "x": 10.0,
-            "y": 200.0
+            "y": 135.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -475,5 +487,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index e57eefe..28b9a60 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,26 +35,27 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 35.0,
+          "x": 10.0,
           "y": 15.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
+          "x": 35.0,
           "y": 15.0
         },
         "params": 1
@@ -76,39 +79,17 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 62.5
-          },
-          {
-            "x": 60.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
@@ -123,33 +104,30 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 57.5,
-            "y": 25.0
-          },
-          {
-            "x": 57.5,
-            "y": 7.5
+            "x": 32.5,
+            "y": 20.0
           }
         ]
       },
@@ -172,34 +150,60 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -209,5 +213,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index a7e95a3..b80166a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,21 +71,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 30.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -91,28 +89,28 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 30.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 14.0,
-          "y": 36.5
+          "x": 30.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 30.0,
-          "y": 52.5
+          "y": 77.5
         },
         "params": 1
       },
@@ -127,10 +125,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 86.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -142,242 +140,252 @@ mograsim version: 0.1.3
           "y": 61.5
         },
         "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 42.5
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": [
           {
             "x": 15.0,
-            "y": 17.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
-          "pinName": "A"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 57.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 32.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 67.5
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 15.0,
-            "y": 7.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 92.5
+            "y": 42.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -387,5 +395,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b09418..9b6e1bf 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,12 +44,22 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -58,10 +71,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 15.0
+          "y": 115.0
         },
         "params": 1
       },
@@ -76,19 +89,46 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 20.0,
-          "y": 115.0
+          "x": 50.0,
+          "y": 40.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 14.0,
-          "y": 74.0
+          "x": 50.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
         },
         "params": 1
       },
@@ -103,10 +143,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 174.0
+          "y": 74.0
         },
         "params": 1
       },
@@ -121,10 +161,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 104.0,
-          "y": 149.0
+          "x": 14.0,
+          "y": 174.0
         },
         "params": 1
       },
@@ -138,62 +178,84 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 140.0,
-          "y": 90.0
+          "x": 104.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 50.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 50.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 110.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 110.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -208,15 +270,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -231,20 +292,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -265,33 +321,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 105.0,
-            "y": 55.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 105.0,
-            "y": 155.0
+            "y": 55.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -311,14 +379,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23"
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -331,6 +405,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#22"
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23"
+      },
       {
         "pin1": {
           "compName": "GUINandGate#8",
@@ -344,20 +429,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
@@ -366,30 +446,30 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 170.0
+            "y": 70.0
           }
         ]
       },
@@ -412,59 +492,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 130.0
+            "y": 170.0
           }
         ]
       },
@@ -475,69 +514,35 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 15.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#12"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 180.0
+            "y": 80.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -547,5 +552,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ed484c9..232a77f 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 80.0,
@@ -9,55 +8,71 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 25.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 35.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 55.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 65.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,7 +80,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,7 +89,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -81,7 +98,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,29 +107,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "B1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -123,18 +125,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
+          "x": 65.0,
           "y": 52.5
         },
         "params": 1
@@ -150,64 +152,64 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
+          "x": 15.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 36.5
+          "x": 15.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 15.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 6.5,
-          "y": 86.5
+          "x": 15.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 61.5
+          "x": 15.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 136.5
+          "x": 15.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 6.5,
-          "y": 111.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
@@ -222,83 +224,133 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 6.5,
-          "y": 186.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 36.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 6.5,
-          "y": 161.5
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 127.5
+          "x": 6.5,
+          "y": 86.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 15.0,
-          "y": 102.5
+          "x": 6.5,
+          "y": 111.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 15.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 136.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 15.0,
-          "y": 152.5
+          "x": 6.5,
+          "y": 161.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 7.5,
-            "y": 82.5
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
           }
         ]
       },
@@ -309,42 +361,47 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#2",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 7.5,
-            "y": 67.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 7.5,
-            "y": 107.5
+            "y": 82.5
           }
         ]
       },
@@ -367,18 +424,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 7.5,
-            "y": 132.5
+            "y": 107.5
           }
         ]
       },
@@ -406,33 +463,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#5",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 7.5,
-            "y": 142.5
+            "y": 132.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 7.5,
-            "y": 167.5
+            "y": 142.5
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -452,18 +521,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
             "x": 7.5,
-            "y": 192.5
+            "y": 167.5
           }
         ]
       },
@@ -486,22 +555,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 45.0,
-            "y": 112.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 7.5,
+            "y": 192.5
           }
         ]
       },
@@ -528,22 +593,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 50.0,
-            "y": 137.5
+            "x": 45.0,
+            "y": 112.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -570,22 +635,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 55.0,
-            "y": 162.5
+            "x": 50.0,
+            "y": 137.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -612,84 +677,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 7.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#8",
-        "path": [
+            "x": 55.0,
+            "y": 162.5
+          },
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -715,30 +731,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 32.5
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
@@ -756,120 +764,124 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#11",
-          "pinName": "B"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 57.5
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 7.5,
-            "y": 42.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -879,5 +891,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ea3eff9..6322110 100644 (file)
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 35.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 44.0,
-          "y": 649.0
-        },
-        "params": 1
+          "x": 130.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 39.0,
-          "y": 639.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 129.0,
-          "y": 329.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 49.0,
-          "y": 659.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 119.0,
-          "y": 349.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 124.0,
-          "y": 339.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 114.0,
-          "y": 359.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
-          "x": 104.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2",
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3",
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -226,224 +290,156 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 94.0,
-          "y": 184.0
+          "x": 104.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 99.0,
-          "y": 174.0
+          "x": 44.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 649.0
+          "x": 49.0,
+          "y": 509.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 549.0
+          "y": 629.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 49.0,
-          "y": 809.0
+          "x": 39.0,
+          "y": 639.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 44.0,
-          "y": 749.0
+          "y": 649.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 39.0,
-          "y": 489.0
+          "x": 49.0,
+          "y": 659.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 34.0,
-          "y": 479.0
+          "x": 129.0,
+          "y": 329.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 44.0,
-          "y": 499.0
+          "x": 124.0,
+          "y": 339.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 34.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 349.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 49.0,
-          "y": 509.0
+          "x": 114.0,
+          "y": 359.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
-        "pos": {
-          "x": 135.0,
-          "y": 735.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
-        "pos": {
-          "x": 135.0,
-          "y": 435.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
-        "pos": {
-          "x": 135.0,
-          "y": 585.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
-        "pos": {
-          "x": 235.0,
-          "y": 635.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
-        "pos": {
-          "x": 235.0,
-          "y": 785.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
-        "pos": {
-          "x": 235.0,
-          "y": 485.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 55.0,
-          "y": 775.0
-        }
+          "x": 99.0,
+          "y": 174.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 55.0,
-          "y": 625.0
-        }
+          "x": 129.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 135.0,
-          "y": 325.0
-        }
+          "x": 124.0,
+          "y": 489.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "name": "WireCrossPoint#22",
         "pos": {
           "x": 119.0,
-          "y": 799.0
+          "y": 499.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "name": "WireCrossPoint#23",
         "pos": {
           "x": 114.0,
-          "y": 809.0
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 235.0,
-          "y": 375.0
-        }
+          "x": 129.0,
+          "y": 629.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -456,10 +452,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 129.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 649.0
         },
         "params": 1
       },
@@ -474,10 +470,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 119.0,
-          "y": 649.0
+          "x": 129.0,
+          "y": 779.0
         },
         "params": 1
       },
@@ -492,876 +488,1109 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 129.0,
-          "y": 779.0
+          "x": 94.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 119.0,
+          "y": 799.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 114.0,
+          "y": 809.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 124.0,
-          "y": 489.0
+          "x": 34.0,
+          "y": 549.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 129.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 114.0,
-          "y": 509.0
+          "x": 44.0,
+          "y": 749.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 119.0,
-          "y": 499.0
+          "x": 49.0,
+          "y": 809.0
         },
         "params": 1
-      }
-    ],
-    "innerWires": [
+      },
       {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D3"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "params": 1
       },
       {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D2"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D4"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 285.0,
-            "y": 650.0
+            "x": 290.0,
+            "y": 380.0
           },
           {
-            "x": 285.0,
-            "y": 740.0
+            "x": 290.0,
+            "y": 445.0
           },
           {
-            "x": 225.0,
-            "y": 740.0
+            "x": 230.0,
+            "y": 445.0
           },
           {
-            "x": 225.0,
-            "y": 800.0
+            "x": 230.0,
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#102",
         "path": [
           {
-            "x": 280.0,
-            "y": 660.0
+            "x": 285.0,
+            "y": 390.0
           },
           {
-            "x": 280.0,
-            "y": 735.0
+            "x": 285.0,
+            "y": 440.0
           },
           {
-            "x": 220.0,
-            "y": 735.0
+            "x": 225.0,
+            "y": 440.0
           },
           {
-            "x": 220.0,
-            "y": 810.0
+            "x": 225.0,
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#103",
         "path": [
           {
-            "x": 305.0,
-            "y": 800.0
+            "x": 280.0,
+            "y": 400.0
           },
           {
-            "x": 305.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#115",
-        "path": [
+            "x": 280.0,
+            "y": 435.0
+          },
           {
-            "x": 310.0,
-            "y": 810.0
+            "x": 220.0,
+            "y": 435.0
           },
           {
-            "x": 310.0,
-            "y": 250.0
+            "x": 220.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#104",
         "path": [
           {
             "x": 275.0,
-            "y": 670.0
+            "y": 410.0
           },
           {
             "x": 275.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 820.0
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 300.0,
-            "y": 790.0
+            "x": 290.0,
+            "y": 490.0
           },
           {
-            "x": 300.0,
-            "y": 50.0
+            "x": 290.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#106",
         "path": [
           {
-            "x": 185.0,
-            "y": 340.0
+            "x": 285.0,
+            "y": 500.0
           },
           {
-            "x": 185.0,
-            "y": 425.0
+            "x": 285.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 425.0
+            "x": 225.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 450.0
+            "x": 225.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 180.0,
-            "y": 350.0
+            "x": 280.0,
+            "y": 510.0
           },
           {
-            "x": 180.0,
-            "y": 420.0
+            "x": 280.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 420.0
+            "x": 220.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 460.0
+            "x": 220.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 35.0,
-            "y": 780.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
-        },
-        "name": "unnamedWire#116",
-        "path": [
+            "x": 275.0,
+            "y": 520.0
+          },
           {
-            "x": 315.0,
-            "y": 820.0
+            "x": 275.0,
+            "y": 580.0
           },
           {
-            "x": 315.0,
-            "y": 350.0
+            "x": 215.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#2",
           "pinName": "C1"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 190.0,
-            "y": 330.0
+            "x": 290.0,
+            "y": 640.0
           },
           {
-            "x": 190.0,
-            "y": 430.0
+            "x": 290.0,
+            "y": 745.0
           },
           {
-            "x": 130.0,
-            "y": 430.0
+            "x": 230.0,
+            "y": 745.0
           },
           {
-            "x": 130.0,
-            "y": 440.0
+            "x": 230.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D3"
+          "compName": "GUIand41#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 45.0,
-            "y": 800.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D2"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 40.0,
-            "y": 790.0
+            "x": 285.0,
+            "y": 650.0
+          },
+          {
+            "x": 285.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
-        },
-        "name": "unnamedWire#45",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#100",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
           "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#111",
         "path": [
           {
             "x": 280.0,
-            "y": 400.0
+            "y": 660.0
           },
           {
             "x": 280.0,
-            "y": 435.0
+            "y": 735.0
           },
           {
             "x": 220.0,
-            "y": 435.0
+            "y": 735.0
           },
           {
             "x": 220.0,
-            "y": 510.0
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
           "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#112",
         "path": [
           {
             "x": 275.0,
-            "y": 410.0
+            "y": 670.0
           },
           {
             "x": 275.0,
-            "y": 430.0
+            "y": 730.0
           },
           {
             "x": 215.0,
-            "y": 430.0
+            "y": 730.0
           },
           {
             "x": 215.0,
-            "y": 520.0
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 290.0,
-            "y": 380.0
-          },
-          {
-            "x": 290.0,
-            "y": 445.0
-          },
-          {
-            "x": 230.0,
-            "y": 445.0
+            "x": 300.0,
+            "y": 790.0
           },
           {
-            "x": 230.0,
-            "y": 490.0
+            "x": 300.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 285.0,
-            "y": 390.0
-          },
-          {
-            "x": 285.0,
-            "y": 440.0
-          },
-          {
-            "x": 225.0,
-            "y": 440.0
+            "x": 305.0,
+            "y": 800.0
           },
           {
-            "x": 225.0,
-            "y": 500.0
+            "x": 305.0,
+            "y": 150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 330.0
+          },
+          {
+            "x": 190.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 340.0
+          },
+          {
+            "x": 185.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#3",
           "pinName": "C3"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 280.0,
-            "y": 510.0
+            "x": 180.0,
+            "y": 350.0
           },
           {
-            "x": 280.0,
-            "y": 585.0
+            "x": 180.0,
+            "y": 420.0
           },
           {
-            "x": 220.0,
-            "y": 585.0
+            "x": 120.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 360.0
+          },
+          {
+            "x": 175.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 470.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 440.0
+          },
+          {
+            "x": 190.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 590.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 450.0
+          },
+          {
+            "x": 185.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 600.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#123",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 460.0
+          },
+          {
+            "x": 180.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#124",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 470.0
+          },
+          {
+            "x": 175.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#125",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 590.0
+          },
+          {
+            "x": 190.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 740.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 600.0
+          },
+          {
+            "x": 185.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 610.0
+          },
+          {
+            "x": 180.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 620.0
+          },
+          {
+            "x": 175.0,
+            "y": 715.0
+          },
+          {
+            "x": 115.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 660.0
+            "x": 115.0,
+            "y": 770.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 275.0,
-            "y": 520.0
+            "x": 190.0,
+            "y": 740.0
           },
           {
-            "x": 275.0,
-            "y": 580.0
+            "x": 190.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 580.0
+            "x": 325.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 670.0
+            "x": 325.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 290.0,
-            "y": 490.0
+            "x": 185.0,
+            "y": 155.0
           },
           {
-            "x": 290.0,
-            "y": 595.0
+            "x": 185.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 595.0
+            "x": 30.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 640.0
+            "x": 30.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 285.0,
-            "y": 500.0
+            "x": 185.0,
+            "y": 750.0
           },
           {
-            "x": 285.0,
-            "y": 590.0
+            "x": 185.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 590.0
+            "x": 330.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 650.0
+            "x": 330.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 290.0,
-            "y": 640.0
+            "x": 180.0,
+            "y": 760.0
           },
           {
-            "x": 290.0,
-            "y": 745.0
+            "x": 180.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 745.0
+            "x": 335.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 790.0
+            "x": 335.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q3"
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#55",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 770.0
+          },
+          {
+            "x": 175.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1395,29 +1624,29 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
+          "compName": "GUIdlatch4#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 185.0,
-            "y": 155.0
+            "x": 175.0,
+            "y": 175.0
           },
           {
-            "x": 185.0,
-            "y": 250.0
+            "x": 175.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 250.0
+            "x": 20.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 370.0
+            "x": 20.0,
+            "y": 670.0
           }
         ]
       },
@@ -1450,57 +1679,28 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 175.0
-          },
-          {
-            "x": 175.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 670.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1517,18 +1717,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 330.0
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
           }
         ]
       },
@@ -1551,18 +1755,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 350.0
+            "x": 35.0,
+            "y": 330.0
           }
         ]
       },
@@ -1585,15 +1789,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1614,14 +1823,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -1638,14 +1847,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -1662,544 +1871,410 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 120.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#81",
-        "path": [
+            "x": 10.0,
+            "y": 350.0
+          },
           {
-            "x": 130.0,
-            "y": 830.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#92",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#91",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
+            "x": 45.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 350.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 250.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q1"
         },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A3"
+        "pin2": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
@@ -2217,514 +2292,522 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q1"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 175.0,
-            "y": 770.0
+            "x": 210.0,
+            "y": 50.0
           },
           {
-            "x": 175.0,
-            "y": 895.0
-          },
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#62",
+        "path": [
           {
-            "x": 340.0,
-            "y": 895.0
+            "x": 205.0,
+            "y": 60.0
           },
           {
-            "x": 340.0,
-            "y": 750.0
+            "x": 205.0,
+            "y": 570.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 185.0,
-            "y": 750.0
+            "x": 200.0,
+            "y": 70.0
           },
           {
-            "x": 185.0,
-            "y": 885.0
-          },
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
           {
-            "x": 330.0,
-            "y": 885.0
+            "x": 195.0,
+            "y": 80.0
           },
           {
-            "x": 330.0,
-            "y": 550.0
+            "x": 195.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 180.0,
-            "y": 760.0
-          },
-          {
-            "x": 180.0,
-            "y": 890.0
-          },
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#66",
+        "path": [
           {
-            "x": 335.0,
-            "y": 890.0
-          },
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#67",
+        "path": [
           {
-            "x": 335.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 210.0,
-            "y": 50.0
-          },
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#69",
+        "path": [
           {
-            "x": 210.0,
-            "y": 420.0
+            "x": 130.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "Q4"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 70.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
+            "x": 125.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 205.0,
-            "y": 60.0
-          },
-          {
-            "x": 205.0,
-            "y": 570.0
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 110.0,
-            "y": 370.0
+            "x": 130.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 195.0,
-            "y": 80.0
-          },
-          {
-            "x": 195.0,
-            "y": 870.0
+            "x": 125.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 100.0,
-            "y": 670.0
+            "x": 120.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 105.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#77",
         "path": [
           {
             "x": 130.0,
-            "y": 380.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#78",
         "path": [
           {
-            "x": 95.0,
-            "y": 820.0
+            "x": 125.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 190.0,
-            "y": 440.0
-          },
-          {
-            "x": 190.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 590.0
+            "x": 120.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#122",
-        "path": [
-          {
-            "x": 185.0,
-            "y": 450.0
-          },
-          {
-            "x": 185.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 600.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#80",
         "path": [
-          {
-            "x": 175.0,
-            "y": 360.0
-          },
-          {
-            "x": 175.0,
-            "y": 415.0
-          },
-          {
-            "x": 115.0,
-            "y": 415.0
-          },
           {
             "x": 115.0,
-            "y": 470.0
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#81",
         "path": [
-          {
-            "x": 190.0,
-            "y": 590.0
-          },
-          {
-            "x": 190.0,
-            "y": 730.0
-          },
-          {
-            "x": 130.0,
-            "y": 730.0
-          },
           {
             "x": 130.0,
-            "y": 740.0
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#82",
         "path": [
-          {
-            "x": 185.0,
-            "y": 600.0
-          },
-          {
-            "x": 185.0,
-            "y": 725.0
-          },
-          {
-            "x": 125.0,
-            "y": 725.0
-          },
           {
             "x": 125.0,
-            "y": 750.0
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 125.0,
-            "y": 390.0
+            "x": 120.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 180.0,
-            "y": 460.0
-          },
-          {
-            "x": 180.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 610.0
+            "x": 115.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#124",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 470.0
-          },
-          {
-            "x": 175.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 620.0
-          }
-        ]
+        "name": "unnamedWire#87",
+        "path": []
       },
       {
         "pin1": {
@@ -2732,62 +2815,35 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
-        "name": "unnamedWire#72",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#88",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#129",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 740.0
-          },
-          {
-            "x": 190.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#71",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       },
       {
         "pin1": {
@@ -2795,161 +2851,122 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#74",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#90",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#127",
-        "path": [
-          {
-            "x": 180.0,
-            "y": 610.0
-          },
-          {
-            "x": 180.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 760.0
-          }
-        ]
+        "name": "unnamedWire#91",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
-        "name": "unnamedWire#73",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#93",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 620.0
-          },
-          {
-            "x": 175.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 770.0
-          }
-        ]
+        "name": "unnamedWire#95",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
-        "name": "unnamedWire#76",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 560.0
-          }
-        ]
+        "name": "unnamedWire#96",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#97",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
-        "name": "unnamedWire#78",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 690.0
-          }
-        ]
+        "name": "unnamedWire#98",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 680.0
-          }
-        ]
+        "name": "unnamedWire#99",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3007,5 +3024,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e5e71cc..55ddef8 100644 (file)
@@ -1,71 +1,78 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 130.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 65.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,187 +80,240 @@ mograsim version: 0.1.3
         "y": 95.0
       },
       "name": "D1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 115.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 125.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 125.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 75.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 85.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 69.0,
-          "y": 854.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 64.0,
-          "y": 844.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 39.0,
-          "y": 484.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 74.0,
-          "y": 864.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 49.0,
-          "y": 504.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 44.0,
-          "y": 494.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 54.0,
-          "y": 514.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
           "x": 155.0,
-          "y": 325.0
+          "y": 585.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
         "pos": {
-          "x": 224.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#0",
+        "pos": {
+          "x": 80.0,
+          "y": 330.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#1",
+        "pos": {
+          "x": 80.0,
+          "y": 480.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#2",
+        "pos": {
+          "x": 80.0,
+          "y": 630.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#3",
+        "pos": {
+          "x": 80.0,
+          "y": 780.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -266,169 +326,165 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 214.0,
-          "y": 184.0
+          "x": 224.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 219.0,
-          "y": 174.0
+          "x": 69.0,
+          "y": 704.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 64.0,
-          "y": 544.0
+          "x": 74.0,
+          "y": 714.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 59.0,
-          "y": 534.0
+          "y": 834.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 74.0,
-          "y": 564.0
+          "x": 64.0,
+          "y": 844.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 69.0,
-          "y": 554.0
+          "y": 854.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 64.0,
-          "y": 694.0
+          "x": 74.0,
+          "y": 864.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 59.0,
-          "y": 684.0
+          "x": 39.0,
+          "y": 484.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 69.0,
-          "y": 704.0
+          "x": 44.0,
+          "y": 494.0
         },
         "params": 1
       },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 235.0,
-          "y": 150.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 59.0,
-          "y": 834.0
+          "x": 49.0,
+          "y": 504.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 250.0,
-          "y": 375.0
-        }
+          "x": 54.0,
+          "y": 514.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 74.0,
-          "y": 714.0
+          "x": 219.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 155.0,
-          "y": 735.0
-        }
+          "x": 39.0,
+          "y": 634.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#21",
         "pos": {
           "x": 44.0,
-          "y": 349.0
+          "y": 644.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 39.0,
-          "y": 334.0
+          "x": 49.0,
+          "y": 654.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 155.0,
-          "y": 435.0
-        }
+          "x": 54.0,
+          "y": 664.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 54.0,
-          "y": 749.0
+          "x": 39.0,
+          "y": 334.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 155.0,
-          "y": 585.0
-        }
+          "x": 44.0,
+          "y": 349.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -440,1173 +496,1464 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#3",
-        "pos": {
-          "x": 80.0,
-          "y": 780.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#2",
-        "pos": {
-          "x": 80.0,
-          "y": 630.0
-        }
-      },
-      {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#1",
-        "pos": {
-          "x": 80.0,
-          "y": 480.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#0",
-        "pos": {
-          "x": 80.0,
-          "y": 330.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 250.0,
-          "y": 635.0
-        }
+          "x": 54.0,
+          "y": 749.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 214.0,
+          "y": 184.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 785.0
-        }
+          "x": 59.0,
+          "y": 534.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 250.0,
-          "y": 485.0
-        }
+          "x": 64.0,
+          "y": 544.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 44.0,
-          "y": 644.0
+          "x": 69.0,
+          "y": 554.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 634.0
+          "x": 74.0,
+          "y": 564.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 54.0,
-          "y": 664.0
+          "x": 59.0,
+          "y": 684.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 49.0,
-          "y": 654.0
+          "x": 64.0,
+          "y": 694.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B1"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B0"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 45.0,
-            "y": 795.0
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A0"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 40.0,
-            "y": 785.0
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIram2#1",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B0"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 50.0,
-            "y": 805.0
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 140.0,
-            "y": 795.0
+            "y": 495.0
           },
           {
             "x": 140.0,
-            "y": 790.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 140.0,
-            "y": 805.0
+            "y": 505.0
           },
           {
             "x": 140.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#104",
         "path": [
           {
-            "x": 300.0,
-            "y": 390.0
-          },
-          {
-            "x": 300.0,
-            "y": 440.0
-          },
-          {
-            "x": 240.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 515.0
           },
           {
-            "x": 240.0,
-            "y": 500.0
+            "x": 140.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#2",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C3"
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 295.0,
-            "y": 400.0
-          },
-          {
-            "x": 295.0,
-            "y": 435.0
-          },
-          {
-            "x": 235.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 635.0
           },
           {
-            "x": 235.0,
-            "y": 510.0
+            "x": 140.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA4"
+          "compName": "GUIram2#2",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#106",
         "path": [
           {
             "x": 140.0,
-            "y": 815.0
+            "y": 645.0
           },
           {
             "x": 140.0,
-            "y": 810.0
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#2",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C1"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 305.0,
-            "y": 380.0
-          },
-          {
-            "x": 305.0,
-            "y": 445.0
-          },
-          {
-            "x": 245.0,
-            "y": 445.0
+            "x": 140.0,
+            "y": 655.0
           },
           {
-            "x": 245.0,
-            "y": 490.0
+            "x": 140.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y2"
+          "compName": "GUIram2#2",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 300.0,
-            "y": 500.0
-          },
-          {
-            "x": 300.0,
-            "y": 590.0
-          },
-          {
-            "x": 240.0,
-            "y": 590.0
+            "x": 140.0,
+            "y": 665.0
           },
           {
-            "x": 240.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 295.0,
-            "y": 510.0
-          },
-          {
-            "x": 295.0,
-            "y": 585.0
-          },
-          {
-            "x": 235.0,
-            "y": 585.0
+            "x": 140.0,
+            "y": 785.0
           },
           {
-            "x": 235.0,
-            "y": 660.0
+            "x": 140.0,
+            "y": 780.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIram2#3",
-          "pinName": "B1"
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#41",
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 55.0,
-            "y": 815.0
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C4"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 290.0,
-            "y": 410.0
-          },
-          {
-            "x": 290.0,
-            "y": 430.0
-          },
-          {
-            "x": 230.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 805.0
           },
           {
-            "x": 230.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIram2#3",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#112",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 815.0
+          },
+          {
+            "x": 140.0,
+            "y": 810.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C1"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#113",
         "path": [
           {
             "x": 305.0,
-            "y": 490.0
+            "y": 380.0
           },
           {
             "x": 305.0,
-            "y": 595.0
+            "y": 445.0
           },
           {
             "x": 245.0,
-            "y": 595.0
+            "y": 445.0
           },
           {
             "x": 245.0,
-            "y": 640.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 40.0,
-            "y": 250.0
+            "x": 300.0,
+            "y": 390.0
+          },
+          {
+            "x": 300.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D1"
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 60.0,
-            "y": 385.0
+            "x": 295.0,
+            "y": 400.0
+          },
+          {
+            "x": 295.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D3"
+          "compName": "GUIandor414#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 70.0,
-            "y": 405.0
+            "x": 290.0,
+            "y": 410.0
+          },
+          {
+            "x": 290.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D2"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 65.0,
-            "y": 395.0
+            "x": 305.0,
+            "y": 490.0
+          },
+          {
+            "x": 305.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 500.0
+          },
+          {
+            "x": 300.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 650.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D4"
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 75.0,
-            "y": 415.0
+            "x": 295.0,
+            "y": 510.0
+          },
+          {
+            "x": 295.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 140.0,
-            "y": 365.0
+            "x": 15.0,
+            "y": 850.0
           },
           {
-            "x": 140.0,
-            "y": 360.0
+            "x": 15.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA3"
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#120",
         "path": [
           {
-            "x": 140.0,
-            "y": 505.0
+            "x": 290.0,
+            "y": 520.0
           },
           {
-            "x": 140.0,
-            "y": 500.0
+            "x": 290.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#121",
         "path": [
           {
-            "x": 140.0,
-            "y": 515.0
+            "x": 305.0,
+            "y": 640.0
           },
           {
-            "x": 140.0,
-            "y": 510.0
+            "x": 305.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#122",
         "path": [
           {
-            "x": 140.0,
-            "y": 485.0
+            "x": 300.0,
+            "y": 650.0
           },
           {
-            "x": 140.0,
-            "y": 480.0
+            "x": 300.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA2"
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 140.0,
-            "y": 495.0
+            "x": 295.0,
+            "y": 660.0
           },
           {
-            "x": 140.0,
-            "y": 490.0
+            "x": 295.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA3"
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 140.0,
-            "y": 655.0
+            "x": 290.0,
+            "y": 670.0
           },
           {
-            "x": 140.0,
-            "y": 650.0
+            "x": 290.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 140.0,
-            "y": 665.0
+            "x": 330.0,
+            "y": 790.0
           },
           {
-            "x": 140.0,
-            "y": 660.0
+            "x": 330.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D4"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#52",
-        "path": []
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 335.0,
+            "y": 800.0
+          },
+          {
+            "x": 335.0,
+            "y": 550.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#127",
         "path": [
           {
-            "x": 140.0,
-            "y": 635.0
+            "x": 340.0,
+            "y": 810.0
           },
           {
-            "x": 140.0,
-            "y": 630.0
+            "x": 340.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D3"
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#51",
-        "path": []
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 345.0,
+            "y": 820.0
+          },
+          {
+            "x": 345.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA2"
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 140.0,
-            "y": 645.0
+            "x": 210.0,
+            "y": 330.0
           },
           {
-            "x": 140.0,
-            "y": 640.0
+            "x": 210.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 155.0
+          },
+          {
+            "x": 290.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 375.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#130",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 340.0
+          },
+          {
+            "x": 205.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 450.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA1"
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
+          {
+            "x": 200.0,
+            "y": 350.0
+          },
+          {
+            "x": 200.0,
+            "y": 420.0
+          },
           {
             "x": 140.0,
-            "y": 785.0
+            "y": 420.0
           },
           {
             "x": 140.0,
-            "y": 780.0
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#132",
         "path": [
           {
-            "x": 285.0,
-            "y": 165.0
+            "x": 195.0,
+            "y": 360.0
           },
           {
-            "x": 285.0,
-            "y": 225.0
+            "x": 195.0,
+            "y": 415.0
           },
           {
-            "x": 30.0,
-            "y": 225.0
+            "x": 135.0,
+            "y": 415.0
           },
           {
-            "x": 30.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 470.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIandor414#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#133",
         "path": [
           {
-            "x": 290.0,
-            "y": 155.0
+            "x": 210.0,
+            "y": 440.0
           },
           {
-            "x": 290.0,
-            "y": 230.0
+            "x": 210.0,
+            "y": 580.0
           },
           {
-            "x": 35.0,
-            "y": 230.0
+            "x": 150.0,
+            "y": 580.0
           },
           {
-            "x": 35.0,
-            "y": 375.0
+            "x": 150.0,
+            "y": 590.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#134",
         "path": [
           {
-            "x": 275.0,
-            "y": 185.0
+            "x": 205.0,
+            "y": 450.0
           },
           {
-            "x": 275.0,
-            "y": 215.0
+            "x": 205.0,
+            "y": 575.0
           },
           {
-            "x": 20.0,
-            "y": 215.0
+            "x": 145.0,
+            "y": 575.0
           },
           {
-            "x": 20.0,
-            "y": 825.0
+            "x": 145.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 280.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 460.0
           },
           {
-            "x": 280.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 570.0
           },
           {
-            "x": 25.0,
-            "y": 220.0
+            "x": 140.0,
+            "y": 570.0
           },
           {
-            "x": 25.0,
-            "y": 675.0
+            "x": 140.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A0"
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#136",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 470.0
+          },
+          {
+            "x": 195.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 590.0
+          },
+          {
+            "x": 210.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 740.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 600.0
+          },
+          {
+            "x": 205.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B0"
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 50.0,
-            "y": 355.0
+            "x": 200.0,
+            "y": 610.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 760.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 45.0,
-            "y": 345.0
+            "x": 285.0,
+            "y": 165.0
+          },
+          {
+            "x": 285.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A0"
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#140",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 620.0
+          },
+          {
+            "x": 195.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 770.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#141",
         "path": [
           {
-            "x": 55.0,
-            "y": 365.0
+            "x": 210.0,
+            "y": 740.0
+          },
+          {
+            "x": 210.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B0"
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#142",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 750.0
+          },
+          {
+            "x": 205.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#143",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 760.0
+          },
+          {
+            "x": 200.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#144",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 770.0
+          },
+          {
+            "x": 195.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 175.0
+          },
+          {
+            "x": 280.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 675.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 185.0
+          },
+          {
+            "x": 275.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 825.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1615,23 +1962,66 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B2"
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1639,1697 +2029,1328 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
+          "compName": "GUIram2#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
+          "compName": "GUIram2#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 720.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB1"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 140.0,
-            "y": 375.0
+            "x": 10.0,
+            "y": 550.0
           },
           {
-            "x": 140.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 870.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 395.0
-          },
-          {
-            "x": 140.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 385.0
-          },
-          {
-            "x": 140.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A1"
+          "compName": "GUIram2#2",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#85",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 525.0
-          },
-          {
-            "x": 140.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A4"
+          "compName": "GUIram2#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 405.0
-          },
-          {
-            "x": 140.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#87",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 545.0
-          },
-          {
-            "x": 140.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 535.0
-          },
-          {
-            "x": 140.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIram2#3",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 140.0,
-            "y": 675.0
-          },
-          {
-            "x": 140.0,
-            "y": 680.0
+            "x": 40.0,
+            "y": 785.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A4"
+          "compName": "GUIram2#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 140.0,
-            "y": 555.0
-          },
-          {
-            "x": 140.0,
-            "y": 560.0
+            "x": 45.0,
+            "y": 795.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 195.0,
-            "y": 620.0
-          },
-          {
-            "x": 195.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 770.0
+            "x": 50.0,
+            "y": 805.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#143",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 760.0
-          },
-          {
-            "x": 200.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIram2#3",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 195.0,
-            "y": 770.0
-          },
-          {
-            "x": 195.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 350.0
+            "x": 55.0,
+            "y": 815.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 740.0
-          },
-          {
-            "x": 210.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIram2#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 205.0,
-            "y": 750.0
-          },
-          {
-            "x": 205.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 150.0
+            "x": 60.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A2"
+          "compName": "GUIram2#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 140.0,
-            "y": 685.0
-          },
-          {
-            "x": 140.0,
-            "y": 690.0
+            "x": 65.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
+          "compName": "GUIram2#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 140.0,
-            "y": 705.0
-          },
-          {
-            "x": 140.0,
-            "y": 710.0
+            "x": 70.0,
+            "y": 405.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIram2#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 140.0,
-            "y": 695.0
-          },
-          {
-            "x": 140.0,
-            "y": 700.0
+            "x": 75.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIram2#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#94",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 835.0
-          },
-          {
-            "x": 140.0,
-            "y": 840.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "GUIram2#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#93",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 825.0
-          },
-          {
-            "x": 140.0,
-            "y": 830.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 855.0
-          },
-          {
-            "x": 140.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 845.0
-          },
-          {
-            "x": 140.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 345.0
-          },
-          {
-            "x": 140.0,
-            "y": 340.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA1"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 335.0
-          },
-          {
-            "x": 140.0,
-            "y": 330.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "GUIram2#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 550.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#60",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 850.0
-          },
-          {
-            "x": 15.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#61",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#62",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 355.0
-          },
-          {
-            "x": 140.0,
-            "y": 350.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D2"
+          "compName": "GUIram2#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D1"
+          "compName": "GUIram2#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
+          "compName": "GUIram2#3",
           "pinName": "D3"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#132",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 360.0
-          },
-          {
-            "x": 195.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 470.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 210.0,
-            "y": 440.0
-          },
-          {
-            "x": 210.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 590.0
+            "x": 60.0,
+            "y": 950.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#130",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 340.0
-          },
-          {
-            "x": 205.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 350.0
-          },
-          {
-            "x": 200.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 460.0
+            "x": 65.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 195.0,
-            "y": 470.0
-          },
-          {
-            "x": 195.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 620.0
+            "x": 70.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 210.0,
-            "y": 590.0
-          },
-          {
-            "x": 210.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 740.0
+            "x": 75.0,
+            "y": 1250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 205.0,
-            "y": 450.0
-          },
-          {
-            "x": 205.0,
-            "y": 575.0
-          },
-          {
-            "x": 145.0,
-            "y": 575.0
+            "x": 135.0,
+            "y": 50.0
           },
           {
-            "x": 145.0,
-            "y": 600.0
+            "x": 135.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 200.0,
-            "y": 460.0
-          },
-          {
-            "x": 200.0,
-            "y": 570.0
-          },
-          {
-            "x": 140.0,
-            "y": 570.0
+            "x": 130.0,
+            "y": 60.0
           },
           {
-            "x": 140.0,
-            "y": 610.0
+            "x": 130.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#61",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#60",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#63",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIandor414#4",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "pinName": "B"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 205.0,
-            "y": 600.0
-          },
-          {
-            "x": 205.0,
-            "y": 725.0
-          },
-          {
-            "x": 145.0,
-            "y": 725.0
+            "x": 125.0,
+            "y": 70.0
           },
           {
-            "x": 145.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#62",
-        "path": []
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
         },
         "pin2": {
           "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "pinName": "B"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 200.0,
-            "y": 610.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
-          },
-          {
-            "x": 140.0,
-            "y": 720.0
+            "x": 120.0,
+            "y": 80.0
           },
           {
-            "x": 140.0,
-            "y": 760.0
+            "x": 120.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D1"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 60.0,
-            "y": 950.0
+            "x": 215.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#68",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "GUIand41#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 305.0,
-            "y": 640.0
-          },
-          {
-            "x": 305.0,
-            "y": 745.0
-          },
-          {
-            "x": 245.0,
-            "y": 745.0
+            "x": 140.0,
+            "y": 375.0
           },
           {
-            "x": 245.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 300.0,
-            "y": 650.0
-          },
-          {
-            "x": 300.0,
-            "y": 740.0
-          },
-          {
-            "x": 240.0,
-            "y": 740.0
+            "x": 140.0,
+            "y": 385.0
           },
           {
-            "x": 240.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIram2#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 290.0,
-            "y": 520.0
-          },
-          {
-            "x": 290.0,
-            "y": 580.0
-          },
-          {
-            "x": 230.0,
-            "y": 580.0
+            "x": 140.0,
+            "y": 395.0
           },
           {
-            "x": 230.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIand41#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 330.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 405.0
           },
           {
-            "x": 330.0,
-            "y": 450.0
+            "x": 140.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#85",
         "path": [
           {
-            "x": 335.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 525.0
           },
           {
-            "x": 335.0,
-            "y": 550.0
+            "x": 140.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIram2#1",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 65.0,
-            "y": 1050.0
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#1",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 660.0
-          },
-          {
-            "x": 295.0,
-            "y": 735.0
-          },
+        "name": "unnamedWire#87",
+        "path": [
           {
-            "x": 235.0,
-            "y": 735.0
+            "x": 140.0,
+            "y": 545.0
           },
           {
-            "x": 235.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#1",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C4"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#88",
         "path": [
           {
-            "x": 290.0,
-            "y": 670.0
-          },
-          {
-            "x": 290.0,
-            "y": 730.0
-          },
-          {
-            "x": 230.0,
-            "y": 730.0
+            "x": 140.0,
+            "y": 555.0
           },
           {
-            "x": 230.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "GUIram2#2",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#89",
         "path": [
           {
-            "x": 75.0,
-            "y": 1250.0
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 210.0,
-            "y": 330.0
-          },
-          {
-            "x": 210.0,
-            "y": 430.0
-          },
-          {
-            "x": 150.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 685.0
           },
           {
-            "x": 150.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "GUIram2#2",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 70.0,
-            "y": 1150.0
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "GUIram2#2",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 140.0,
+            "y": 705.0
           },
           {
-            "x": 130.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": [
           {
-            "x": 340.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 825.0
           },
           {
-            "x": 340.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "GUIram2#3",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 135.0,
-            "y": 50.0
+            "x": 140.0,
+            "y": 835.0
           },
           {
-            "x": 135.0,
-            "y": 370.0
+            "x": 140.0,
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 345.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 845.0
           },
           {
-            "x": 345.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "GUIram2#3",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#96",
         "path": [
           {
-            "x": 120.0,
-            "y": 80.0
+            "x": 140.0,
+            "y": 855.0
           },
           {
-            "x": 120.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "GUIram2#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 125.0,
-            "y": 70.0
+            "x": 140.0,
+            "y": 335.0
           },
           {
-            "x": 125.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 330.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#98",
         "path": [
           {
-            "x": 225.0,
-            "y": 570.0
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 230.0,
-            "y": 420.0
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3499,5 +3520,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 26a25cf..093657b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,15 +17,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,12 +35,22 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -58,64 +62,42 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 60.0,
-          "y": 40.0
+          "x": 35.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 35.0,
-          "y": 55.0
+          "x": 60.0,
+          "y": 40.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
           "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 15.0,
-            "y": 87.5
+            "x": 25.0,
+            "y": 12.5
           },
           {
-            "x": 15.0,
-            "y": 70.0
+            "x": 25.0,
+            "y": 35.0
           }
         ]
       },
@@ -142,58 +124,81 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "S1"
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 25.0,
-            "y": 12.5
+            "y": 62.5
           },
           {
             "x": 25.0,
-            "y": 35.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 62.5
+            "x": 15.0,
+            "y": 87.5
           },
           {
-            "x": 25.0,
-            "y": 45.0
+            "x": 15.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
-        "name": "unnamedWire#10"
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -204,5 +209,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef71748..a9234a2 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 100.0,
@@ -6,50 +5,56 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 25.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 45.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,31 +62,35 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "B3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,7 +116,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -113,12 +125,22 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -130,10 +152,28 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 2.5
+          "y": 102.5
         },
         "params": 1
       },
@@ -148,37 +188,55 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
           "x": 20.0,
-          "y": 102.5
+          "y": 27.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 65.0,
+          "x": 20.0,
           "y": 77.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 20.0,
+          "y": 127.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 20.0,
+          "y": 177.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
           "x": 65.0,
-          "y": 52.5
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 6.5,
-          "y": 66.5
+          "x": 65.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -193,10 +251,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 6.5,
+          "y": 66.5
         },
         "params": 1
       },
@@ -211,10 +269,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 4.0,
-          "y": 141.5
+          "y": 41.5
         },
         "params": 1
       },
@@ -228,71 +286,90 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 65.0,
-          "y": 27.5
+          "x": 4.0,
+          "y": 141.5
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
-        "pos": {
-          "x": 65.0,
-          "y": 2.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 20.0,
-          "y": 77.5
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 20.0,
-          "y": 27.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 20.0,
-          "y": 177.5
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10"
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 20.0,
-          "y": 127.5
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11"
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -307,14 +384,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16"
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -335,14 +412,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16"
       },
       {
         "pin1": {
@@ -361,32 +438,47 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#19"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 192.5
-          }
-        ]
+        "name": "unnamedWire#19"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#6",
@@ -396,22 +488,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 37.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 5.0,
+            "y": 192.5
           }
         ]
       },
@@ -438,22 +526,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 87.5
+            "x": 45.0,
+            "y": 37.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -480,22 +568,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 55.0,
-            "y": 137.5
+            "x": 50.0,
+            "y": 87.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -522,22 +610,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 60.0,
-            "y": 187.5
+            "x": 55.0,
+            "y": 137.5
           },
           {
-            "x": 60.0,
-            "y": 92.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
@@ -564,107 +652,43 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
           "compName": "GUINandGate#7",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 237.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 15.0,
-            "y": 212.5
+            "x": 60.0,
+            "y": 187.5
           },
           {
-            "x": 15.0,
-            "y": 132.5
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 17.5,
-            "y": 87.5
+            "y": 137.5
           },
           {
             "x": 17.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 62.5
-          },
-          {
-            "x": 15.0,
-            "y": 7.5
+            "y": 157.5
           }
         ]
       },
@@ -682,46 +706,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 12.5,
-            "y": 187.5
-          },
-          {
-            "x": 12.5,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
@@ -745,95 +761,93 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 17.5,
-            "y": 137.5
+            "x": 12.5,
+            "y": 187.5
           },
           {
-            "x": 17.5,
-            "y": 157.5
+            "x": 12.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 17.5,
-            "y": 112.5
+            "x": 10.0,
+            "y": 237.5
           },
           {
-            "x": 17.5,
-            "y": 107.5
+            "x": 10.0,
+            "y": 182.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -843,5 +857,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 494332c..5951bdc 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 150.0,
@@ -6,90 +5,101 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 45.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 55.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 75.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 85.0
       },
-      "name": "SC",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 105.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 115.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 125.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 135.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,31 +107,35 @@ mograsim version: 0.1.3
         "y": 145.0
       },
       "name": "C4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 15.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -129,7 +143,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -137,7 +152,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -145,7 +161,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -153,21 +170,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 50.0,
-          "y": 620.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -179,10 +188,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 50.0,
-          "y": 720.0
+          "y": 620.0
         },
         "params": 1
       },
@@ -196,49 +205,58 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInot4",
-        "name": "GUInot4#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 75.0,
-          "y": 250.0
-        }
+          "x": 50.0,
+          "y": 720.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 634.0
+          "x": 152.5,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 29.0,
-          "y": 584.0
+          "x": 152.5,
+          "y": 65.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 29.0,
-          "y": 684.0
+          "x": 152.5,
+          "y": 115.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "name": "GUINandGate#7",
         "pos": {
           "x": 152.5,
-          "y": 65.0
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUInot4",
+        "name": "GUInot4#0",
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        }
+      },
       {
         "id": "GUIsel2_4",
         "name": "GUIsel2_4#0",
@@ -248,97 +266,134 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 152.5,
-          "y": 15.0
+          "x": 29.0,
+          "y": 584.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 152.5,
-          "y": 165.0
+          "x": 29.0,
+          "y": 634.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 152.5,
-          "y": 115.0
+          "x": 29.0,
+          "y": 684.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "SC"
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 30.0,
-            "y": 125.0
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUInot4#0",
-          "pinName": "A4"
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUInot4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#35",
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUInot4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 30.0,
@@ -360,14 +415,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 30.0,
@@ -387,6 +442,23 @@ mograsim version: 0.1.3
         "name": "unnamedWire#17",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#2",
@@ -402,16 +474,25 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C1"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
+      },
+      {
         "pin1": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
@@ -431,13 +512,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C3"
+          "pinName": "C1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -454,24 +535,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInot4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 255.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -488,21 +560,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUInot4#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 125.0,
-            "y": 275.0
+            "x": 115.0,
+            "y": 255.0
           },
           {
-            "x": 125.0,
-            "y": 120.0
+            "x": 115.0,
+            "y": 20.0
           }
         ]
       },
@@ -529,22 +601,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUInot4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 135.0,
-            "y": 580.0
+            "x": 125.0,
+            "y": 275.0
           },
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 125.0,
+            "y": 120.0
           }
         ]
       },
@@ -571,204 +643,156 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 25.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 580.0
           },
           {
-            "x": 25.0,
-            "y": 345.0
+            "x": 135.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "A2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 20.0,
-            "y": 475.0
+            "x": 10.0,
+            "y": 225.0
           },
           {
-            "x": 20.0,
-            "y": 335.0
+            "x": 10.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 15.0,
-            "y": 425.0
+            "x": 140.0,
+            "y": 630.0
           },
           {
-            "x": 15.0,
-            "y": 325.0
+            "x": 140.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 10.0,
-            "y": 375.0
+            "x": 145.0,
+            "y": 680.0
           },
           {
-            "x": 10.0,
-            "y": 315.0
+            "x": 145.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 20.0,
-            "y": 75.0
+            "x": 150.0,
+            "y": 730.0
           },
           {
-            "x": 20.0,
-            "y": 265.0
+            "x": 150.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 25.0
-          },
-          {
-            "x": 25.0,
-            "y": 255.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 630.0
-          },
-          {
-            "x": 140.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 325.0
-          },
-          {
-            "x": 5.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
@@ -793,116 +817,111 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 145.0,
-            "y": 680.0
+            "x": 5.0,
+            "y": 325.0
           },
           {
-            "x": 145.0,
-            "y": 130.0
+            "x": 5.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "B1"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 10.0,
-            "y": 225.0
+            "y": 375.0
           },
           {
             "x": 10.0,
-            "y": 285.0
+            "y": 315.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "pinName": "B2"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 175.0
+            "y": 425.0
           },
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -912,5 +931,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 82b991e..48c22e5 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,12 +26,22 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -42,10 +53,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 7.5,
-          "y": 15.0
+          "x": 35.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -60,28 +71,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -95,34 +97,52 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "pin2": {
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#11"
       },
       {
         "pin1": {
@@ -130,57 +150,44 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 30.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -201,72 +208,68 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4"
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 20.0
+            "y": 42.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -276,5 +279,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 81536b1..64f12af 100644 (file)
@@ -1,87 +1,87 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 270.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 85.0
-      },
-      "name": "ORAMn",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 155.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 265.0
+        "y": 165.0
       },
-      "name": "IQn+3",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 175.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 255.0
+        "y": 185.0
       },
-      "name": "IQn",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 195.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 205.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 215.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 225.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,199 +89,233 @@ mograsim version: 0.1.3
         "y": 105.0
       },
       "name": "Cn",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 115.0
+        "y": 55.0
       },
-      "name": "OQn+3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 115.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 125.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 105.0
+        "x": 0.0,
+        "y": 135.0
       },
-      "name": "OQn",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 145.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "F\u003d0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 65.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 235.0
+        "y": 55.0
       },
-      "name": "IRAMn",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 95.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "ORAMn+3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "F\u003d0",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 245.0
+        "y": 5.0
       },
-      "name": "IRAMn+3",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 255.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "IQn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 265.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "IQn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 235.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "IRAMn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 245.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "IRAMn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 205.0
+        "x": 35.0,
+        "y": 105.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OQn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 115.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "OQn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 215.0
+        "x": 35.0,
+        "y": 85.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "ORAMn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 225.0
+        "x": 35.0,
+        "y": 95.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "ORAMn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -289,7 +323,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -297,7 +332,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -305,7 +341,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -313,107 +350,118 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2310.0
+          "x": 240.0,
+          "y": 2110.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 144.0,
-          "y": 2524.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#1",
+        "id": "GUIAm2901DestDecode",
+        "name": "GUIAm2901DestDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2510.0
+          "x": 15.0,
+          "y": 45.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 139.0,
-          "y": 2514.0
+          "x": 160.0,
+          "y": 75.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 234.0,
-          "y": 2524.0
+          "x": 320.0,
+          "y": 440.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 219.0,
-          "y": 2494.0
-        },
-        "params": 1
+          "x": 190.0,
+          "y": 65.0
+        }
       },
       {
-        "id": "GUIAm2901DestDecode",
-        "name": "GUIAm2901DestDecode#0",
+        "id": "GUIdff4",
+        "name": "GUIdff4#0",
         "pos": {
-          "x": 15.0,
-          "y": 45.0
+          "x": 90.0,
+          "y": 2490.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
         "pos": {
-          "x": 39.0,
-          "y": 2634.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
         "pos": {
-          "x": 34.0,
-          "y": 2624.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2275.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUImux1_4",
+        "name": "GUImux1_4#0",
         "pos": {
-          "x": 279.0,
-          "y": 2114.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 135.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIor4",
+        "name": "GUIor4#0",
         "pos": {
-          "x": 154.0,
-          "y": 89.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 445.0
+        }
+      },
+      {
+        "id": "GUIram4",
+        "name": "GUIram4#0",
+        "pos": {
+          "x": 95.0,
+          "y": 2220.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 2310.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#1",
+        "pos": {
+          "x": 45.0,
+          "y": 2510.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -426,214 +474,210 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 154.0,
-          "y": 2319.0
+          "y": 89.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 154.0,
-          "y": 2264.0
+          "x": 234.0,
+          "y": 2254.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 34.0,
-          "y": 2324.0
+          "x": 129.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 2314.0
+          "x": 134.0,
+          "y": 2504.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 219.0,
-          "y": 2224.0
+          "x": 139.0,
+          "y": 2514.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 29.0,
-          "y": 2334.0
+          "x": 144.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 229.0,
-          "y": 2244.0
+          "x": 219.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 224.0,
-          "y": 2234.0
+          "x": 234.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 234.0,
-          "y": 2254.0
+          "x": 34.0,
+          "y": 2624.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 134.0,
-          "y": 2504.0
+          "x": 39.0,
+          "y": 2634.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 129.0,
-          "y": 2494.0
+          "x": 279.0,
+          "y": 2114.0
         },
         "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 160.0,
-          "y": 2275.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 160.0,
-          "y": 2220.0
-        }
+          "x": 154.0,
+          "y": 2264.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#40",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 314.0,
-          "y": 449.0
+          "x": 294.0,
+          "y": 2144.0
         },
         "params": 1
       },
       {
-        "id": "GUIdff4",
-        "name": "GUIdff4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 90.0,
-          "y": 2490.0
-        }
+          "x": 329.0,
+          "y": 949.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 320.0,
-          "y": 440.0
+          "x": 254.0,
+          "y": 2089.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#36",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 9.0,
-          "y": 2384.0
+          "x": 259.0,
+          "y": 2094.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 160.0,
-          "y": 75.0
+          "x": 264.0,
+          "y": 2099.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#35",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 24.0,
-          "y": 2414.0
+          "x": 269.0,
+          "y": 2104.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#38",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 19.0,
-          "y": 2434.0
+          "x": 254.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#37",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 14.0,
-          "y": 2424.0
+          "x": 259.0,
+          "y": 459.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#39",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 24.0,
-          "y": 2444.0
+          "x": 264.0,
+          "y": 469.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "pos": {
-          "x": 190.0,
-          "y": 65.0
-        }
+          "x": 269.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "GUImux1_4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 275.0,
-          "y": 135.0
-        }
+          "x": 154.0,
+          "y": 2319.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -644,6 +688,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "pos": {
+          "x": 14.0,
+          "y": 2364.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#32",
@@ -655,10 +708,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "name": "WireCrossPoint#33",
         "pos": {
           "x": 14.0,
-          "y": 2364.0
+          "y": 2394.0
         },
         "params": 1
       },
@@ -673,789 +726,769 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "name": "WireCrossPoint#35",
         "pos": {
-          "x": 14.0,
-          "y": 2394.0
+          "x": 24.0,
+          "y": 2414.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#36",
         "pos": {
-          "x": 269.0,
-          "y": 2104.0
+          "x": 9.0,
+          "y": 2384.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#37",
         "pos": {
-          "x": 264.0,
-          "y": 2099.0
+          "x": 14.0,
+          "y": 2424.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "name": "WireCrossPoint#38",
         "pos": {
-          "x": 259.0,
-          "y": 459.0
+          "x": 19.0,
+          "y": 2434.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#39",
         "pos": {
-          "x": 254.0,
-          "y": 449.0
+          "x": 24.0,
+          "y": 2444.0
         },
         "params": 1
       },
-      {
-        "id": "GUIor4",
-        "name": "GUIor4#0",
-        "pos": {
-          "x": 275.0,
-          "y": 445.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 269.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 2314.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-        "pos": {
-          "x": 240.0,
-          "y": 2110.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#40",
         "pos": {
-          "x": 264.0,
-          "y": 469.0
+          "x": 314.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "GUIram4",
-        "name": "GUIram4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 95.0,
-          "y": 2220.0
-        }
+          "x": 34.0,
+          "y": 2324.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 329.0,
-          "y": 949.0
+          "x": 29.0,
+          "y": 2334.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 294.0,
-          "y": 2144.0
+          "x": 219.0,
+          "y": 2224.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 259.0,
-          "y": 2094.0
+          "x": 224.0,
+          "y": 2234.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 254.0,
-          "y": 2089.0
+          "x": 229.0,
+          "y": 2244.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA1"
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I8"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D4"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I7"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 150.0
+          },
+          {
+            "x": 5.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB1"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 150.0,
-            "y": 2265.0
+            "x": 290.0,
+            "y": 2135.0
           },
           {
-            "x": 150.0,
-            "y": 2280.0
+            "x": 290.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 255.0,
-            "y": 190.0
+            "x": 295.0,
+            "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#111",
-        "path": [
-          {
-            "x": 260.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#102",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2095.0
-          }
-        ]
+        "name": "unnamedWire#104",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
-        "path": [
-          {
-            "x": 265.0,
-            "y": 210.0
-          }
-        ]
+        "name": "unnamedWire#105",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_4"
+          "compName": "GUIor4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#113",
-        "path": [
-          {
-            "x": 270.0,
-            "y": 220.0
-          }
-        ]
+        "name": "unnamedWire#106",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "compName": "GUIor4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#41",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 2285.0
-          },
-          {
-            "x": 140.0,
-            "y": 2300.0
-          }
-        ]
+        "name": "unnamedWire#109",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 20.0,
-            "y": 2100.0
+            "x": 155.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D2"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 145.0,
-            "y": 2275.0
-          },
-          {
-            "x": 145.0,
-            "y": 2290.0
+            "x": 255.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 5.0,
-            "y": 2350.0
-          },
-          {
-            "x": 5.0,
-            "y": 2345.0
+            "x": 260.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 100.0,
-            "y": 1050.0
-          },
-          {
-            "x": 100.0,
-            "y": 2175.0
+            "x": 265.0,
+            "y": 210.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D4"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 135.0,
-            "y": 2295.0
-          },
-          {
-            "x": 135.0,
-            "y": 2310.0
+            "x": 270.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 175.0,
-            "y": 1250.0
-          },
-          {
-            "x": 175.0,
-            "y": 2195.0
+            "x": 10.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 180.0,
-            "y": 1150.0
-          },
-          {
-            "x": 180.0,
-            "y": 2185.0
+            "x": 15.0,
+            "y": 2095.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 165.0,
-            "y": 1450.0
-          },
-          {
-            "x": 165.0,
-            "y": 2215.0
+            "x": 20.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "IRAMn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 170.0,
-            "y": 1350.0
+            "x": 5.0,
+            "y": 2350.0
           },
           {
-            "x": 170.0,
-            "y": 2205.0
+            "x": 5.0,
+            "y": 2345.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#100",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 2135.0
-          },
-          {
-            "x": 290.0,
-            "y": 2100.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#120",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 295.0,
+            "x": 25.0,
             "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#36",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#52",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#128",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#131",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#37",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#133",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#134",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "IRAMn+3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 230.0,
-            "y": 170.0
+            "x": 5.0,
+            "y": 2450.0
+          },
+          {
+            "x": 5.0,
+            "y": 2455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_2"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 225.0,
-            "y": 160.0
+            "x": 10.0,
+            "y": 2585.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2595.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#109",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2605.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 235.0,
-            "y": 180.0
+            "x": 25.0,
+            "y": 2615.0
           }
         ]
       },
@@ -1473,1923 +1506,1929 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "C"
+          "compName": "GUIram4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#142",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "LSH"
+          "pinName": "RAMWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#144",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#145"
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#146",
         "path": [
           {
-            "x": 55.0,
-            "y": 90.0
+            "x": 230.0,
+            "y": 70.0
           },
           {
-            "x": 55.0,
-            "y": 125.0
+            "x": 230.0,
+            "y": 105.0
           },
           {
-            "x": 40.0,
-            "y": 125.0
+            "x": 90.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 2305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "QWE"
         },
         "pin2": {
           "compName": "GUIdff4#0",
-          "pinName": "C"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#147",
         "path": [
           {
-            "x": 155.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2485.0
+            "x": 85.0,
+            "y": 100.0
           },
           {
-            "x": 80.0,
-            "y": 2495.0
+            "x": 85.0,
+            "y": 2505.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "NSH"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#148",
         "path": [
           {
-            "x": 60.0,
-            "y": 50.0
-          },
-          {
-            "x": 60.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 80.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RSH"
+          "compName": "GUImux1_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#149",
         "path": [
           {
-            "x": 65.0,
-            "y": 60.0
-          },
-          {
-            "x": 65.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 140.0
           },
           {
-            "x": 30.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#151",
         "path": [
           {
-            "x": 35.0,
-            "y": 2525.0
+            "x": 335.0,
+            "y": 160.0
+          },
+          {
+            "x": 335.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#152",
         "path": [
           {
-            "x": 40.0,
-            "y": 2515.0
+            "x": 325.0,
+            "y": 170.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIor4#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 1550.0
-          },
-          {
-            "x": 80.0,
-            "y": 2225.0
-          }
-        ]
+        "name": "unnamedWire#153",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#154",
         "path": [
           {
-            "x": 30.0,
-            "y": 2535.0
+            "x": 315.0,
+            "y": 445.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A2"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#155",
         "path": [
           {
-            "x": 70.0,
-            "y": 1750.0
-          },
-          {
-            "x": 70.0,
-            "y": 2245.0
+            "x": 315.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "F\u003d0"
+        },
+        "name": "unnamedWire#156",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1650.0
-          },
-          {
-            "x": 75.0,
-            "y": 2235.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A3"
+          "compName": "GUIdff4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 65.0,
-            "y": 1850.0
+            "x": 155.0,
+            "y": 2485.0
           },
           {
-            "x": 65.0,
-            "y": 2255.0
+            "x": 80.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2495.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "LSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 55.0,
-            "y": 2050.0
+            "y": 90.0
           },
           {
             "x": 55.0,
-            "y": 2275.0
+            "y": 125.0
+          },
+          {
+            "x": 40.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "NSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 60.0,
-            "y": 1950.0
+            "y": 50.0
           },
           {
             "x": 60.0,
-            "y": 2265.0
+            "y": 120.0
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I6"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 45.0,
-            "y": 2250.0
+            "x": 10.0,
+            "y": 250.0
           },
           {
-            "x": 45.0,
-            "y": 2295.0
+            "x": 10.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "RSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 50.0,
-            "y": 2150.0
+            "x": 65.0,
+            "y": 60.0
           },
           {
-            "x": 50.0,
-            "y": 2285.0
+            "x": 65.0,
+            "y": 115.0
+          },
+          {
+            "x": 30.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2555.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 335.0,
-            "y": 160.0
-          },
-          {
-            "x": 335.0,
-            "y": 250.0
+            "x": 40.0,
+            "y": 2515.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 315.0,
-            "y": 445.0
+            "x": 35.0,
+            "y": 2525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#26",
         "path": [
           {
-            "x": 315.0,
-            "y": 455.0
+            "x": 30.0,
+            "y": 2535.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 325.0,
-            "y": 170.0
+            "x": 80.0,
+            "y": 1550.0
           },
           {
-            "x": 325.0,
-            "y": 350.0
+            "x": 80.0,
+            "y": 2225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor4#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#40",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#153",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1650.0
+          },
+          {
+            "x": 75.0,
+            "y": 2235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q2"
+          "compName": "GUIram4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 225.0,
-            "y": 2505.0
+            "x": 70.0,
+            "y": 1750.0
           },
           {
-            "x": 225.0,
-            "y": 2315.0
+            "x": 70.0,
+            "y": 2245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F\u003d0"
-        },
-        "name": "unnamedWire#156",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 220.0,
-            "y": 2305.0
+            "x": 130.0,
+            "y": 350.0
+          },
+          {
+            "x": 130.0,
+            "y": 2115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q4"
+          "compName": "GUIram4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 235.0,
-            "y": 2335.0
+            "x": 65.0,
+            "y": 1850.0
+          },
+          {
+            "x": 65.0,
+            "y": 2255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q3"
+          "compName": "GUIram4#0",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 230.0,
-            "y": 2515.0
+            "x": 60.0,
+            "y": 1950.0
           },
           {
-            "x": 230.0,
-            "y": 2325.0
+            "x": 60.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A4"
+          "compName": "GUIram4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 40.0,
-            "y": 2575.0
+            "x": 55.0,
+            "y": 2050.0
+          },
+          {
+            "x": 55.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A3"
+          "compName": "GUIram4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 2565.0
+            "x": 50.0,
+            "y": 2150.0
+          },
+          {
+            "x": 50.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D2"
+          "compName": "GUIram4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#87",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 2250.0
+          },
+          {
+            "x": 45.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y1"
+          "compName": "GUIram4#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y3"
+          "compName": "GUIram4#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
           "compName": "GUIram4#0",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#140",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#143",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 150.0,
+            "y": 2265.0
+          },
+          {
+            "x": 150.0,
+            "y": 2280.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I0"
+          "pinName": "I4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 105.0,
-            "y": 850.0
+            "x": 125.0,
+            "y": 450.0
           },
           {
-            "x": 105.0,
-            "y": 2165.0
+            "x": 125.0,
+            "y": 2125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RAMWE"
+          "compName": "GUIram4#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#144",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2275.0
+          },
+          {
+            "x": 145.0,
+            "y": 2290.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUIram4#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 110.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 2285.0
           },
           {
-            "x": 110.0,
-            "y": 2155.0
+            "x": 140.0,
+            "y": 2300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "GUIram4#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#141",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2295.0
+          },
+          {
+            "x": 135.0,
+            "y": 2310.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 115.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 1050.0
           },
           {
-            "x": 115.0,
-            "y": 2145.0
+            "x": 100.0,
+            "y": 2175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#142",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 315.0,
-            "y": 2155.0
+            "x": 180.0,
+            "y": 1150.0
           },
           {
-            "x": 315.0,
-            "y": 550.0
+            "x": 180.0,
+            "y": 2185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "QWE"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "WE"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 85.0,
-            "y": 100.0
+            "x": 175.0,
+            "y": 1250.0
           },
           {
-            "x": 85.0,
-            "y": 2505.0
+            "x": 175.0,
+            "y": 2195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "YF"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "S0"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 70.0,
-            "y": 80.0
+            "x": 170.0,
+            "y": 1350.0
           },
           {
-            "x": 70.0,
-            "y": 140.0
+            "x": 170.0,
+            "y": 2205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#92",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#145"
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 320.0,
-            "y": 2165.0
+            "x": 165.0,
+            "y": 1450.0
           },
           {
-            "x": 320.0,
-            "y": 650.0
+            "x": 165.0,
+            "y": 2215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 70.0
-          },
-          {
-            "x": 230.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 2305.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 150.0
-          },
-          {
-            "x": 5.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 325.0,
-            "y": 2115.0
+            "x": 120.0,
+            "y": 550.0
           },
           {
-            "x": 325.0,
-            "y": 850.0
+            "x": 120.0,
+            "y": 2135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn+3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#96",
-        "path": []
+        "name": "unnamedWire#52",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 335.0,
-            "y": 140.0
-          },
-          {
-            "x": 335.0,
-            "y": 50.0
+            "x": 225.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 330.0,
-            "y": 2145.0
+            "x": 230.0,
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#55",
         "path": [
           {
-            "x": 120.0,
-            "y": 550.0
-          },
-          {
-            "x": 120.0,
-            "y": 2135.0
+            "x": 235.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 280.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I4"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 450.0
-          },
-          {
-            "x": 125.0,
-            "y": 2125.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 330.0,
-            "y": 750.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I5"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 130.0,
-            "y": 350.0
+            "x": 115.0,
+            "y": 650.0
           },
           {
-            "x": 130.0,
-            "y": 2115.0
+            "x": 115.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I6"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#60",
         "path": [
           {
-            "x": 10.0,
-            "y": 250.0
+            "x": 200.0,
+            "y": 2280.0
           },
           {
-            "x": 10.0,
-            "y": 70.0
+            "x": 200.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 155.0,
-            "y": 80.0
+            "x": 205.0,
+            "y": 2290.0
+          },
+          {
+            "x": 205.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 285.0,
-            "y": 2125.0
+            "x": 210.0,
+            "y": 2300.0
           },
           {
-            "x": 285.0,
-            "y": 2095.0
+            "x": 210.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A3"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 2310.0
+          },
+          {
+            "x": 215.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#57",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "OQn"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 10.0,
-            "y": 2585.0
+            "x": 335.0,
+            "y": 2495.0
+          },
+          {
+            "x": 335.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 15.0,
-            "y": 2595.0
+            "x": 110.0,
+            "y": 750.0
+          },
+          {
+            "x": 110.0,
+            "y": 2155.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn+3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "OQn+3"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 5.0,
-            "y": 2450.0
+            "x": 340.0,
+            "y": 2525.0
           },
           {
-            "x": 5.0,
-            "y": 2455.0
+            "x": 340.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 205.0,
-            "y": 2290.0
+            "x": 135.0,
+            "y": 2670.0
           },
           {
-            "x": 205.0,
-            "y": 2275.0
+            "x": 30.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2635.0
+          },
+          {
+            "x": 35.0,
+            "y": 2635.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 200.0,
-            "y": 2280.0
+            "x": 140.0,
+            "y": 2675.0
           },
           {
-            "x": 200.0,
-            "y": 2265.0
+            "x": 35.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2640.0
+          },
+          {
+            "x": 40.0,
+            "y": 2640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#63",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 2310.0
-          },
-          {
-            "x": 215.0,
-            "y": 2295.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B3"
+          "pinName": "C2"
         },
-        "name": "unnamedWire#138",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2605.0
-          }
-        ]
+        "name": "unnamedWire#75",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B3"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 210.0,
-            "y": 2300.0
+            "x": 145.0,
+            "y": 2680.0
           },
           {
-            "x": 210.0,
-            "y": 2285.0
+            "x": 40.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2645.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IQn+3"
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B4"
+          "pinName": "C4"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#77",
         "path": [
           {
-            "x": 25.0,
-            "y": 2615.0
+            "x": 5.0,
+            "y": 2650.0
+          },
+          {
+            "x": 5.0,
+            "y": 2655.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "IQn"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2550.0
+          },
+          {
+            "x": 5.0,
+            "y": 2545.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2555.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q4"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 850.0
+          },
+          {
+            "x": 105.0,
+            "y": 2165.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#66",
-        "path": []
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 2305.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OQn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 335.0,
-            "y": 2495.0
+            "x": 225.0,
+            "y": 2505.0
           },
           {
-            "x": 335.0,
-            "y": 1050.0
+            "x": 225.0,
+            "y": 2315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#68",
-        "path": []
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 2515.0
+          },
+          {
+            "x": 230.0,
+            "y": 2325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#121",
-        "path": []
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 235.0,
+            "y": 2335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#122",
-        "path": []
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2565.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIsel3_4#1",
           "pinName": "A4"
         },
-        "name": "unnamedWire#120",
-        "path": []
+        "name": "unnamedWire#85",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2575.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIdff4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
+          "compName": "GUIdff4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#35",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2105.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 135.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 2155.0
           },
           {
-            "x": 35.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
-        },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "OQn+3"
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 340.0,
-            "y": 2525.0
+            "x": 320.0,
+            "y": 2165.0
           },
           {
-            "x": 340.0,
-            "y": 1150.0
+            "x": 320.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 140.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 2115.0
           },
           {
-            "x": 40.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#128",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C3"
-        },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 145.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2645.0
+            "x": 330.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn+3"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 5.0,
-            "y": 2550.0
-          },
+            "x": 330.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#98",
+        "path": [
           {
-            "x": 5.0,
-            "y": 2545.0
+            "x": 280.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn+3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 5.0,
-            "y": 2650.0
+            "x": 285.0,
+            "y": 2125.0
           },
           {
-            "x": 5.0,
-            "y": 2655.0
+            "x": 285.0,
+            "y": 2095.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3417,5 +3456,6 @@ mograsim version: 0.1.3
       }
     },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 006a46f..92d2200 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,10 +5,11 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "SBE",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 45.0
       },
       "name": "FN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +35,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
-      },
-      "name": "SN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I5",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "L",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,43 +62,55 @@ mograsim version: 0.1.3
         "y": 55.0
       },
       "name": "RN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "SBE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUInand3",
-        "name": "GUInand3#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 55.0,
-          "y": 10.0
-        }
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 55.0,
+          "y": 45.0
         },
         "params": 1
       },
@@ -116,10 +125,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
+          "x": 100.0,
+          "y": 50.0
         },
         "params": 1
       },
@@ -131,30 +140,38 @@ mograsim version: 0.1.3
           "y": 135.0
         }
       },
+      {
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 24.0
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 19.0
+          "y": 24.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 39.0,
+          "y": 34.0
         },
         "params": 1
       },
@@ -169,10 +186,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 9.0,
-          "y": 64.0
+          "y": 59.0
         },
         "params": 1
       },
@@ -187,10 +204,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 49.0,
-          "y": 99.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
@@ -205,10 +222,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 19.0
+          "x": 49.0,
+          "y": 99.0
         },
         "params": 1
       },
@@ -223,34 +240,78 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#9",
         "pos": {
           "x": 39.0,
-          "y": 34.0
+          "y": 19.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 100.0,
-          "y": 50.0
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -267,20 +328,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -309,15 +365,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -336,6 +397,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -355,14 +428,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -379,14 +452,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -416,20 +489,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -445,14 +513,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27"
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -468,14 +542,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#27"
       },
       {
         "pin1": {
@@ -490,109 +564,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInand3#0",
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 15.0
-          }
-        ]
+        "name": "unnamedWire#29"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "FN"
+          "pinName": "SBE"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
-        },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -618,89 +644,72 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "SBE"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -710,5 +719,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 0f8ee57..2dec1af 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 120.0,
@@ -6,58 +5,65 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 35.0
       },
-      "name": "R2",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 105.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "S3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "R3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "S4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "R4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,98 +71,193 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 45.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "R1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "R2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "R3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "R4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 95.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "S2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "R1",
-      "logicWidth": 1
+      "name": "S3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 115.0
       },
-      "name": "S2",
-      "logicWidth": 1
+      "name": "S4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0",
+        "pos": {
+          "x": 45.0,
+          "y": 80.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1",
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2",
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3",
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 194.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 31.5,
+          "y": 244.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 31.5,
+          "y": 344.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 354.0
+          "y": 154.0
         },
         "params": 1
       },
@@ -171,10 +272,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 36.5,
-          "y": 264.0
+          "x": 34.0,
+          "y": 354.0
         },
         "params": 1
       },
@@ -189,10 +290,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 84.0,
-          "y": 374.0
+          "x": 36.5,
+          "y": 264.0
         },
         "params": 1
       },
@@ -205,54 +306,30 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUFuncDecode",
-        "name": "GUIAm2901ALUFuncDecode#0",
-        "pos": {
-          "x": 20.0,
-          "y": 2.5
-        }
-      },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#0",
-        "pos": {
-          "x": 45.0,
-          "y": 80.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "name": "WireCrossPoint#18",
         "pos": {
           "x": 84.0,
-          "y": 384.0
+          "y": 374.0
         },
         "params": 1
       },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
-        "pos": {
-          "x": 95.0,
-          "y": 400.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 24.0,
-          "y": 194.0
+          "x": 84.0,
+          "y": 384.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 94.0
+          "y": 294.0
         },
         "params": 1
       },
@@ -267,10 +344,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 24.0,
-          "y": 294.0
+          "x": 26.5,
+          "y": 204.0
         },
         "params": 1
       },
@@ -285,21 +362,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 26.5,
-          "y": 204.0
+          "x": 29.0,
+          "y": 124.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#1",
-        "pos": {
-          "x": 45.0,
-          "y": 180.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#7",
@@ -309,31 +378,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#2",
-        "pos": {
-          "x": 45.0,
-          "y": 280.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#8",
         "pos": {
           "x": 29.0,
-          "y": 124.0
+          "y": 324.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#3",
-        "pos": {
-          "x": 45.0,
-          "y": 380.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#9",
@@ -342,636 +395,848 @@ mograsim version: 0.1.3
           "y": 144.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 29.0,
-          "y": 324.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 31.5,
-          "y": 244.0
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "CinE"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
-        "pos": {
-          "x": 34.0,
-          "y": 154.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
-        "pos": {
-          "x": 31.5,
-          "y": 344.0
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "FN"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "FN"
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "L"
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 67.5,
-            "y": 17.5
+            "x": 57.5,
+            "y": 57.5
           },
           {
-            "x": 67.5,
-            "y": 75.0
+            "x": 57.5,
+            "y": 65.0
           },
           {
-            "x": 37.5,
-            "y": 75.0
+            "x": 30.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "FN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 455.0
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "L"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "RN"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "L"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "SN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 10.0,
-            "y": 180.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 37.5,
-            "y": 465.0
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "R"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "FN"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 220.0
-          },
-          {
-            "x": 10.0,
-            "y": 215.0
+            "x": 35.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "S"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 15.0,
-            "y": 340.0
+            "x": 67.5,
+            "y": 17.5
           },
           {
-            "x": 15.0,
-            "y": 135.0
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "R"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 300.0
-          },
-          {
-            "x": 20.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#4",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "L"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I4"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "L"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 60.0
-          },
-          {
-            "x": 10.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "L"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 235.0
+            "x": 37.5,
+            "y": 465.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "R1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I5"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "R"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 10.0,
+            "y": 180.0
           },
           {
-            "x": 5.0,
-            "y": 7.5
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S4"
+          "pinName": "R2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "R"
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#46",
         "path": [
           {
             "x": 10.0,
-            "y": 460.0
+            "y": 220.0
           },
           {
             "x": 10.0,
-            "y": 435.0
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S3"
+          "pinName": "R3"
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "S"
+          "pinName": "R"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#47",
         "path": [
           {
             "x": 10.0,
-            "y": 420.0
+            "y": 260.0
           },
           {
             "x": 10.0,
-            "y": 335.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "CinE"
+          "compName": "_submodelinterface",
+          "pinName": "R4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "R"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 70.0,
-            "y": 7.5
-          },
-          {
-            "x": 70.0,
-            "y": 77.5
+            "x": 20.0,
+            "y": 300.0
           },
           {
-            "x": 27.5,
-            "y": 77.5
+            "x": 20.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "S"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 85.0,
-            "y": 85.0
-          },
-          {
-            "x": 85.0,
-            "y": 175.0
-          },
-          {
-            "x": 40.0,
-            "y": 175.0
+            "x": 15.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 185.0
+            "x": 15.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "S2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "S"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#50",
         "path": [
           {
             "x": 5.0,
-            "y": 140.0
+            "y": 380.0
           },
           {
             "x": 5.0,
-            "y": 85.0
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SBE"
+          "compName": "_submodelinterface",
+          "pinName": "S3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "S"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#51",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 70.0
+            "x": 10.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 70.0
+            "x": 10.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "S"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": [
           {
-            "x": 85.0,
-            "y": 285.0
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I3"
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I3"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 5.0,
+            "y": 140.0
           },
           {
-            "x": 15.0,
-            "y": 27.5
+            "x": 5.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#54",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 85.0
+          },
+          {
+            "x": 85.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1004,39 +1269,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#3",
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#58",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#56",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1061,124 +1307,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 27.5,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#15",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "F"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
-        },
-        "name": "unnamedWire#59",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 95.0
-          },
-          {
-            "x": 90.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 57.5,
-            "y": 57.5
-          },
-          {
-            "x": 57.5,
-            "y": 65.0
-          },
-          {
-            "x": 30.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "F"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F3"
+          "pinName": "F1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 100.0,
-            "y": 295.0
+            "x": 90.0,
+            "y": 95.0
           },
           {
-            "x": 100.0,
-            "y": 100.0
+            "x": 90.0,
+            "y": 20.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUOneBit#1",
@@ -1202,22 +1373,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "F"
         },
         "pin2": {
-          "compName": "GUIxor#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 90.0,
-            "y": 375.0
+            "x": 100.0,
+            "y": 295.0
           },
           {
-            "x": 90.0,
-            "y": 405.0
+            "x": 100.0,
+            "y": 100.0
           }
         ]
       },
@@ -1244,49 +1415,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIxor#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 130.0,
-            "y": 385.0
+            "x": 90.0,
+            "y": 375.0
           },
           {
-            "x": 130.0,
-            "y": 180.0
+            "x": 90.0,
+            "y": 405.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#19",
@@ -1306,33 +1453,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "RN"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 30.0,
-            "y": 425.0
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIxor#0",
@@ -1346,168 +1485,47 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 27.5
-          },
-          {
-            "x": 65.0,
-            "y": 72.5
-          },
-          {
-            "x": 32.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "SN"
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 47.5
-          },
-          {
-            "x": 60.0,
-            "y": 67.5
-          },
-          {
-            "x": 35.0,
-            "y": 67.5
+            "x": 25.0,
+            "y": 395.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "FN"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1517,5 +1535,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 71d2d2d..2fa5c1b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 230.0,
@@ -6,255 +5,299 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 115.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 205.0
+        "y": 125.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 215.0
+        "y": 135.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 225.0
+        "y": 145.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 155.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 165.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 175.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 185.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 85.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 105.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 135.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 45.0
+        "y": 25.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 45.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 195.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 205.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 215.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 225.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0",
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        }
+      },
+      {
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0",
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        }
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
         "pos": {
           "x": 45.0,
-          "y": 575.0
+          "y": 365.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
         "pos": {
-          "x": 14.0,
-          "y": 499.0
-        },
-        "params": 1
+          "x": 45.0,
+          "y": 575.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -265,20 +308,12 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUInclDecode",
-        "name": "GUIAm2901ALUInclDecode#0",
-        "pos": {
-          "x": 60.0,
-          "y": 15.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 24.0,
-          "y": 579.0
+          "x": 14.0,
+          "y": 499.0
         },
         "params": 1
       },
@@ -292,1065 +327,1059 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIsel2_4",
-        "name": "GUIsel2_4#0",
-        "pos": {
-          "x": 45.0,
-          "y": 365.0
-        }
-      },
-      {
-        "id": "GUIAm2901SourceDecode",
-        "name": "GUIAm2901SourceDecode#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 165.0
-        }
+          "x": 24.0,
+          "y": 579.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 370.0
-          },
-          {
-            "x": 82.5,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RD"
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 210.0
-          },
-          {
-            "x": 55.0,
-            "y": 220.0
-          },
-          {
-            "x": 25.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 370.0
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 87.5,
-            "y": 390.0
-          },
-          {
-            "x": 87.5,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 380.0
-          },
-          {
-            "x": 85.0,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 90.0,
-            "y": 400.0
-          },
-          {
-            "x": 90.0,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 90.0
+            "x": 10.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 95.0,
-            "y": 590.0
-          },
-          {
-            "x": 95.0,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 110.0
+            "x": 15.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 92.5,
-            "y": 580.0
-          },
-          {
-            "x": 92.5,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 100.0
+            "x": 20.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 100.0,
-            "y": 610.0
-          },
-          {
-            "x": 100.0,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 130.0
+            "x": 25.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 97.5,
-            "y": 600.0
-          },
-          {
-            "x": 97.5,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 10.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F2"
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 15.0,
+            "y": 100.0
           },
           {
-            "x": 135.0,
-            "y": 60.0
+            "x": 15.0,
+            "y": 40.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 125.0,
-            "y": 50.0
-          },
-          {
-            "x": 125.0,
-            "y": 140.0
+            "x": 20.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 40.0
-          },
+        "name": "unnamedWire#22",
+        "path": [
           {
-            "x": 130.0,
-            "y": 100.0
+            "x": 25.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "OVR"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 115.0,
-            "y": 70.0
+            "x": 5.0,
+            "y": 620.0
           },
           {
-            "x": 115.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn+4"
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 60.0
-          },
-          {
-            "x": 120.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#24",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 5.0,
-            "y": 380.0
+            "y": 700.0
           },
           {
             "x": 5.0,
-            "y": 410.0
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": [
           {
             "x": 10.0,
-            "y": 340.0
+            "y": 740.0
           },
           {
             "x": 10.0,
-            "y": 400.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
             "x": 15.0,
-            "y": 300.0
+            "y": 780.0
           },
           {
             "x": 15.0,
-            "y": 390.0
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 10.0,
-            "y": 260.0
+            "x": 20.0,
+            "y": 820.0
           },
           {
-            "x": 10.0,
-            "y": 50.0
+            "x": 20.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I4"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 5.0,
-            "y": 60.0
+            "x": 25.0,
+            "y": 860.0
           },
           {
-            "x": 5.0,
-            "y": 30.0
+            "x": 25.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I5"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I0"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 220.0
+            "y": 140.0
           },
           {
             "x": 5.0,
-            "y": 190.0
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
-        },
-        "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "SQ"
         },
         "pin2": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 5.0,
-            "y": 140.0
+            "x": 75.0,
+            "y": 170.0
           },
           {
-            "x": 5.0,
-            "y": 170.0
+            "x": 75.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RA"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 180.0
           },
           {
-            "x": 15.0,
-            "y": 40.0
+            "x": 70.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 190.0
+          },
+          {
+            "x": 65.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 200.0
+          },
+          {
+            "x": 60.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 580.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 210.0
+          },
+          {
+            "x": 55.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 370.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 15.0,
-            "y": 440.0
+            "x": 82.5,
+            "y": 370.0
+          },
+          {
+            "x": 82.5,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R2"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 430.0
+            "x": 85.0,
+            "y": 380.0
+          },
+          {
+            "x": 85.0,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R3"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": [
+          {
+            "x": 87.5,
+            "y": 390.0
+          },
+          {
+            "x": 87.5,
+            "y": 157.5
+          },
           {
             "x": 25.0,
-            "y": 460.0
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R4"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 20.0,
-            "y": 450.0
+            "x": 90.0,
+            "y": 400.0
+          },
+          {
+            "x": 90.0,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 10.0,
-            "y": 610.0
+            "x": 92.5,
+            "y": 580.0
+          },
+          {
+            "x": 92.5,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 20.0,
-            "y": 630.0
+            "x": 95.0,
+            "y": 590.0
+          },
+          {
+            "x": 95.0,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 110.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 15.0,
-            "y": 620.0
+            "x": 97.5,
+            "y": 600.0
+          },
+          {
+            "x": 97.5,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 5.0,
-            "y": 620.0
+            "x": 100.0,
+            "y": 610.0
           },
           {
-            "x": 5.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "F1"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 640.0
-          }
-        ]
+        "name": "unnamedWire#44",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "_submodelinterface",
+          "pinName": "F2"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 700.0
+            "x": 135.0,
+            "y": 30.0
           },
           {
-            "x": 5.0,
-            "y": 670.0
+            "x": 135.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "pinName": "F3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 15.0,
-            "y": 780.0
+            "x": 130.0,
+            "y": 40.0
           },
           {
-            "x": 15.0,
-            "y": 690.0
+            "x": 130.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
+          "compName": "_submodelinterface",
+          "pinName": "F4"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 10.0,
-            "y": 740.0
+            "x": 125.0,
+            "y": 50.0
           },
           {
-            "x": 10.0,
-            "y": 680.0
+            "x": 125.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 25.0,
-            "y": 860.0
+            "x": 120.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 710.0
+            "x": 120.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 20.0,
-            "y": 820.0
+            "x": 115.0,
+            "y": 70.0
           },
           {
-            "x": 20.0,
-            "y": 700.0
+            "x": 115.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 30.0,
-            "y": 900.0
+            "x": 5.0,
+            "y": 220.0
           },
           {
-            "x": 30.0,
-            "y": 720.0
+            "x": 5.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RA"
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 70.0,
-            "y": 180.0
-          },
-          {
-            "x": 70.0,
-            "y": 235.0
-          },
-          {
-            "x": 20.0,
-            "y": 235.0
+            "x": 10.0,
+            "y": 260.0
           },
           {
-            "x": 20.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SQ"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 75.0,
-            "y": 240.0
-          },
-          {
-            "x": 30.0,
-            "y": 240.0
+            "x": 15.0,
+            "y": 300.0
           },
           {
-            "x": 30.0,
-            "y": 600.0
+            "x": 15.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 60.0,
-            "y": 200.0
-          },
-          {
-            "x": 60.0,
-            "y": 225.0
-          },
-          {
-            "x": 40.0,
-            "y": 225.0
+            "x": 10.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 580.0
+            "x": 10.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 190.0
-          },
-          {
-            "x": 65.0,
-            "y": 230.0
-          },
-          {
-            "x": 35.0,
-            "y": 230.0
+            "x": 5.0,
+            "y": 380.0
           },
           {
-            "x": 35.0,
-            "y": 590.0
+            "x": 5.0,
+            "y": 410.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1360,5 +1389,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index b32a2b1..1fd3ed8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,95 +5,106 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "R",
-      "logicWidth": 1
+      "name": "Cin",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 25.0
       },
-      "name": "S",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 5.0
       },
-      "name": "F",
-      "logicWidth": 1
+      "name": "Cout",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 15.0
       },
-      "name": "FN",
-      "logicWidth": 1
+      "name": "CoutE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "Cin",
-      "logicWidth": 1
+      "name": "F",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "SN",
-      "logicWidth": 1
+      "name": "FN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cout",
-      "logicWidth": 1
+      "name": "L",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "RN",
-      "logicWidth": 1
+      "name": "R",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "L",
-      "logicWidth": 1
+      "name": "RN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "S",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "CoutE",
-      "logicWidth": 1
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -105,22 +115,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 54.0,
-          "y": 69.0
-        },
-        "params": 1
+          "x": 10.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIand",
+        "name": "GUIand#1",
         "pos": {
-          "x": 49.0,
-          "y": 59.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0",
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUImux1",
@@ -131,11 +147,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "GUIxor",
+        "name": "GUIxor#0",
         "pos": {
           "x": 10.0,
-          "y": 20.0
+          "y": 190.0
         }
       },
       {
@@ -155,284 +171,264 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIfulladder",
-        "name": "GUIfulladder#0",
-        "pos": {
-          "x": 60.0,
-          "y": 20.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 190.0
-        }
+          "x": 49.0,
+          "y": 59.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 135.0,
-          "y": 20.0
-        }
+          "x": 54.0,
+          "y": 69.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cin"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "C"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 75.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#1",
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 55.0,
-            "y": 295.0
+            "x": 50.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUIfulladder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 100.0,
-            "y": 25.0
-          },
-          {
-            "x": 100.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 85.0
+            "x": 50.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIxor#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 82.5,
-            "y": 65.0
-          },
-          {
-            "x": 82.5,
-            "y": 95.0
+            "x": 55.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Z"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "B"
+          "compName": "GUIfulladder#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUIfulladder#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 87.5,
-            "y": 425.0
+            "x": 100.0,
+            "y": 25.0
           },
           {
-            "x": 87.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
-        "path": [
+            "x": 100.0,
+            "y": 65.0
+          },
           {
-            "x": 130.0,
-            "y": 375.0
+            "x": 85.0,
+            "y": 65.0
           },
           {
-            "x": 130.0,
+            "x": 85.0,
             "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SN"
+          "compName": "GUIfulladder#0",
+          "pinName": "Z"
         },
         "pin2": {
-          "compName": "GUIxor#1",
+          "compName": "GUIand#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#6"
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CoutE"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 5.0,
-            "y": 75.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          },
-          {
-            "x": 130.0,
-            "y": 10.0
+            "x": 82.5,
+            "y": 65.0
           },
           {
-            "x": 130.0,
-            "y": 25.0
+            "x": 82.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cin"
+          "compName": "GUImux1#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S"
+          "pinName": "CinE"
         },
         "pin2": {
-          "compName": "GUIxor#1",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#0",
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cout"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
@@ -449,88 +445,103 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "RN"
+          "pinName": "R"
         },
         "pin2": {
           "compName": "GUIxor#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cout"
+          "compName": "GUIxor#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "R"
+          "pinName": "S"
         },
         "pin2": {
-          "compName": "GUIxor#0",
+          "compName": "GUIxor#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#3"
+        "name": "unnamedWire#5"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIxor#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#6"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "CinE"
+          "pinName": "FN"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 7.5,
-            "y": 125.0
+            "x": 130.0,
+            "y": 375.0
           },
           {
-            "x": 7.5,
-            "y": 35.0
+            "x": 130.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "B"
+          "compName": "GUImux1#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 50.0,
-            "y": 35.0
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -540,5 +551,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 38f5fa6..0b2d611 100644 (file)
@@ -1,55 +1,60 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "LSH",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "NSH",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "RSH",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "LSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "YF",
-      "logicWidth": 1
+      "name": "NSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "QWE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,70 +62,73 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "RAMWE",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "QWE",
-      "logicWidth": 1
+      "name": "RSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "YF",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 74.0,
-          "y": 159.0
+          "x": 15.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 80.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 74.0,
-          "y": 104.0
+          "x": 110.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 15.0,
-          "y": 150.0
+          "x": 115.0,
+          "y": 210.0
         },
         "params": 1
       },
@@ -134,300 +142,313 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 109.0,
-          "y": 214.0
+          "x": 15.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 4.0,
-          "y": 14.0
+          "x": 50.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 50.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 50.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 24.0
+          "x": 50.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 9.0,
-          "y": 104.0
+          "x": 80.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 80.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 39.0,
-          "y": 59.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 154.0
+          "y": 14.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 44.0,
-          "y": 54.0
+          "x": 39.0,
+          "y": 134.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 44.0,
+          "x": 74.0,
           "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 134.0
+          "x": 74.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#13",
         "pos": {
           "x": 74.0,
-          "y": 99.0
+          "y": 104.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 74.0,
-          "y": 19.0
+          "y": 159.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 115.0,
-          "y": 210.0
+          "x": 109.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 110.0,
-          "y": 105.0
+          "x": 4.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 80.0,
-          "y": 145.0
+          "x": 9.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 80.0,
-          "y": 90.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 80.0,
-          "y": 10.0
+          "x": 9.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 50.0,
-          "y": 50.0
+          "x": 4.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 50.0,
-          "y": 10.0
+          "x": 39.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 50.0,
-          "y": 130.0
+          "x": 44.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 50.0,
-          "y": 90.0
+          "x": 44.0,
+          "y": 54.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "LSH"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 140.0
-          },
-          {
-            "x": 125.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#13",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -455,20 +476,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -476,14 +492,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 40.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
@@ -493,29 +509,17 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 40.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUINandGate#0",
@@ -530,33 +534,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#41"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "RSH"
+          "pinName": "NSH"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 130.0,
-            "y": 20.0
+            "x": 45.0,
+            "y": 5.0
           },
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 135.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 20.0
           }
         ]
       },
@@ -574,503 +583,503 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "NSH"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#23",
         "path": [
           {
             "x": 45.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 20.0
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
+            "x": 10.0,
+            "y": 115.0
           },
           {
-            "x": 105.0,
-            "y": 170.0
+            "x": 45.0,
+            "y": 115.0
           },
           {
-            "x": 105.0,
-            "y": 120.0
+            "x": 45.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 40.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 110.0,
-            "y": 225.0
+            "x": 40.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#8",
           "pinName": "A"
         },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 75.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QWE"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 10.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 105.0
+            "x": 75.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YF"
-        },
-        "name": "unnamedWire#46"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "pinName": "RAMWE"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 40.0,
-            "y": 145.0
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#33",
         "path": [
           {
             "x": 75.0,
-            "y": 15.0
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "name": "unnamedWire#28",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "LSH"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 75.0,
+            "y": 150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RSH"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 75.0,
-            "y": 25.0
+            "x": 130.0,
+            "y": 20.0
+          },
+          {
+            "x": 130.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#41"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
-        "path": []
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RAMWE"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 125.0,
-            "y": 60.0
-          },
-          {
-            "x": 125.0,
-            "y": 100.0
+            "x": 110.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YF"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#46"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QWE"
+        },
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I6"
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#34",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1080,5 +1089,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index cb28db6..112fecb 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 45.0
-      },
-      "name": "RD",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
         "y": 25.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,31 +26,35 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 15.0
       },
-      "name": "SQ",
-      "logicWidth": 1
+      "name": "RA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "RD",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "RA",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,162 +62,172 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "SB",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "SQ",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 94.0,
-          "y": 19.0
+          "x": 10.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 10.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 64.0,
-          "y": 139.0
+          "x": 70.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 40.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#13",
         "pos": {
-          "x": 10.0,
-          "y": 90.0
+          "x": 100.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#14",
         "pos": {
-          "x": 94.0,
-          "y": 179.0
+          "x": 100.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 6.5,
-          "y": 19.0
+          "x": 10.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 40.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 59.0
+          "x": 40.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 144.0
+          "x": 40.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 104.0
+          "x": 40.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 99.0
+          "x": 40.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 34.0,
-          "y": 59.0
+          "x": 70.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 31.5,
-          "y": 54.0
+          "x": 70.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 34.0,
-          "y": 134.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 64.0
+          "x": 6.5,
+          "y": 19.0
         },
         "params": 1
       },
@@ -235,481 +242,472 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#11",
         "pos": {
           "x": 64.0,
-          "y": 99.0
+          "y": 59.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 64.0,
-          "y": 59.0
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 70.0,
-          "y": 170.0
+          "x": 64.0,
+          "y": 139.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 70.0,
-          "y": 130.0
+          "x": 94.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#14",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 100.0,
-          "y": 170.0
+          "x": 94.0,
+          "y": 179.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 100.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 144.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 70.0,
-          "y": 90.0
+          "x": 6.5,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 70.0,
-          "y": 50.0
+          "x": 6.5,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 70.0,
-          "y": 10.0
+          "x": 6.5,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 40.0,
-          "y": 90.0
+          "x": 31.5,
+          "y": 54.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 40.0,
-          "y": 50.0
+          "x": 34.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 34.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 34.0,
+          "y": 134.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 65.0,
-            "y": 105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#38",
-        "path": [
+            "x": 5.0,
+            "y": 5.0
+          },
           {
-            "x": 65.0,
-            "y": 145.0
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 65.0,
-            "y": 135.0
+            "x": 7.5,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#39"
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 95.0,
-            "y": 15.0
+            "x": 7.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RA"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 95.0,
-            "y": 25.0
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 95.0,
-            "y": 175.0
+            "x": 32.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SQ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 95.0,
-            "y": 185.0
+            "x": 35.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#25",
         "path": [
-          {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 5.0
-          },
           {
             "x": 35.0,
-            "y": 15.0
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RD"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 7.5,
-            "y": 65.0
+            "x": 37.5,
+            "y": 185.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -717,404 +715,414 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 7.5,
-            "y": 25.0
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 15.0
+            "x": 65.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 7.5,
-            "y": 95.0
+            "x": 65.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 65.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 7.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 105.0
+            "x": 65.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#12",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#39"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#13",
+          "pinName": "A"
         },
-        "name": "unnamedWire#21",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#13",
           "pinName": "B"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 35.0,
+            "x": 95.0,
             "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RA"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#45",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "GUINandGate#14",
+          "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 37.5,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 25.0
+            "x": 95.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#14",
+          "pinName": "B"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#13",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "SQ"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 37.5,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#14",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RD"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
           {
             "x": 65.0,
-            "y": 55.0
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 55.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1124,5 +1132,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index dd1723b..82d233c 100644 (file)
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "IOVR",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 30.0
+        "x": 120.0,
+        "y": 108.0
       },
-      "name": "_CEM",
-      "logicWidth": 1
+      "name": "C0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 120.0,
+        "y": 60.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "CT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 61.0
+        "y": 110.0
       },
-      "name": "I",
-      "logicWidth": 13
+      "name": "Cx",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 61.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 13,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 17.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "YC",
-      "logicWidth": 1
+      "name": "IC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 108.0
+        "x": 0.0,
+        "y": 20.0
       },
-      "name": "C0",
-      "logicWidth": 1
+      "name": "IN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 25.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "IOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
-      "logicWidth": 1
+      "name": "IZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 128.0
       },
-      "name": "YN",
-      "logicWidth": 1
+      "name": "QIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
-      "logicWidth": 1
+      "name": "QIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 42.0
+        "x": 120.0,
+        "y": 118.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "SIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 11.0
+        "x": 0.0,
+        "y": 119.0
       },
-      "name": "YZ",
-      "logicWidth": 1
+      "name": "SIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 20.0
+        "x": 120.0,
+        "y": 17.0
       },
-      "name": "IN",
-      "logicWidth": 1
+      "name": "YC",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 61.0,
-        "y": 0.0
+        "x": 120.0,
+        "y": 21.0
       },
-      "name": "_OEY",
-      "logicWidth": 1
+      "name": "YN",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 83.0
+        "x": 120.0,
+        "y": 25.0
       },
-      "name": "_SE",
-      "logicWidth": 1
+      "name": "YOVR",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 118.0
+        "y": 11.0
       },
-      "name": "SIO0",
-      "logicWidth": 1
+      "name": "YZ",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 30.0
       },
-      "name": "IZ",
-      "logicWidth": 1
+      "name": "_CEM",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 33.0
       },
-      "name": "CT",
-      "logicWidth": 1
+      "name": "_CEmu",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 38.0
       },
-      "name": "QIOn",
-      "logicWidth": 1
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 40.0
       },
-      "name": "SIOn",
-      "logicWidth": 1
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 42.0
       },
-      "name": "_CEmu",
-      "logicWidth": 1
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 51.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "_OECT",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 25.0
+        "y": 51.0
       },
-      "name": "YOVR",
-      "logicWidth": 1
+      "name": "_OECT",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 128.0
+        "x": 61.0,
+        "y": 0.0
       },
-      "name": "QIO0",
-      "logicWidth": 1
+      "name": "_OEY",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 83.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_SE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.2,
   "submodel": {
     "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 95.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
-        },
-        "params": 1
+          "x": 270.0,
+          "y": 250.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 330.0,
-          "y": 125.0
-        },
-        "params": 1
+          "x": 315.0,
+          "y": 505.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 440.0,
-          "y": 385.0
-        },
-        "params": 1
+          "x": 365.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
-        },
-        "params": 1
+          "x": 415.0,
+          "y": 465.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
         "pos": {
-          "x": 35.0,
-          "y": 640.0
-        },
-        "params": 1
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 50.0,
-          "y": 360.0
+          "x": 435.0,
+          "y": 655.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
-        },
-        "params": 3
+          "x": 190.0,
+          "y": 460.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 470.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 380.0,
+          "y": 125.0
         }
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#21",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 250.0,
+          "y": 820.0
         }
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
+        "pos": {
+          "x": 120.0,
+          "y": 720.0
+        }
+      },
+      {
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
           "x": 300.0,
-          "y": 310.0
+          "y": 715.0
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 530.0,
-          "y": 70.0
-        },
-        "params": 4
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 40.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
           "x": 415.0,
-          "y": 465.0
+          "y": 210.0
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 340.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
-        },
-        "params": 3
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 455.0,
-          "y": 355.0
+          "x": 450.0,
+          "y": 310.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
-        },
-        "params": 1
+          "x": 50.0,
+          "y": 240.0
+        }
       },
       {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 135.0,
-          "y": 40.0
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 530.0,
+          "y": 70.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 4
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 200.0
+        },
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 420.0,
-          "y": 325.0
+          "x": 560.0,
+          "y": 150.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 6
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
+        "id": "GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+          "x": 25.0,
+          "y": 305.0
+        },
+        "params": 5
+      },
+      {
+        "id": "GUIMerger",
+        "name": "GUIMerger#2",
+        "pos": {
+          "x": 15.0,
+          "y": 65.0
+        },
+        "params": 4
       },
       {
         "id": "GUIMerger",
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 420.0,
-          "y": 410.0
+          "x": 25.0,
+          "y": 355.0
         },
-        "params": 4
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 530.0,
-          "y": 270.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 340.0,
+          "y": 120.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 540.0,
+          "y": 265.0
         },
-        "params": 13
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 225.0,
-          "y": 175.0
+          "y": 215.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 565.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 155.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 530.0,
-          "y": 200.0
+          "x": 225.0,
+          "y": 175.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 205.0,
+          "y": 50.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 560.0,
-          "y": 290.0
+          "x": 205.0,
+          "y": 30.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 205.0,
+          "y": 10.0
+        },
+        "params": 1
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
+          "x": 10.0,
+          "y": 245.0
         },
-        "params": 3
+        "params": 13
       },
       {
         "id": "GUISplitter",
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 420.0,
+          "y": 410.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 1
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#13",
+        "pos": {
+          "x": 265.0,
+          "y": 725.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#14",
+        "pos": {
+          "x": 90.0,
+          "y": 720.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#15",
+        "pos": {
+          "x": 120.0,
+          "y": 455.0
+        },
+        "params": 2
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
+        "pos": {
+          "x": 395.0,
+          "y": 195.0
+        },
+        "params": 2
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
+          "x": 450.0,
+          "y": 175.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#13",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 265.0,
-          "y": 725.0
+          "x": 395.0,
+          "y": 225.0
         },
-        "params": 3
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 395.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
           "x": 285.0,
-          "y": 725.0
+          "y": 320.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
-        }
+          "x": 420.0,
+          "y": 325.0
+        },
+        "params": 4
       },
       {
         "id": "GUISplitter",
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 215.0,
-          "y": 160.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
-        "pos": {
-          "x": 300.0,
-          "y": 715.0
-        }
-      },
-      {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
-        "pos": {
-          "x": 25.0,
-          "y": 355.0
-        },
-        "params": 2
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
+          "x": 240.0,
+          "y": 475.0
         },
         "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 535.0,
+          "y": 165.0
         },
-        "params": 6
-      },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
-        "pos": {
-          "x": 450.0,
-          "y": 310.0
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
         }
       },
       {
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 530.0,
-          "y": 100.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 225.0,
-          "y": 155.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 560.0,
+          "y": 595.0
         },
-        "params": 2
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 4
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 470.0,
-          "y": 160.0
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 440.0,
-          "y": 345.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 360.0,
-          "y": 495.0
+          "x": 180.0,
+          "y": 135.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 195.0,
+          "y": 15.0
         },
-        "params": 2
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 215.0,
-          "y": 200.0
+          "x": 330.0,
+          "y": 125.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 520.0,
+          "y": 190.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
+          "x": 255.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
-        }
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 560.0,
-          "y": 150.0
+          "x": 360.0,
+          "y": 495.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
-        "pos": {
-          "x": 225.0,
-          "y": 215.0
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "pos": {
+          "x": 35.0,
+          "y": 640.0
         },
         "params": 1
       },
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 295.0,
+          "y": 120.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 380.0,
-          "y": 125.0
-        }
+          "x": 585.0,
+          "y": 640.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 250.0,
+          "y": 540.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 330.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 540.0,
-          "y": 265.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
+          "x": 285.0,
+          "y": 755.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 440.0,
+          "y": 385.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 440.0,
+          "y": 345.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 495.0,
-          "y": 295.0
-        }
+          "x": 335.0,
+          "y": 270.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 550.0,
+          "y": 570.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 85.0,
+          "y": 590.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 150.0,
+          "y": 160.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 120.0,
-          "y": 720.0
-        }
+          "x": 530.0,
+          "y": 100.0
+        },
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 535.0,
-          "y": 165.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 215.0,
+          "y": 180.0
         },
-        "params": 5
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 215.0,
+          "y": 200.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": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#172",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
-        },
-        "name": "unnamedWire#170",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OEn"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#4",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#103",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#236",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#107",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I01"
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#197",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
+          "compName": "DeserializedSubmodelComponent#7",
           "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I10"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#171",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#229",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#6",
-          "pinName": "O2"
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#9",
           "pinName": "S0"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#132",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#198",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#230",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#234",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
+          "compName": "GUISplitter#9",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
+          "compName": "GUIMerger#0",
           "pinName": "O"
         },
         "pin2": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#156",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#157",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "pinName": "SIO0"
+        },
+        "name": "unnamedWire#159",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 50.0
+            "x": 40.0,
+            "y": 395.0
           },
           {
-            "x": 5.0,
-            "y": 65.0
+            "x": 40.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
+          "compName": "GUITriStateBuffer#1",
           "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUISplitter#11",
+          "pinName": "I"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#166",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#167",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#168",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
+        },
+        "pin2": {
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#170",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OECT"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#235",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#172",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "GUISplitter#12",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#232",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#214",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_SE"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "_SE"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#231",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#197",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#54",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#202",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_CINV"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
+          "compName": "GUITriStateBuffer#2",
           "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
+          "compName": "DeserializedSubmodelComponent#23",
           "pinName": "Y"
         },
-        "name": "unnamedWire#237",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#222",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#225",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUISplitter#15",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#234",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#233",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#33",
         "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": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "I"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OE0"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "GUISplitter#1",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#163",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
-        "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#82",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "pinName": "I1_2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#137",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#10",
+          "compName": "GUISplitter#3",
           "pinName": "O1"
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#99",
         "path": []
       }
     ],
   "outlineRendererSnippetID": "default",
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
+    "subcomponentHighLevelStates": {
+      "musr": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "DeserializedSubmodelComponent#1"
+        }
+      },
+      "msr": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "DeserializedSubmodelComponent#0"
+        }
+      }
+    },
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 4a24464..6e93abf 100644 (file)
@@ -4,19 +4,12 @@
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 3
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 46.0
       },
       "name": "COVD_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
+        "x": 37.5,
         "y": 46.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "COVD_V",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "COVD_V",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 3,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "mu",
-      "logicWidth": 4
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "y": 18.0
       },
       "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 15.5,
+        "y": 0.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 0.0
       },
       "name": "_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 15.5,
+        "x": 35.5,
+        "y": 0.2
+      },
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
         "y": 0.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.5,
-        "y": 0.2
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "mu",
+      "logicWidth": 4,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.1,
   "submodel": {
     "components": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
-      },
       {
         "id": "GUImux1_4",
         "name": "DeserializedSubmodelComponent#0",
           "y": 110.0
         }
       },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 150.0,
+          "y": 280.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": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
+        "pos": {
+          "x": 200.0,
+          "y": 230.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#6",
+        "pos": {
+          "x": 250.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
+        "pos": {
+          "x": 325.0,
+          "y": 290.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
+        "pos": {
+          "x": 380.0,
+          "y": 85.0
+        }
+      },
       {
         "id": "GUIMerger",
         "name": "GUIMerger#0",
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
         "params": 4
       },
       {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 74.0,
-          "y": 314.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
+          "x": 5.0,
+          "y": 165.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUISplitter",
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "name": "GUISplitter#3",
         "pos": {
           "x": 5.0,
-          "y": 165.0
+          "y": 295.0
         },
         "params": 4
       },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 29.0,
+          "y": 284.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 414.0,
+          "y": 174.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 89.0,
+          "y": 84.0
         },
         "params": 1
       },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 194.0,
+          "y": 234.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 89.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
-        }
+          "x": 319.0,
+          "y": 294.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 150.0,
-          "y": 280.0
-        }
+          "x": 319.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 29.0,
-          "y": 284.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "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
-        }
+          "x": 424.0,
+          "y": 194.0
+        },
+        "params": 1
       },
       {
         "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#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 29.0,
-          "y": 254.0
+          "x": 84.0,
+          "y": 344.0
         },
         "params": 1
       },
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 89.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 89.0,
-          "y": 84.0
+          "x": 29.0,
+          "y": 254.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 74.0,
+          "y": 314.0
         },
         "params": 1
       },
           "y": 114.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
-        "pos": {
-          "x": 319.0,
-          "y": 104.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
-        "pos": {
-          "x": 194.0,
-          "y": 234.0
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "params": 1
-      },
-      {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
-        "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#6",
-        "pos": {
-          "x": 250.0,
-          "y": 180.0
-        }
+        "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
+          }
+        ]
       },
-      {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
-        "pos": {
-          "x": 5.0,
-          "y": 295.0
-        },
-        "params": 4
-      }
-    ],
-    "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 355.0,
+            "y": 30.0
           },
           {
-            "x": 35.0,
-            "y": 125.0
+            "x": 355.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "mu"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 75.0,
-            "y": 265.0
+            "x": 35.0,
+            "y": 35.0
+          },
+          {
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 25.0,
+            "y": 55.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 25.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#43",
-        "path": []
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 155.0
+          },
+          {
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#67",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 435.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 355.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_EN"
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
           {
             "x": 255.0,
-            "y": 280.0
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 280.0
+            "x": 360.0,
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 175.0
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 425.0
+          },
+          {
+            "x": 60.0,
+            "y": 415.0
+          },
+          {
+            "x": 30.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_1"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 135.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 415.0,
+            "y": 380.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 420.0,
+            "y": 385.0
+          },
+          {
+            "x": 85.0,
+            "y": 385.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 425.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 430.0,
+            "y": 395.0
+          },
+          {
+            "x": 95.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 90.0,
-            "y": 75.0
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#32",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 305.0
+          }
+        ]
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#92",
-        "path": [
-          {
-            "x": 320.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 425.0
-          },
-          {
-            "x": 60.0,
-            "y": 415.0
-          },
-          {
-            "x": 30.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 430.0,
-            "y": 395.0
-          },
-          {
-            "x": 95.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#53",
         "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#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
-          },
-          {
-            "x": 105.0,
-            "y": 65.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#6",
         "path": []
       },
-      {
-        "pin1": {
-          "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"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 85.0,
+            "x": 80.0,
             "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#67",
         "path": [
           {
-            "x": 95.0,
-            "y": 305.0
+            "x": 195.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 215.0,
-            "y": 65.0
+            "x": 105.0,
+            "y": 235.0
           },
           {
-            "x": 215.0,
-            "y": 195.0
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 295.0,
+            "y": 215.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 295.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#66",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 300.0,
+            "y": 245.0
           },
           {
-            "x": 360.0,
+            "x": 300.0,
             "y": 205.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#8",
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
+          },
+          {
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 215.0,
+            "y": 65.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 210.0,
-            "y": 205.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 210.0,
-            "y": 75.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
+        },
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 365.0,
+            "x": 275.0,
             "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 80.0,
+            "x": 375.0,
             "y": 325.0
           },
           {
-            "x": 80.0,
-            "y": 275.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 90.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#93",
         "path": []
       }
     ],
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff4_finewe#0",
+          "subStateID": "q"
+        }
+      }
+    }
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b35584..93b91e5 100644 (file)
@@ -1,63 +1,69 @@
-mograsim version: 0.1.3
 {
   "width": 60.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 60.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 50.0
       },
-      "name": "Y101",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 20.0
+        "y": 10.0
       },
-      "name": "Y001",
-      "logicWidth": 1
+      "name": "Y000",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 50.0
+        "y": 20.0
       },
-      "name": "Y100",
-      "logicWidth": 1
+      "name": "Y001",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 80.0
+        "y": 30.0
       },
-      "name": "Y111",
-      "logicWidth": 1
+      "name": "Y010",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 50.0
+        "x": 60.0,
+        "y": 40.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "Y011",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 40.0
+        "y": 50.0
       },
-      "name": "Y011",
-      "logicWidth": 1
+      "name": "Y100",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 10.0
+        "y": 60.0
       },
-      "name": "Y000",
-      "logicWidth": 1
+      "name": "Y101",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,20 +71,39 @@ mograsim version: 0.1.3
         "y": 70.0
       },
       "name": "Y110",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 30.0
+        "y": 80.0
       },
-      "name": "Y010",
-      "logicWidth": 1
+      "name": "Y111",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 40.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 85.0,
+          "y": 20.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -90,10 +115,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 85.0,
-          "y": 20.0
+          "x": 120.0,
+          "y": 15.0
         },
         "params": 1
       },
@@ -108,22 +133,31 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
+          "x": 80.0,
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 34.0,
-          "y": 99.0
+          "x": 80.0,
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
+        "pos": {
+          "x": 5.0,
+          "y": 110.0
+        },
+        "params": 4
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#0",
@@ -134,20 +168,20 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 110.0
+          "x": 34.0,
+          "y": 99.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 79.0,
-          "y": 24.0
+          "x": 39.0,
+          "y": 109.0
         },
         "params": 1
       },
@@ -162,10 +196,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 24.0,
-          "y": 119.0
+          "x": 79.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -180,10 +214,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 74.0,
-          "y": 59.0
+          "x": 24.0,
+          "y": 119.0
         },
         "params": 1
       },
@@ -198,10 +232,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 24.0,
-          "y": 149.0
+          "x": 74.0,
+          "y": 59.0
         },
         "params": 1
       },
@@ -215,60 +249,92 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 80.0,
-          "y": 165.0
+          "x": 24.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 39.0,
-          "y": 109.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 40.0,
-          "y": 20.0
-        }
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 80.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 20.0
+          },
+          {
+            "x": 110.0,
+            "y": 30.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 115.0,
-            "y": 60.0
-          },
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
           {
-            "x": 115.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 55.0
           }
         ]
       },
@@ -286,15 +352,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y000"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 60.0
+          },
+          {
+            "x": 115.0,
+            "y": 30.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -315,14 +390,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y000"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -344,30 +419,42 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 110.0
+            "x": 35.0,
+            "y": 140.0
           }
         ]
       },
@@ -385,15 +472,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y100"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 110.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -409,14 +501,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -442,14 +534,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -466,14 +558,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y110"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -490,75 +582,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y110"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -579,37 +628,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 110.0,
-            "y": 20.0
-          },
-          {
-            "x": 110.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 120.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#9",
@@ -629,124 +662,100 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 30.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 40.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 140.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y111"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -761,5 +770,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index fa3ed35..05fbd4e 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 2
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,47 +17,53 @@ mograsim version: 0.1.3
         "y": 46.0
       },
       "name": "CINV",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
-        "y": 46.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 13.5
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "M",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "OVRRET",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 2,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 37.5,
+        "y": 46.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "OVRRET",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.5,
-        "y": 0.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,15 +71,17 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EC",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 13.5
+        "x": 25.5,
+        "y": 0.0
       },
-      "name": "M",
-      "logicWidth": 4
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,20 +89,54 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EOVR",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
+        "y": 0.0
+      },
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 45.0,
+          "y": 240.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 100.0,
+          "y": 190.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
           "x": 215.0,
-          "y": 255.0
+          "y": 200.0
+        }
+      },
+      {
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
+        "pos": {
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUINandGate",
@@ -115,30 +149,30 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 215.0,
-          "y": 235.0
+          "y": 255.0
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 215.0,
+          "y": 235.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 45.0,
-          "y": 430.0
+          "x": 5.0,
+          "y": 120.0
         },
-        "params": 2
+        "params": 4
       },
       {
         "id": "GUISplitter",
@@ -150,13 +184,21 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 89.0,
-          "y": 224.0
+          "x": 45.0,
+          "y": 430.0
         },
-        "params": 1
+        "params": 2
+      },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -168,29 +210,29 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 120.0
+          "x": 89.0,
+          "y": 224.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 89.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 89.0,
-          "y": 214.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
@@ -202,867 +244,836 @@ mograsim version: 0.1.3
           "y": 244.0
         },
         "params": 1
-      },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 100.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 45.0,
-          "y": 240.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 215.0,
-          "y": 200.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CINV"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y2"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 140.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
+            "x": 20.0,
+            "y": 150.0
           },
           {
-            "x": 345.0,
-            "y": 175.0
+            "x": 20.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 370.0,
-            "y": 185.0
-          },
-          {
-            "x": 370.0,
-            "y": 5.0
+            "x": 25.0,
+            "y": 275.0
           },
           {
-            "x": 55.0,
-            "y": 5.0
+            "x": 25.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 355.0,
-            "y": 215.0
+            "x": 30.0,
+            "y": 130.0
+          },
+          {
+            "x": 30.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 155.0,
-            "y": 10.0
-          },
-          {
-            "x": 365.0,
-            "y": 10.0
+            "x": 35.0,
+            "y": 255.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 360.0,
-            "y": 205.0
-          },
-          {
-            "x": 360.0,
-            "y": 15.0
-          },
-          {
-            "x": 255.0,
-            "y": 15.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 310.0,
-            "y": 205.0
-          },
-          {
-            "x": 310.0,
-            "y": 235.0
+            "x": 90.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 315.0,
-            "y": 225.0
-          },
-          {
-            "x": 315.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 160.0,
-            "y": 245.0
-          },
-          {
-            "x": 160.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#18",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 245.0
-          },
-          {
-            "x": 305.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 240.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#20",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 210.0,
-            "y": 250.0
+            "x": 90.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "M"
-        },
-        "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 235.0
+          },
+          {
+            "x": 40.0,
+            "y": 245.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 25.0,
-            "y": 275.0
+            "x": 85.0,
+            "y": 440.0
           },
           {
-            "x": 25.0,
-            "y": 140.0
+            "x": 85.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 20.0,
-            "y": 150.0
+            "x": 240.0,
+            "y": 245.0
           },
           {
-            "x": 20.0,
-            "y": 285.0
+            "x": 240.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 35.0,
-            "y": 255.0
+            "x": 240.0,
+            "y": 260.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 240.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 30.0,
-            "y": 130.0
+            "x": 375.0,
+            "y": 360.0
           },
           {
-            "x": 30.0,
-            "y": 265.0
+            "x": 205.0,
+            "y": 360.0
+          },
+          {
+            "x": 205.0,
+            "y": 260.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 430.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 430.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 270.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "CINV"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 90.0,
-            "y": 205.0
+            "x": 275.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 185.0
+          },
+          {
+            "x": 370.0,
+            "y": 5.0
+          },
+          {
+            "x": 55.0,
+            "y": 5.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 175.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 40.0,
-            "y": 235.0
+            "x": 360.0,
+            "y": 205.0
           },
           {
-            "x": 40.0,
-            "y": 245.0
+            "x": 360.0,
+            "y": 15.0
+          },
+          {
+            "x": 255.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 155.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S0"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 85.0,
-            "y": 440.0
+            "x": 315.0,
+            "y": 225.0
           },
           {
-            "x": 85.0,
+            "x": 315.0,
             "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 240.0,
-            "y": 245.0
+            "x": 310.0,
+            "y": 205.0
           },
           {
-            "x": 240.0,
-            "y": 250.0
+            "x": 310.0,
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "OVRRET"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 375.0,
-            "y": 360.0
+            "x": 305.0,
+            "y": 245.0
           },
           {
-            "x": 205.0,
-            "y": 360.0
+            "x": 305.0,
+            "y": 225.0
           },
           {
-            "x": 205.0,
-            "y": 260.0
+            "x": 170.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 240.0,
-            "y": 260.0
+            "x": 160.0,
+            "y": 245.0
           },
           {
-            "x": 240.0,
-            "y": 265.0
+            "x": 160.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#47",
         "path": [
-          {
-            "x": 430.0,
-            "y": 280.0
-          },
           {
             "x": 210.0,
-            "y": 280.0
-          },
+            "y": 240.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#48",
+        "path": [
           {
             "x": 210.0,
-            "y": 270.0
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "M"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1076,6 +1087,15 @@ mograsim version: 0.1.3
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff4_finewe#0",
+          "subStateID": "q"
+        }
+      }
+    }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e410f3b..a568150 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 72.0,
   "height": 67.0,
@@ -9,15 +8,8 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,15 +17,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "CI",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 6.0
+        "x": 36.0,
+        "y": 0.0
       },
-      "name": "_RLD",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 12,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,31 +35,35 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 19.0,
+        "x": 38.0,
         "y": 67.0
       },
-      "name": "_MAP",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 12,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 44.0
+        "y": 38.0
       },
-      "name": "_CCEN",
-      "logicWidth": 1
+      "name": "_CC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 49.0,
-        "y": 67.0
+        "x": 0.0,
+        "y": 44.0
       },
-      "name": "_OE",
-      "logicWidth": 1
+      "name": "_CCEN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,61 +71,136 @@ mograsim version: 0.1.3
         "y": 14.0
       },
       "name": "_FULL",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 38.0,
+        "x": 19.0,
         "y": 67.0
       },
-      "name": "Y",
-      "logicWidth": 12
+      "name": "_MAP",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 13.0,
+        "x": 49.0,
         "y": 67.0
       },
-      "name": "_PL",
-      "logicWidth": 1
+      "name": "_OE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.0,
+        "x": 13.0,
         "y": 67.0
       },
-      "name": "_VECT",
-      "logicWidth": 1
+      "name": "_PL",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 6.0
       },
-      "name": "_CC",
-      "logicWidth": 1
+      "name": "_RLD",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 25.0,
+        "y": 67.0
+      },
+      "name": "_VECT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2910InstrPLA",
+        "name": "GUIAm2910InstrPLA#0",
         "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 155.0
+        }
       },
       {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
+        "id": "GUIAm2910RegCntr",
+        "name": "GUIAm2910RegCntr#0",
+        "pos": {
+          "x": 160.0,
+          "y": 25.0
+        }
+      },
+      {
+        "id": "GUIAm2910SP",
+        "name": "GUIAm2910SP#0",
         "pos": {
           "x": 305.0,
-          "y": 100.0
+          "y": 55.0
         }
       },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
+        "pos": {
+          "x": 160.0,
+          "y": 95.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
+        "pos": {
+          "x": 260.0,
+          "y": 115.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
+        "pos": {
+          "x": 345.0,
+          "y": 180.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
+        "pos": {
+          "x": 265.0,
+          "y": 150.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#4",
+        "pos": {
+          "x": 260.0,
+          "y": 85.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#5",
+        "pos": {
+          "x": 260.0,
+          "y": 70.0
+        },
+        "params": 3
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -137,6 +210,27 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 210.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 180.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 12,
+          "orientation": "DOWN"
+        }
+      },
       {
         "id": "GUIdff12",
         "name": "GUIdff12#0",
@@ -154,22 +248,28 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "GUInor12",
+        "name": "GUInor12#0",
         "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
+          "x": 190.0,
+          "y": 80.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIram5_12",
+        "name": "GUIram5_12#0",
         "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
+          "x": 305.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUIsel4_12",
+        "name": "GUIsel4_12#0",
+        "pos": {
+          "x": 150.0,
+          "y": 175.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -182,12 +282,12 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 179.0,
-          "y": 89.0
+          "x": 294.0,
+          "y": 104.0
         },
-        "params": 12
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -200,12 +300,12 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 4.0,
-          "y": 219.0
+          "x": 179.0,
+          "y": 89.0
         },
-        "params": 1
+        "params": 12
       },
       {
         "id": "WireCrossPoint",
@@ -218,25 +318,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 299.0,
-          "y": 44.0
+          "x": 4.0,
+          "y": 219.0
         },
         "params": 1
       },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
-        "pos": {
-          "x": 180.0,
-          "y": 290.0
-        },
-        "params": {
-          "logicWidth": 12,
-          "orientation": "DOWN_ALT"
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -248,10 +336,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
           "x": 299.0,
-          "y": 114.0
+          "y": 44.0
         },
         "params": 1
       },
@@ -265,615 +353,651 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
+          "x": 299.0,
+          "y": 114.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
+        "pin1": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YD"
         },
-        "params": 12
+        "pin2": {
+          "compName": "GUIsel4_12#0",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
+        "pin1": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YR"
+        },
+        "pin2": {
+          "compName": "GUIsel4_12#0",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUInor12#0",
+          "pinName": "Y"
         },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
+        "pin2": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "R\u003d0"
         },
-        "params": 12
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 90.0
+          },
+          {
+            "x": 230.0,
+            "y": 120.0
+          },
+          {
+            "x": 95.0,
+            "y": 120.0
+          }
+        ]
       },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 160.0
+          },
+          {
+            "x": 115.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RDEC"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "DEC"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 170.0
+          },
+          {
+            "x": 120.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 220.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI1"
         },
         "pin2": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "C"
+          "pinName": "STKI1"
         },
-        "name": "unnamedWire#37",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 230.0
+          },
+          {
+            "x": 290.0,
+            "y": 70.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI0"
         },
-        "name": "unnamedWire#41",
-        "path": []
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUIram5_12#0",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
+          "compName": "GUIsel4_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
+          "compName": "GUIinc12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
+            "x": 325.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIram5_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
+          "compName": "GUIsel4_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
+          "compName": "GUIsel4_12#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#47",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUInor12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
+          "compName": "GUIsel4_12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 15.0
+          },
+          {
+            "x": 145.0,
+            "y": 150.0
+          },
+          {
+            "x": 160.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_RLD"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "_RLD"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "PASS"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 160.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_CC"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
+          "pinName": "YmuPC"
         },
         "pin2": {
           "compName": "GUIsel4_12#0",
-          "pinName": "SA"
+          "pinName": "SD"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "_submodelinterface",
+          "pinName": "_CCEN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#51",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#32",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 225.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUInor12#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 220.0
           },
           {
-            "x": 95.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "_FULL"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_FULL"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff12#0",
-          "pinName": "D"
+          "pinName": "C"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OE"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#53",
-        "path": [
-          {
-            "x": 245.0,
-            "y": 300.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
+          "compName": "GUIdff12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
+          "compName": "GUIinc12#0",
+          "pinName": "CI"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
+          "compName": "_submodelinterface",
+          "pinName": "CI"
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#41",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
+          "pinName": "_PL"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_PL"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 295.0,
-            "y": 220.0
+            "x": 85.0,
+            "y": 290.0
+          },
+          {
+            "x": 65.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_MAP"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_MAP"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_VECT"
         },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_VECT"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 295.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 290.0
+          },
+          {
+            "x": 125.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 325.0,
-            "y": 275.0
+            "x": 70.0,
+            "y": 250.0
+          },
+          {
+            "x": 70.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel4_12#0",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUIBitDisplay#0",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
@@ -882,244 +1006,175 @@ mograsim version: 0.1.3
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "GUIBitDisplay#1",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
+          "compName": "GUIram5_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#50",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_OE"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#53",
+        "path": [
+          {
+            "x": 245.0,
+            "y": 300.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
+          "compName": "GUIBitDisplay#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIBitDisplay#4",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIram5_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIAm2910SP#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIram5_12#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
+          "compName": "GUIram5_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1132,7 +1187,33 @@ mograsim version: 0.1.3
   "outlineRendererSnippetID": "default",
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
+    "subcomponentHighLevelStates": {
+      "r": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIAm2910RegCntr#0"
+        }
+      },
+      "stack": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIram5_12#0"
+        }
+      },
+      "mupc": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff12#0"
+        }
+      },
+      "sp": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIAm2910SP#0"
+        }
+      }
+    },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
diff --git a/net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json b/net.mograsim.logic.model.am2900/components/am2910/GUIAm2910_old.json
deleted file mode 100644 (file)
index 20f9ac0..0000000
+++ /dev/null
@@ -1,1089 +0,0 @@
-mograsim version: 0.1.3
-{
-  "width": 72.0,
-  "height": 61.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 19.0,
-        "y": 61.0
-      },
-      "name": "_MAP",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 44.0
-      },
-      "name": "_CCEN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 60.0,
-        "y": 0.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 14.0
-      },
-      "name": "_FULL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 40.0
-      },
-      "name": "CI",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 6.0
-      },
-      "name": "_RLD",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 50.0
-      },
-      "name": "I",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 38.0,
-        "y": 61.0
-      },
-      "name": "Y",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 13.0,
-        "y": 61.0
-      },
-      "name": "_PL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 25.0,
-        "y": 61.0
-      },
-      "name": "_VECT",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 38.0
-      },
-      "name": "_CC",
-      "logicWidth": 1
-    }
-  ],
-  "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 100.0
-        }
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
-        "pos": {
-          "x": 40.0,
-          "y": 185.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIdff12",
-        "name": "GUIdff12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 160.0
-        }
-      },
-      {
-        "id": "GUIinc12",
-        "name": "GUIinc12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 324.0,
-          "y": 149.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
-        "pos": {
-          "x": 179.0,
-          "y": 89.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 189.0,
-          "y": 274.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 4.0,
-          "y": 219.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
-        "pos": {
-          "x": 179.0,
-          "y": 14.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
-        "pos": {
-          "x": 299.0,
-          "y": 44.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 299.0,
-          "y": 79.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 299.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 299.0,
-          "y": 169.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#38",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#37",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
-        },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUInor12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
-          },
-          {
-            "x": 95.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
-        },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#16",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
-        },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
-      }
-    ]
-  },
-  "symbolRendererSnippetID": "simpleRectangularLike",
-  "symbolRendererParams": {
-    "centerText": "Am2910",
-    "centerTextHeight": 5.0,
-    "horizontalComponentCenter": 17.5,
-    "pinLabelHeight": 3.5,
-    "pinLabelMargin": 0.5
-  },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
-  "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
-}
\ No newline at end of file
index 5dd2f96..503831d 100644 (file)
@@ -8,11 +8,13 @@ import java.util.Arrays;
 import java.util.Map;
 
 import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -22,13 +24,13 @@ public class GUIdff12 extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "D flip flop\n12 bits");
                setSize(40, 20);
-               addPin(new Pin(this, "D", 12, 20, 20), Usage.INPUT, Position.TOP);
-               addPin(new Pin(this, "C", 1, 0, 10), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "Y", 12, 20, 0), Usage.OUTPUT, Position.BOTTOM);
+               addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 20), Position.TOP);
+               addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 10), Position.RIGHT);
+               addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit[] QC = (Bit[]) lastState;
                if (QC == null)
@@ -48,6 +50,34 @@ public class GUIdff12 extends SimpleRectangularHardcodedGUIComponent
                return QC;
        }
 
+       @Override
+       protected Object getHighLevelState(Object state, String stateID)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12));
+               default:
+                       return super.getHighLevelState(state, stateID);
+               }
+       }
+
+       @Override
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       BitVector newHighLevelStateCasted = (BitVector) newHighLevelState;
+                       if (newHighLevelStateCasted.length() != 12)
+                               throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length());
+                       System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12);
+                       return lastState;
+               default:
+                       return super.setHighLevelState(lastState, stateID, newHighLevelState);
+               }
+       }
+
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIdff12.class.getCanonicalName(), (m, p, n) -> new GUIdff12(m, n));
index c4efe93..dec8f63 100644 (file)
@@ -6,14 +6,17 @@ 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.Arrays;
 import java.util.Map;
 
 import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,23 +26,23 @@ public class GUIdff4_finewe extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "D flip flop\n4 bits");
                setSize(35, 90);
-               addPin(new Pin(this, "C", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "_WE1", 1, 0, 15), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "_WE2", 1, 0, 25), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "_WE3", 1, 0, 35), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "_WE4", 1, 0, 45), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "D1", 1, 0, 55), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "D2", 1, 0, 65), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "D3", 1, 0, 75), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "D4", 1, 0, 85), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "Q1", 1, 35, 5), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "Q2", 1, 35, 15), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "Q3", 1, 35, 25), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "Q4", 1, 35, 35), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "_WE1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT);
+               addPin(new Pin(this, "_WE2", 1, PinUsage.INPUT, 0, 25), Position.RIGHT);
+               addPin(new Pin(this, "_WE3", 1, PinUsage.INPUT, 0, 35), Position.RIGHT);
+               addPin(new Pin(this, "_WE4", 1, PinUsage.INPUT, 0, 45), Position.RIGHT);
+               addPin(new Pin(this, "D1", 1, PinUsage.INPUT, 0, 55), Position.RIGHT);
+               addPin(new Pin(this, "D2", 1, PinUsage.INPUT, 0, 65), Position.RIGHT);
+               addPin(new Pin(this, "D3", 1, PinUsage.INPUT, 0, 75), Position.RIGHT);
+               addPin(new Pin(this, "D4", 1, PinUsage.INPUT, 0, 85), Position.RIGHT);
+               addPin(new Pin(this, "Q1", 1, PinUsage.OUTPUT, 35, 5), Position.LEFT);
+               addPin(new Pin(this, "Q2", 1, PinUsage.OUTPUT, 35, 15), Position.LEFT);
+               addPin(new Pin(this, "Q3", 1, PinUsage.OUTPUT, 35, 25), Position.LEFT);
+               addPin(new Pin(this, "Q4", 1, PinUsage.OUTPUT, 35, 35), Position.LEFT);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit[] QC = (Bit[]) lastState;
                if (QC == null)
@@ -69,6 +72,34 @@ public class GUIdff4_finewe extends SimpleRectangularHardcodedGUIComponent
                return QC;
        }
 
+       @Override
+       protected Object getHighLevelState(Object state, String stateID)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       return BitVector.of(Arrays.copyOfRange((Bit[]) state, 1, 5));
+               default:
+                       return super.getHighLevelState(state, stateID);
+               }
+       }
+
+       @Override
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       BitVector newHighLevelStateCasted = (BitVector) newHighLevelState;
+                       if (newHighLevelStateCasted.length() != 4)
+                               throw new IllegalArgumentException("Expected BitVector of length 4, not " + newHighLevelStateCasted.length());
+                       System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 1, 4);
+                       return lastState;
+               default:
+                       return super.setHighLevelState(lastState, stateID, newHighLevelState);
+               }
+       }
+
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIdff4_finewe.class.getCanonicalName(), (m, p, n) -> new GUIdff4_finewe(m, n));
index cbd1f9f..a20745b 100644 (file)
@@ -14,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,13 +24,13 @@ public class GUIinc12 extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "Incrementer");
                setSize(40, 20);
-               addPin(new Pin(this, "A", 12, 20, 20), Usage.INPUT, Position.TOP);
-               addPin(new Pin(this, "CI", 1, 40, 10), Usage.INPUT, Position.LEFT);
-               addPin(new Pin(this, "Y", 12, 20, 0), Usage.OUTPUT, Position.BOTTOM);
+               addPin(new Pin(this, "A", 12, PinUsage.INPUT, 20, 20), Position.TOP);
+               addPin(new Pin(this, "CI", 1, PinUsage.INPUT, 40, 10), Position.LEFT);
+               addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 0), Position.BOTTOM);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit[] ABits = readEnds.get("A").getValues().getBits();
                Bit CIVal = readEnds.get("CI").getValue();
index 5c95035..1948c67 100644 (file)
@@ -14,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,12 +24,12 @@ public class GUInor12 extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "=0");
                setSize(35, 20);
-               addPin(new Pin(this, "D", 12, 0, 10), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "Y", 1, 35, 10), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "D", 12, PinUsage.INPUT, 0, 10), Position.RIGHT);
+               addPin(new Pin(this, "Y", 1, PinUsage.OUTPUT, 35, 10), Position.LEFT);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                readWriteEnds.get("Y").feedSignals(getResult(readEnds.get("D").getValues().getBits()));
                return null;
index 1bf80c8..a8c397c 100644 (file)
@@ -8,6 +8,8 @@ import static net.mograsim.logic.core.types.Bit.ZERO;
 
 import java.util.Arrays;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
@@ -16,6 +18,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -25,16 +28,16 @@ public class GUIram5_12 extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "RAM\n5 x 12 Bit");
                setSize(40, 40);
-               addPin(new Pin(this, "A", 3, 10, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "B", 3, 30, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "WE", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "C", 1, 0, 15), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "Y", 12, 0, 30), Usage.OUTPUT, Position.RIGHT);
-               addPin(new Pin(this, "D", 12, 20, 40), Usage.INPUT, Position.TOP);
+               addPin(new Pin(this, "A", 3, PinUsage.INPUT, 10, 0), Position.BOTTOM);
+               addPin(new Pin(this, "B", 3, PinUsage.INPUT, 30, 0), Position.BOTTOM);
+               addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 15), Position.RIGHT);
+               addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 0, 30), Position.RIGHT);
+               addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 40), Position.TOP);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                BitVector[] memC = (BitVector[]) lastState;
                if (memC == null)
@@ -82,6 +85,32 @@ public class GUIram5_12 extends SimpleRectangularHardcodedGUIComponent
                return (bits[0] == ONE ? 4 : 0) + (bits[1] == ONE ? 2 : 0) + (bits[2] == ONE ? 1 : 0);
        }
 
+       Pattern stateIDPattern = Pattern.compile("c(0[10][10]|100)");
+
+       @Override
+       protected Object getHighLevelState(Object state, String stateID)
+       {
+               Matcher m = stateIDPattern.matcher(stateID);
+               if (m.matches())
+                       return ((BitVector[]) state)[Integer.parseInt(m.group(1), 2)];
+               return super.getHighLevelState(state, stateID);
+       }
+
+       @Override
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               Matcher m = stateIDPattern.matcher(stateID);
+               if (m.matches())
+               {
+                       int addr = Integer.parseInt(m.group(1), 2);
+                       BitVector newHighLevelStateCasted = (BitVector) newHighLevelState;
+                       if (newHighLevelStateCasted.length() != 3)
+                               throw new IllegalArgumentException("Expected BitVector of length 3, not " + newHighLevelStateCasted.length());
+                       return ((BitVector[]) lastState)[addr] = newHighLevelStateCasted;
+               }
+               return super.setHighLevelState(lastState, stateID, newHighLevelState);
+       }
+
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIram5_12.class.getCanonicalName(), (m, p, n) -> new GUIram5_12(m, n));
index 480a4b1..ee7bc0e 100644 (file)
@@ -15,6 +15,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -24,19 +25,19 @@ public class GUIsel4_12 extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "4-way SEL\n12 bit");
                setSize(80, 40);
-               addPin(new Pin(this, "SA", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "SB", 1, 0, 15), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "SC", 1, 0, 25), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "SD", 1, 0, 35), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "A", 12, 10, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "B", 12, 30, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "C", 12, 50, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "D", 12, 70, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "Y", 12, 40, 40), Usage.OUTPUT, Position.TOP);
+               addPin(new Pin(this, "SA", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "SB", 1, PinUsage.INPUT, 0, 15), Position.RIGHT);
+               addPin(new Pin(this, "SC", 1, PinUsage.INPUT, 0, 25), Position.RIGHT);
+               addPin(new Pin(this, "SD", 1, PinUsage.INPUT, 0, 35), Position.RIGHT);
+               addPin(new Pin(this, "A", 12, PinUsage.INPUT, 10, 0), Position.BOTTOM);
+               addPin(new Pin(this, "B", 12, PinUsage.INPUT, 30, 0), Position.BOTTOM);
+               addPin(new Pin(this, "C", 12, PinUsage.INPUT, 50, 0), Position.BOTTOM);
+               addPin(new Pin(this, "D", 12, PinUsage.INPUT, 70, 0), Position.BOTTOM);
+               addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 40, 40), Position.TOP);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit SAVal = readEnds.get("SA").getValue();
                Bit SBVal = readEnds.get("SB").getValue();
index dc3c479..2406810 100644 (file)
@@ -14,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,20 +24,20 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
        {
                super(model, name, "Instruction\ndecode");
                setSize(80, 80);
-               addPin(new Pin(this, "I5-0", 6, 0, 30), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "I12-11", 2, 0, 50), Usage.INPUT, Position.RIGHT);
+               addPin(new Pin(this, "I5-0", 6, PinUsage.INPUT, 0, 30), Position.RIGHT);
+               addPin(new Pin(this, "I12-11", 2, PinUsage.INPUT, 0, 50), Position.RIGHT);
                // muSR MUX:
                // 00: 0
                // 01: 1
                // 10: M
                // 11: I
-               addPin(new Pin(this, "muSR_MUX", 2, 80, 10), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_OVRRET", 1, 80, 20), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_CINV", 1, 80, 30), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_WEZ", 1, 80, 40), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_WEC", 1, 80, 50), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_WEN", 1, 80, 60), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "muSR_WEOVR", 1, 80, 70), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "muSR_MUX", 2, PinUsage.OUTPUT, 80, 10), Position.LEFT);
+               addPin(new Pin(this, "muSR_OVRRET", 1, PinUsage.OUTPUT, 80, 20), Position.LEFT);
+               addPin(new Pin(this, "muSR_CINV", 1, PinUsage.OUTPUT, 80, 30), Position.LEFT);
+               addPin(new Pin(this, "muSR_WEZ", 1, PinUsage.OUTPUT, 80, 40), Position.LEFT);
+               addPin(new Pin(this, "muSR_WEC", 1, PinUsage.OUTPUT, 80, 50), Position.LEFT);
+               addPin(new Pin(this, "muSR_WEN", 1, PinUsage.OUTPUT, 80, 60), Position.LEFT);
+               addPin(new Pin(this, "muSR_WEOVR", 1, PinUsage.OUTPUT, 80, 70), Position.LEFT);
                // MSR MUX:
                // 000: 0
                // 001: 1
@@ -46,19 +47,19 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                // 101: I, invert C
                // 110: Swap OVR and C
                // 111: _M
-               addPin(new Pin(this, "MSR_MUX", 3, 20, 0), Usage.OUTPUT, Position.BOTTOM);
-               addPin(new Pin(this, "OEN", 1, 60, 0), Usage.OUTPUT, Position.BOTTOM);
+               addPin(new Pin(this, "MSR_MUX", 3, PinUsage.OUTPUT, 20, 0), Position.BOTTOM);
+               addPin(new Pin(this, "OEN", 1, PinUsage.OUTPUT, 60, 0), Position.BOTTOM);
                // Y MUX:
                // 00: mu
                // 01: mu
                // 10: M
                // 11: I
-               addPin(new Pin(this, "Y_MUX", 2, 10, 80), Usage.OUTPUT, Position.TOP);
+               addPin(new Pin(this, "Y_MUX", 2, PinUsage.OUTPUT, 10, 80), Position.TOP);
                // CT MUX:
                // see Am2900 Family Data Book, Am2904, Table 4 (CT_MUX2-0 = I3-1)
-               addPin(new Pin(this, "CT_MUX", 3, 30, 80), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "CT_INV", 1, 40, 80), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "CT_EXP", 1, 50, 80), Usage.OUTPUT, Position.TOP);
+               addPin(new Pin(this, "CT_MUX", 3, PinUsage.OUTPUT, 30, 80), Position.TOP);
+               addPin(new Pin(this, "CT_INV", 1, PinUsage.OUTPUT, 40, 80), Position.TOP);
+               addPin(new Pin(this, "CT_EXP", 1, PinUsage.OUTPUT, 50, 80), Position.TOP);
                // C0 MUX:
                // 00xx: 0
                // 01xx: 1
@@ -67,11 +68,11 @@ public class GUIAm2904RegCTInstrDecode extends SimpleRectangularHardcodedGUIComp
                // 1101: _muC
                // 1110: MC
                // 1111: _MC
-               addPin(new Pin(this, "C0_MUX", 4, 70, 80), Usage.OUTPUT, Position.TOP);
+               addPin(new Pin(this, "C0_MUX", 4, PinUsage.OUTPUT, 70, 80), Position.TOP);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit[] I5_0Bits = readEnds.get("I5-0").getValues().getBits();
                Bit[] I12_11Bits = readEnds.get("I12-11").getValues().getBits();
index 51b6da0..2a3ce4e 100644 (file)
@@ -14,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,15 +24,15 @@ public class GUIAm2904ShiftInstrDecode extends SimpleRectangularHardcodedGUIComp
        {
                super(model, name, "Shift \ninstruction\ndecode");
                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);
+               addPin(new Pin(this, "I", 5, PinUsage.INPUT, 0, 25), Position.RIGHT);
+               addPin(new Pin(this, "_SE", 1, PinUsage.INPUT, 0, 55), Position.RIGHT);
                // SIO0 MUX:
                // 000: 0
                // 001: 1
                // 01x: SIOn
                // 10x: QIOn
                // 11x: MC
-               addPin(new Pin(this, "SIO0_MUX", 3, 60, 5), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "SIO0_MUX", 3, PinUsage.OUTPUT, 60, 5), Position.LEFT);
                // SIOn MUX:
                // 000: 0
                // 001: 1
@@ -41,32 +42,32 @@ public class GUIAm2904ShiftInstrDecode extends SimpleRectangularHardcodedGUIComp
                // 101: MN
                // 110: IC
                // 111: IN xor IVOR
-               addPin(new Pin(this, "SIOn_MUX", 3, 60, 15), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "SIOn_MUX", 3, PinUsage.OUTPUT, 60, 15), Position.LEFT);
                // QIO0 MUX:
                // 000: 0
                // 001: 1
                // 01x: SIOn
                // 10x: QIOn
                // 11x: MC
-               addPin(new Pin(this, "QIO0_MUX", 3, 60, 25), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "QIO0_MUX", 3, PinUsage.OUTPUT, 60, 25), Position.LEFT);
                // QIOn MUX:
                // 000: 0
                // 001: 1
                // 01x: SIO0
                // 10x: QIO0
                // 11x: MN
-               addPin(new Pin(this, "QIOn_MUX", 3, 60, 35), 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);
+               addPin(new Pin(this, "QIOn_MUX", 3, PinUsage.OUTPUT, 60, 35), Position.LEFT);
+               addPin(new Pin(this, "OEn", 1, PinUsage.OUTPUT, 60, 45), Position.LEFT);
+               addPin(new Pin(this, "OE0", 1, PinUsage.OUTPUT, 60, 55), Position.LEFT);
                // 00: SIO0
                // 01: QIO0
                // 1x: SIOn
-               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);
+               addPin(new Pin(this, "MC_MUX", 2, PinUsage.OUTPUT, 60, 65), Position.LEFT);
+               addPin(new Pin(this, "MC_EN", 1, PinUsage.OUTPUT, 60, 75), Position.LEFT);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public 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();
index 6e42d2e..5ae7240 100644 (file)
@@ -13,6 +13,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -22,24 +23,24 @@ public class GUIAm2910InstrPLA extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "Instr.\nPLA");
                setSize(30, 85);
-               addPin(new Pin(this, "PASS", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "I", 4, 0, 20), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "R=0", 1, 15, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "_PL", 1, 5, 85), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "_MAP", 1, 15, 85), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "_VECT", 1, 25, 85), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "RWE", 1, 30, 5), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "RDEC", 1, 30, 15), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "YD", 1, 30, 25), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "YR", 1, 30, 35), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "YF", 1, 30, 45), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "YmuPC", 1, 30, 55), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "STKI0", 1, 30, 65), Usage.OUTPUT, Position.LEFT);
-               addPin(new Pin(this, "STKI1", 1, 30, 75), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "PASS", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "I", 4, PinUsage.INPUT, 0, 20), Position.RIGHT);
+               addPin(new Pin(this, "R=0", 1, PinUsage.INPUT, 15, 0), Position.BOTTOM);
+               addPin(new Pin(this, "_PL", 1, PinUsage.OUTPUT, 5, 85), Position.TOP);
+               addPin(new Pin(this, "_MAP", 1, PinUsage.OUTPUT, 15, 85), Position.TOP);
+               addPin(new Pin(this, "_VECT", 1, PinUsage.OUTPUT, 25, 85), Position.TOP);
+               addPin(new Pin(this, "RWE", 1, PinUsage.OUTPUT, 30, 5), Position.LEFT);
+               addPin(new Pin(this, "RDEC", 1, PinUsage.OUTPUT, 30, 15), Position.LEFT);
+               addPin(new Pin(this, "YD", 1, PinUsage.OUTPUT, 30, 25), Position.LEFT);
+               addPin(new Pin(this, "YR", 1, PinUsage.OUTPUT, 30, 35), Position.LEFT);
+               addPin(new Pin(this, "YF", 1, PinUsage.OUTPUT, 30, 45), Position.LEFT);
+               addPin(new Pin(this, "YmuPC", 1, PinUsage.OUTPUT, 30, 55), Position.LEFT);
+               addPin(new Pin(this, "STKI0", 1, PinUsage.OUTPUT, 30, 65), Position.LEFT);
+               addPin(new Pin(this, "STKI1", 1, PinUsage.OUTPUT, 30, 75), Position.LEFT);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                ReadEnd PASS = readEnds.get("PASS");
                ReadEnd I = readEnds.get("I");
index ec228c1..5a13ebc 100644 (file)
@@ -8,11 +8,13 @@ import java.util.Arrays;
 import java.util.Map;
 
 import net.mograsim.logic.core.types.Bit;
+import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -22,16 +24,16 @@ public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "Register/\nCounter");
                setSize(40, 40);
-               addPin(new Pin(this, "D", 12, 20, 0), Usage.INPUT, Position.BOTTOM);
-               addPin(new Pin(this, "_RLD", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "WE", 1, 0, 20), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "DEC", 1, 0, 30), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "C", 1, 40, 20), Usage.INPUT, Position.LEFT);
-               addPin(new Pin(this, "Y", 12, 20, 40), Usage.OUTPUT, Position.TOP);
+               addPin(new Pin(this, "D", 12, PinUsage.INPUT, 20, 0), Position.BOTTOM);
+               addPin(new Pin(this, "_RLD", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "WE", 1, PinUsage.INPUT, 0, 20), Position.RIGHT);
+               addPin(new Pin(this, "DEC", 1, PinUsage.INPUT, 0, 30), Position.RIGHT);
+               addPin(new Pin(this, "C", 1, PinUsage.INPUT, 40, 20), Position.LEFT);
+               addPin(new Pin(this, "Y", 12, PinUsage.OUTPUT, 20, 40), Position.TOP);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                Bit[] QC = (Bit[]) lastState;
                if (QC == null)
@@ -74,6 +76,34 @@ public class GUIAm2910RegCntr extends SimpleRectangularHardcodedGUIComponent
                return QC;
        }
 
+       @Override
+       protected Object getHighLevelState(Object state, String stateID)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       return BitVector.of(Arrays.copyOfRange((Bit[]) state, 0, 12));
+               default:
+                       return super.getHighLevelState(state, stateID);
+               }
+       }
+
+       @Override
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       BitVector newHighLevelStateCasted = (BitVector) newHighLevelState;
+                       if (newHighLevelStateCasted.length() != 12)
+                               throw new IllegalArgumentException("Expected BitVector of length 12, not " + newHighLevelStateCasted.length());
+                       System.arraycopy(newHighLevelStateCasted.getBits(), 0, lastState, 0, 12);
+                       return lastState;
+               default:
+                       return super.setHighLevelState(lastState, stateID, newHighLevelState);
+               }
+       }
+
        static
        {
                IndirectGUIComponentCreator.setComponentSupplier(GUIAm2910RegCntr.class.getCanonicalName(),
index c4b44f3..fb449d2 100644 (file)
@@ -14,6 +14,7 @@ import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.PinNamesParams.Position;
 
@@ -23,16 +24,16 @@ public class GUIAm2910SP extends SimpleRectangularHardcodedGUIComponent
        {
                super(model, name, "Stack\npointer");
                setSize(40, 30);
-               addPin(new Pin(this, "STKI0", 1, 0, 5), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "STKI1", 1, 0, 15), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "C", 1, 0, 25), Usage.INPUT, Position.RIGHT);
-               addPin(new Pin(this, "A", 3, 10, 30), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "B", 3, 30, 30), Usage.OUTPUT, Position.TOP);
-               addPin(new Pin(this, "_FULL", 1, 40, 15), Usage.OUTPUT, Position.LEFT);
+               addPin(new Pin(this, "STKI0", 1, PinUsage.INPUT, 0, 5), Position.RIGHT);
+               addPin(new Pin(this, "STKI1", 1, PinUsage.INPUT, 0, 15), Position.RIGHT);
+               addPin(new Pin(this, "C", 1, PinUsage.INPUT, 0, 25), Position.RIGHT);
+               addPin(new Pin(this, "A", 3, PinUsage.OUTPUT, 10, 30), Position.TOP);
+               addPin(new Pin(this, "B", 3, PinUsage.OUTPUT, 30, 30), Position.TOP);
+               addPin(new Pin(this, "_FULL", 1, PinUsage.OUTPUT, 40, 15), Position.LEFT);
        }
 
        @Override
-       protected Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
+       public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds)
        {
                BitAndInt SPC = (BitAndInt) lastState;
                if (SPC == null)
@@ -62,7 +63,7 @@ public class GUIAm2910SP extends SimpleRectangularHardcodedGUIComponent
                        else if (STKI0Val == ONE && STKI1Val == ONE)
                                // POP
                                SP = SP <= 0 ? SP : SP - 1;
-               readWriteEnds.get("A").feedSignals(getAsBitVector(SP == 0 ? 7 : SP - 1));
+               readWriteEnds.get("A").feedSignals(getAsBitVector(SP == 0 ? 7 : SP < 0 ? SP : SP - 1));
                readWriteEnds.get("B").feedSignals(getAsBitVector(SP == 5 ? 4 : SP));
                readWriteEnds.get("_FULL").feedSignals(SP == -2 ? U : SP == -1 ? X : SP == 5 ? ZERO : ONE);
 
@@ -71,6 +72,41 @@ public class GUIAm2910SP extends SimpleRectangularHardcodedGUIComponent
                return SPC;
        }
 
+       @Override
+       protected Object getHighLevelState(Object state, String stateID)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       return getAsBitVector(((BitAndInt) state).i);
+               default:
+                       return super.getHighLevelState(state, stateID);
+               }
+       }
+
+       @Override
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               switch (stateID)
+               {
+               case "q":
+                       int i;
+                       BitVector newHighLevelStateCasted = (BitVector) newHighLevelState;
+                       if (newHighLevelStateCasted.length() != 3)
+                               throw new IllegalArgumentException("Expected BitVector of length 3, not " + newHighLevelStateCasted.length());
+                       if (newHighLevelStateCasted.isBinary())
+                               i = newHighLevelStateCasted.getUnsignedValue().intValue();
+                       else
+                               i = -1;// this makes setting to U impossible
+                       if (i > 5)
+                               throw new IllegalArgumentException("Given value not in range (0-5 incl.): " + i);
+                       ((BitAndInt) lastState).i = i;
+                       return lastState;
+               default:
+                       return super.setHighLevelState(lastState, stateID, newHighLevelState);
+               }
+       }
+
        private static class BitAndInt
        {
                Bit bit;
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
deleted file mode 100644 (file)
index a4c4290..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-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
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2910Testbench.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/Am2910Testbench.java
deleted file mode 100644 (file)
index 132b913..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-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;
-import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
-import net.mograsim.logic.model.model.wires.GUIWire;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
-
-public class Am2910Testbench
-{
-       public static void main(String[] args)
-       {
-               SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create, Am2910Testbench::beforeRun);
-       }
-
-       @SuppressWarnings("unused") // for GUIWires being created
-       public static void create(ViewModelModifiable model)
-       {
-               GUIComponent am2910 = IndirectGUIComponentCreator.createComponent(model, "file:components/am2910/GUIAm2910.json", "Am2910");
-               GUIManualSwitch C = new GUIManualSwitch(model, 1, "C");
-               GUIManualSwitch D = new GUIManualSwitch(model, 12, "D");
-               GUIManualSwitch _RLD = new GUIManualSwitch(model, 1, "_RLD");
-               GUIManualSwitch _CC = new GUIManualSwitch(model, 1, "_CC");
-               GUIManualSwitch _CCEN = new GUIManualSwitch(model, 1, "_CCEN");
-               GUIManualSwitch I = new GUIManualSwitch(model, 4, "I");
-               GUIManualSwitch CI = new GUIManualSwitch(model, 1, "CI");
-               GUIManualSwitch _OE = new GUIManualSwitch(model, 1, "_OE");
-               GUIBitDisplay _FULL = new GUIBitDisplay(model, 1, "_FULL");
-               GUIBitDisplay _PL = new GUIBitDisplay(model, 1, "_PL");
-               GUIBitDisplay _MAP = new GUIBitDisplay(model, 1, "_MAP");
-               GUIBitDisplay _VECT = new GUIBitDisplay(model, 1, "_VECT");
-               GUIBitDisplay Y = new GUIBitDisplay(model, 12, "Y");
-
-               C.moveTo(35, -35);
-               D.moveTo(10, -20);
-               _RLD.moveTo(-30, -1.5);
-               _CC.moveTo(-30, 20);
-               _CCEN.moveTo(-30, 40);
-               I.moveTo(-30, 60);
-               CI.moveTo(75, 45);
-               _FULL.moveTo(80, 6.5);
-               _PL.moveTo(30, 85);
-               _MAP.moveTo(30, 105);
-               _VECT.moveTo(30, 125);
-               Y.moveTo(40, 65);
-               _OE.moveTo(60, 85);
-
-               new GUIWire(model, C.getOutputPin(), am2910.getPin("C"), new Point(60, -27.5));
-               new GUIWire(model, D.getOutputPin(), am2910.getPin("D"), new Point(36, -12.5));
-               new GUIWire(model, _RLD.getOutputPin(), am2910.getPin("_RLD"), new Point[0]);
-               new GUIWire(model, _CC.getOutputPin(), am2910.getPin("_CC"));
-               new GUIWire(model, _CCEN.getOutputPin(), am2910.getPin("_CCEN"));
-               new GUIWire(model, I.getOutputPin(), am2910.getPin("I"));
-               new GUIWire(model, CI.getOutputPin(), am2910.getPin("CI"), new Point(100, 52.5), new Point(100, 40));
-               new GUIWire(model, am2910.getPin("_FULL"), _FULL.getInputPin(), new Point[0]);
-               new GUIWire(model, am2910.getPin("_PL"), _PL.getInputPin(), new Point(13, 92.5));
-               new GUIWire(model, am2910.getPin("_MAP"), _MAP.getInputPin(), new Point(19, 112.5));
-               new GUIWire(model, am2910.getPin("_VECT"), _VECT.getInputPin(), new Point(25, 132.5));
-               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
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/FusionNotWorkingTest.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/FusionNotWorkingTest.java
deleted file mode 100644 (file)
index eb8165f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-package net.mograsim.logic.model.examples;
-
-import net.haspamelodica.swt.helper.gcs.GeneralGC;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.SimpleLogicUIStandalone;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-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 FusionNotWorkingTest
-{
-       public static void main(String[] args)
-       {
-               SimpleLogicUIStandalone.executeVisualisation(FusionNotWorkingTest::create);
-       }
-
-       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:FusionNotWorkingTest.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
-                       }
-               });
-       }
-}
\ No newline at end of file
index e5b24f1..6803a50 100644 (file)
@@ -9,10 +9,9 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 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.SimpleRectangularHardcodedGUIComponent;
-import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent.Usage;
 import net.mograsim.logic.model.model.wires.GUIWire;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 
 public class GUIComponentTestbench
@@ -27,24 +26,13 @@ public class GUIComponentTestbench
        {
                GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "file:components/am2904/GUIAm2904.json");
 
-               // guess which pins are outputs and which are inputs
-               // TODO this code exists four times... but it seems too "hacky" to put it in a helper class
                List<String> inputPinNames = new ArrayList<>();
                List<String> outputPinNames = new ArrayList<>();
-               if (comp instanceof SimpleRectangularHardcodedGUIComponent)
-               {
-                       SimpleRectangularHardcodedGUIComponent compCasted = (SimpleRectangularHardcodedGUIComponent) comp;
-                       for (Pin p : comp.getPins().values())
-                               if (compCasted.getPinUsage(p) == Usage.INPUT)
-                                       inputPinNames.add(p.name);
-                               else
-                                       outputPinNames.add(p.name);
-               } else
-                       for (Pin p : comp.getPins().values())
-                               if (p.getRelX() < comp.getWidth())
-                                       inputPinNames.add(p.name);
-                               else
-                                       outputPinNames.add(p.name);
+               for (Pin p : comp.getPins().values())
+                       if (p.usage == PinUsage.INPUT)
+                               inputPinNames.add(p.name);
+                       else
+                               outputPinNames.add(p.name);
 
                inputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY)));
                outputPinNames.sort(Comparator.comparing(comp::getPin, Comparator.comparing(Pin::getRelY)));
diff --git a/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java b/net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java
new file mode 100644 (file)
index 0000000..d5faf7e
--- /dev/null
@@ -0,0 +1,85 @@
+package net.mograsim.logic.model.examples;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Comparator;
+import java.util.Map.Entry;
+import java.util.Scanner;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.wires.GUIWire;
+import net.mograsim.logic.model.model.wires.MovablePin;
+import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
+import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
+
+public class ReserializeJSONsSettingUsages
+{
+       public static void main(String[] args) throws IOException
+       {
+               try (Scanner sysin = new Scanner(System.in))
+               {
+                       System.out.print("Directory to search for JSONs in / JSON file to reserialize >");
+                       Path root = Paths.get(sysin.nextLine());
+                       if (!Files.exists(root))
+                               throw new IllegalArgumentException("Path doesn't exist");
+                       if (Files.isRegularFile(root))
+                               reserializeJSON(root, sysin);
+                       else
+                       {
+                               System.out.print("Recursive? >");
+                               boolean recursive = Boolean.valueOf(sysin.nextLine());
+                               try (Stream<Path> jsons = recursive ? Files.walk(root) : Files.list(root))
+                               {
+                                       jsons.filter(Files::isRegularFile).filter(p -> p.getFileName().toString().endsWith(".json"))
+                                                       .forEach(j -> reserializeJSON(j, sysin));
+                               }
+                       }
+               }
+       }
+
+       public static void reserializeJSON(Path json, Scanner sysin)
+       {
+               try
+               {
+                       DeserializedSubmodelComponent comp = (DeserializedSubmodelComponent) IndirectGUIComponentCreator
+                                       .createComponent(new ViewModelModifiable(), "file:" + json.toString());
+                       System.out.println("Reserializing " + json);
+                       comp.getSupermodelPins().entrySet().stream().sorted(Comparator.comparing(Entry::getKey)).map(Entry::getValue).forEach(pin ->
+                       {
+                               System.out.print("  Usage for interface pin " + pin.name + " (empty: " + pin.usage + ") >");
+                               String usageStr = sysin.nextLine().toUpperCase();
+                               PinUsage usage = usageStr.equals("") ? pin.usage
+                                               : usageStr.equals("I") ? PinUsage.INPUT
+                                                               : usageStr.equals("O") ? PinUsage.OUTPUT
+                                                                               : usageStr.equals("T") ? PinUsage.TRISTATE : PinUsage.valueOf(usageStr);
+                               setInterfacePinUsage(comp, pin, usage);
+                       });
+                       SubmodelComponentSerializer.serialize(comp, json.toString());
+               }
+               catch (Exception e)
+               {
+                       System.err.println("An error occurred visiting " + json + ":");
+                       e.printStackTrace();
+               }
+       }
+
+       private static void setInterfacePinUsage(DeserializedSubmodelComponent comp, Pin interfacePin, PinUsage usage)
+       {
+               Set<GUIWire> wiresConnectedToPin = comp.submodel.getWiresByName().values().stream()
+                               .filter(w -> w.getPin1() == interfacePin || w.getPin2() == interfacePin).collect(Collectors.toSet());
+               wiresConnectedToPin.forEach(GUIWire::destroy);
+               comp.removeSubmodelInterface(interfacePin.name);
+               comp.addSubmodelInterface(
+                               new MovablePin(comp, interfacePin.name, interfacePin.logicWidth, usage, interfacePin.getRelX(), interfacePin.getRelY()));
+               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               wiresConnectedToPin.forEach(w -> new GUIWire(submodelModifiable, w.getPin1(), w.getPin2()));
+       }
+}
\ No newline at end of file
index b54713e..4a8e389 100644 (file)
@@ -17,6 +17,7 @@ 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.PinUsage;
 import net.mograsim.logic.model.model.wires.WireCrossPoint;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.logic.model.util.ModellingTool;
@@ -55,12 +56,10 @@ public class Am2901Testbench
                and.moveTo(135, -30);
                Pin last = and.getPin("Y");
 
-               // guess which pins are outputs and which are inputs
-               // TODO this code exists four times... but it seems too "hacky" to put it in a helper class
                List<String> inputPinNames = new ArrayList<>();
                List<String> outputPinNames = new ArrayList<>();
                for (Pin p : comp.getPins().values())
-                       if (p.getRelX() == 0)
+                       if (p.usage == PinUsage.INPUT)
                                inputPinNames.add(p.name);
                        else
                                outputPinNames.add(p.name);
diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java
new file mode 100644 (file)
index 0000000..a09de95
--- /dev/null
@@ -0,0 +1,58 @@
+package net.mograsim.logic.model.am2900.am2904;
+
+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
diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java
new file mode 100644 (file)
index 0000000..028de6e
--- /dev/null
@@ -0,0 +1,80 @@
+package net.mograsim.logic.model.am2900.am2910;
+
+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;
+import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch;
+import net.mograsim.logic.model.model.wires.GUIWire;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+
+public class Am2910Testbench
+{
+       public static void main(String[] args)
+       {
+               SimpleLogicUIStandalone.executeVisualisation(Am2910Testbench::create, Am2910Testbench::beforeRun);
+       }
+
+       @SuppressWarnings("unused") // for GUIWires being created
+       public static void create(ViewModelModifiable model)
+       {
+               GUIComponent am2910 = IndirectGUIComponentCreator.createComponent(model, "file:components/am2910/GUIAm2910.json", "Am2910");
+               GUIManualSwitch C = new GUIManualSwitch(model, 1, "C");
+               GUIManualSwitch D = new GUIManualSwitch(model, 12, "D");
+               GUIManualSwitch _RLD = new GUIManualSwitch(model, 1, "_RLD");
+               GUIManualSwitch _CC = new GUIManualSwitch(model, 1, "_CC");
+               GUIManualSwitch _CCEN = new GUIManualSwitch(model, 1, "_CCEN");
+               GUIManualSwitch I = new GUIManualSwitch(model, 4, "I");
+               GUIManualSwitch CI = new GUIManualSwitch(model, 1, "CI");
+               GUIManualSwitch _OE = new GUIManualSwitch(model, 1, "_OE");
+               GUIBitDisplay _FULL = new GUIBitDisplay(model, 1, "_FULL");
+               GUIBitDisplay _PL = new GUIBitDisplay(model, 1, "_PL");
+               GUIBitDisplay _MAP = new GUIBitDisplay(model, 1, "_MAP");
+               GUIBitDisplay _VECT = new GUIBitDisplay(model, 1, "_VECT");
+               GUIBitDisplay Y = new GUIBitDisplay(model, 12, "Y");
+
+               C.moveTo(35, -35);
+               D.moveTo(10, -20);
+               _RLD.moveTo(-30, -1.5);
+               _CC.moveTo(-30, 20);
+               _CCEN.moveTo(-30, 40);
+               I.moveTo(-30, 60);
+               CI.moveTo(75, 45);
+               _FULL.moveTo(80, 6.5);
+               _PL.moveTo(30, 85);
+               _MAP.moveTo(30, 105);
+               _VECT.moveTo(30, 125);
+               Y.moveTo(40, 65);
+               _OE.moveTo(60, 85);
+
+               new GUIWire(model, C.getOutputPin(), am2910.getPin("C"), new Point(60, -27.5));
+               new GUIWire(model, D.getOutputPin(), am2910.getPin("D"), new Point(36, -12.5));
+               new GUIWire(model, _RLD.getOutputPin(), am2910.getPin("_RLD"), new Point[0]);
+               new GUIWire(model, _CC.getOutputPin(), am2910.getPin("_CC"));
+               new GUIWire(model, _CCEN.getOutputPin(), am2910.getPin("_CCEN"));
+               new GUIWire(model, I.getOutputPin(), am2910.getPin("I"));
+               new GUIWire(model, CI.getOutputPin(), am2910.getPin("CI"), new Point(100, 52.5), new Point(100, 40));
+               new GUIWire(model, am2910.getPin("_FULL"), _FULL.getInputPin(), new Point[0]);
+               new GUIWire(model, am2910.getPin("_PL"), _PL.getInputPin(), new Point(13, 92.5));
+               new GUIWire(model, am2910.getPin("_MAP"), _MAP.getInputPin(), new Point(19, 112.5));
+               new GUIWire(model, am2910.getPin("_VECT"), _VECT.getInputPin(), new Point(25, 132.5));
+               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 6f679a9..89eab0a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Q",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_R",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,50 +35,63 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "_S",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 40.0,
-          "y": 12.5
+          "x": 10.0,
+          "y": 7.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 40.0,
+          "y": 12.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 64.0,
-          "y": 36.5
+          "x": 34.0,
+          "y": 16.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 16.5
+          "x": 64.0,
+          "y": 36.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "_q",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#0",
@@ -108,14 +123,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_S"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "_q",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
@@ -141,37 +156,29 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_S"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 65.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
-            "y": 42.5
-          },
-          {
-            "x": 5.0,
             "y": 22.5
           }
         ]
@@ -190,34 +197,31 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 65.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
+            "y": 42.5
+          },
+          {
+            "x": 5.0,
             "y": 22.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -244,5 +248,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef57797..5e343e0 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,26 +26,27 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 50.0,
+          "x": 20.0,
           "y": 15.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 20.0,
+          "x": 50.0,
           "y": 15.0
         },
         "params": 1
@@ -59,39 +61,40 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "A"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#1"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#1"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -100,13 +103,13 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 45.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
@@ -117,29 +120,29 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 45.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#5"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -149,5 +152,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 87b7394..c7ae05e 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,26 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,7 +71,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,39 +80,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 24.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 96.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUIand",
         "name": "GUIand#0",
@@ -116,18 +97,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 30.0,
-          "y": 57.5
+          "y": 32.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 30.0,
-          "y": 32.5
+          "y": 57.5
         }
       },
       {
@@ -137,31 +118,58 @@ mograsim version: 0.1.3
           "x": 30.0,
           "y": 82.5
         }
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 24.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIand#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
@@ -170,101 +178,89 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "GUIand#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
-        "path": []
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 22.5
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -284,53 +280,66 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#2",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -340,5 +349,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index bd61b9d..5f6d292 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,74 +5,83 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "B",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 75.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "C4",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 35.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "C4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +89,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,20 +116,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUIor_4",
-        "name": "GUIor_4#0",
-        "pos": {
-          "x": 35.0,
-          "y": 37.5
-        }
-      },
+    "components": [
       {
         "id": "GUIand41",
         "name": "GUIand41#0",
@@ -126,206 +130,272 @@ mograsim version: 0.1.3
           "x": 15.0,
           "y": 137.5
         }
+      },
+      {
+        "id": "GUIor_4",
+        "name": "GUIor_4#0",
+        "pos": {
+          "x": 35.0,
+          "y": 37.5
+        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 80.0,
-            "y": 52.5
+            "x": 10.0,
+            "y": 112.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 10.0,
+            "y": 142.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 75.0,
-            "y": 42.5
+            "x": 5.0,
+            "y": 137.5
           },
           {
-            "x": 75.0,
-            "y": 12.5
+            "x": 5.0,
+            "y": 152.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
-          "pinName": "Y4"
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIor_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 80.0,
-            "y": 72.5
+            "x": 65.0,
+            "y": 152.5
           },
           {
-            "x": 80.0,
-            "y": 87.5
+            "x": 65.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 125.0
+          },
+          {
+            "x": 25.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor_4#0",
+          "compName": "GUIand41#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIor_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#15",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 162.5
+          },
+          {
+            "x": 60.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 130.0
+          },
+          {
+            "x": 20.0,
+            "y": 102.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B1"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 70.0,
-            "y": 142.5
+            "x": 55.0,
+            "y": 172.5
           },
           {
-            "x": 70.0,
-            "y": 120.0
+            "x": 55.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 120.0
+            "x": 15.0,
+            "y": 135.0
           },
           {
-            "x": 30.0,
-            "y": 82.5
+            "x": 15.0,
+            "y": 112.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C4"
+          "compName": "GUIor_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 5.0,
-            "y": 87.5
+            "x": 75.0,
+            "y": 42.5
           },
           {
-            "x": 5.0,
-            "y": 72.5
+            "x": 75.0,
+            "y": 12.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C3"
+          "compName": "GUIor_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 52.5
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "GUIor_4#0",
-          "pinName": "A3"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C2"
+          "compName": "GUIor_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "A2"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 80.0,
+            "y": 72.5
           },
           {
-            "x": 5.0,
-            "y": 52.5
+            "x": 80.0,
+            "y": 87.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A3"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A2"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 137.5
+            "y": 187.5
           },
           {
             "x": 5.0,
-            "y": 152.5
+            "y": 172.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B"
         },
         "pin2": {
           "compName": "GUIand41#0",
-          "pinName": "A1"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 10.0,
-            "y": 112.5
+            "y": 212.5
           },
           {
             "x": 10.0,
-            "y": 142.5
+            "y": 182.5
           }
         ]
       },
@@ -352,146 +422,89 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "C2"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B2"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 65.0,
-            "y": 152.5
-          },
-          {
-            "x": 65.0,
-            "y": 125.0
-          },
-          {
-            "x": 25.0,
-            "y": 125.0
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 25.0,
-            "y": 92.5
+            "x": 5.0,
+            "y": 52.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B"
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "GUIor_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 212.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "C4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
+          "compName": "GUIor_4#0",
           "pinName": "A4"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 187.5
+            "y": 87.5
           },
           {
             "x": 5.0,
-            "y": 172.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "GUIor_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 172.5
-          },
-          {
-            "x": 55.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 135.0
-          },
-          {
-            "x": 15.0,
-            "y": 112.5
+            "y": 72.5
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUIor_4#0",
-          "pinName": "B3"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 162.5
+            "x": 70.0,
+            "y": 142.5
           },
           {
-            "x": 60.0,
-            "y": 130.0
+            "x": 70.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 130.0
+            "x": 30.0,
+            "y": 120.0
           },
           {
-            "x": 20.0,
-            "y": 102.5
+            "x": 30.0,
+            "y": 82.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -501,5 +514,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3523e99..7e28bfd 100644 (file)
@@ -1,31 +1,33 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y00",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "Y11",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "Y10",
-      "logicWidth": 1
+      "name": "Y00",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,43 +35,46 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y01",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y10",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "Y11",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 27.5
+          "y": 2.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 10.0,
-          "y": 2.5
+          "y": 27.5
         },
         "params": 1
       },
@@ -83,18 +88,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIand",
-        "name": "GUIand#2",
+        "name": "GUIand#1",
         "pos": {
           "x": 40.0,
-          "y": 52.5
+          "y": 27.5
         }
       },
       {
         "id": "GUIand",
-        "name": "GUIand#1",
+        "name": "GUIand#2",
         "pos": {
           "x": 40.0,
-          "y": 27.5
+          "y": 52.5
         }
       },
       {
@@ -105,6 +110,15 @@ mograsim version: 0.1.3
           "y": 77.5
         }
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 6.5,
+          "y": 11.5
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -116,10 +130,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 36.5,
+          "y": 61.5
         },
         "params": 1
       },
@@ -134,10 +148,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 36.5,
-          "y": 61.5
+          "x": 4.0,
+          "y": 41.5
         },
         "params": 1
       },
@@ -152,10 +166,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 31.5,
+          "y": 11.5
         },
         "params": 1
       },
@@ -167,32 +181,71 @@ mograsim version: 0.1.3
           "y": 36.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 31.5,
-          "y": 11.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
         "pin2": {
-          "compName": "GUIand#1",
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 37.5,
-            "y": 32.5
+            "x": 32.5,
+            "y": 7.5
           }
         ]
       },
@@ -215,18 +268,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#2",
+          "compName": "GUIand#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 32.5,
-            "y": 57.5
+            "x": 37.5,
+            "y": 32.5
           }
         ]
       },
@@ -249,18 +302,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#3",
+          "compName": "GUIand#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 37.5,
-            "y": 82.5
+            "x": 32.5,
+            "y": 57.5
           }
         ]
       },
@@ -278,106 +331,98 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIand#3",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 32.5,
-            "y": 92.5
+            "x": 37.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#19",
         "path": [
-          {
-            "x": 5.0,
-            "y": 67.5
-          },
           {
             "x": 32.5,
-            "y": 67.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 7.5,
-            "y": 62.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y00"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#20"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIand#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y01"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#21"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIand#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y10"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#22"
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUIand#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y11"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#23"
       },
       {
         "pin1": {
@@ -385,144 +430,105 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y01"
-        },
-        "name": "unnamedWire#21"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y00"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20"
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 32.5
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 32.5,
-            "y": 7.5
+            "x": 7.5,
+            "y": 62.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#3",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y11"
-        },
-        "name": "unnamedWire#23"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 5.0,
+            "y": 67.5
+          },
+          {
+            "x": 32.5,
+            "y": 67.5
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#11",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y10"
-        },
-        "name": "unnamedWire#22"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -532,5 +538,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 66af673..30c17e6 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 120.0,
+          "y": 60.0
+        },
+        "params": 1
+      },
       {
         "id": "GUI_rsLatch",
         "name": "GUI_rsLatch#0",
@@ -47,6 +59,14 @@ mograsim version: 0.1.3
           "y": 10.0
         }
       },
+      {
+        "id": "GUI_rsLatch",
+        "name": "GUI_rsLatch#1",
+        "pos": {
+          "x": 120.0,
+          "y": 30.0
+        }
+      },
       {
         "id": "GUInand3",
         "name": "GUInand3#0",
@@ -56,22 +76,14 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 120.0,
-          "y": 60.0
+          "x": 9.0,
+          "y": 24.0
         },
         "params": 1
       },
-      {
-        "id": "GUI_rsLatch",
-        "name": "GUI_rsLatch#1",
-        "pos": {
-          "x": 120.0,
-          "y": 30.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -83,10 +95,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 9.0,
-          "y": 24.0
+          "x": 99.0,
+          "y": 34.0
         },
         "params": 1
       },
@@ -98,153 +110,123 @@ mograsim version: 0.1.3
           "y": 44.0
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 99.0,
-          "y": 34.0
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#13"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#1",
-          "pinName": "_S"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "A"
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 35.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 100.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUInand3#0",
-          "pinName": "C"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#13"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#1",
+          "pinName": "_Q"
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "pinName": "_Q"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUInand3#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 15.0
+            "x": 10.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -274,63 +256,85 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#5",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUInand3#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 100.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUInand3#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 30.0,
+            "y": 35.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUI_rsLatch#1",
-          "pinName": "_R"
+          "pinName": "_S"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -353,5 +357,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d03fafe..a717818 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,20 +122,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -123,10 +147,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
@@ -141,10 +165,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -157,6 +181,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -165,44 +198,95 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 175.0
+          },
+          {
+            "x": 5.0,
+            "y": 135.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 225.0
+          },
+          {
+            "x": 10.0,
+            "y": 145.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +302,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +326,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +357,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +383,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +407,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +440,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 200.0
-          },
-          {
-            "x": 45.0,
-            "y": 200.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +486,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 200.0
+          },
+          {
+            "x": 45.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +534,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +573,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,95 +609,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 10.0,
-            "y": 225.0
-          },
-          {
-            "x": 10.0,
-            "y": 145.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 175.0
-          },
-          {
-            "x": 5.0,
-            "y": 135.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -712,5 +722,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3108cc5..c34cb35 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,87 +5,113 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "_WE",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 15.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "_WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 55.0,
+          "y": 70.0
+        }
+      },
+      {
+        "id": "GUIdff",
+        "name": "GUIdff#0",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUIdff",
         "name": "GUIdff#1",
@@ -97,20 +122,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdff",
-        "name": "GUIdff#0",
+        "name": "GUIdff#2",
         "pos": {
           "x": 115.0,
-          "y": 20.0
+          "y": 120.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIdff",
+        "name": "GUIdff#3",
         "pos": {
-          "x": 104.0,
-          "y": 74.0
-        },
-        "params": 1
+          "x": 115.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -123,10 +147,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 169.0,
-          "y": 24.0
+          "x": 104.0,
+          "y": 74.0
         },
         "params": 1
       },
@@ -141,10 +165,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 159.0,
-          "y": 124.0
+          "x": 169.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -157,6 +181,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
+        "pos": {
+          "x": 159.0,
+          "y": 124.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -165,44 +198,104 @@ mograsim version: 0.1.3
           "y": 174.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 55.0,
-          "y": 70.0
-        }
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#3",
-        "pos": {
-          "x": 115.0,
-          "y": 170.0
-        }
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIdff#0",
+          "pinName": "D"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 100.0,
+            "y": 75.0
+          },
+          {
+            "x": 100.0,
+            "y": 35.0
+          }
+        ]
       },
       {
-        "id": "GUIdff",
-        "name": "GUIdff#2",
-        "pos": {
-          "x": 115.0,
-          "y": 120.0
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "D1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 85.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "pinName": "D3"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 225.0
+          },
+          {
+            "x": 20.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -218,14 +311,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
@@ -242,14 +335,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIdff#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdff#1",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -273,6 +366,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUIdff#2",
+          "pinName": "Q"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -287,14 +392,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "Q"
+          "compName": "GUIdff#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -311,24 +416,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff#3",
-          "pinName": "D"
+          "pinName": "Q"
         },
-        "name": "unnamedWire#23",
-        "path": [
-          {
-            "x": 95.0,
-            "y": 105.0
-          },
-          {
-            "x": 95.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
@@ -353,26 +449,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "GUIdff#3",
+          "pinName": "D"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 165.0,
-            "y": 210.0
-          },
-          {
-            "x": 45.0,
-            "y": 210.0
+            "x": 95.0,
+            "y": 105.0
           },
           {
-            "x": 45.0,
-            "y": 135.0
+            "x": 95.0,
+            "y": 185.0
           }
         ]
       },
@@ -403,15 +495,28 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 165.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 210.0
+          },
+          {
+            "x": 45.0,
+            "y": 135.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -438,6 +543,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -465,88 +582,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_WE"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff#3",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#2",
+          "compName": "GUIdff#0",
           "pinName": "C"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
         "pin2": {
-          "compName": "GUIdff#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 100.0,
-            "y": 75.0
-          },
-          {
-            "x": 100.0,
-            "y": 35.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -563,104 +618,59 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 85.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff#0",
+          "compName": "GUIdff#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff#3",
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 20.0,
-            "y": 225.0
-          },
-          {
-            "x": 20.0,
-            "y": 105.0
+            "x": 105.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "_WE"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 175.0
-          },
-          {
-            "x": 15.0,
-            "y": 95.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIdff#1",
-          "pinName": "D"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -721,5 +731,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 034ab79..b09c439 100644 (file)
@@ -1,44 +1,56 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "_Q",
-      "logicWidth": 1
+      "name": "E",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "D",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 15.0
       },
-      "name": "E",
-      "logicWidth": 1
+      "name": "_Q",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -57,11 +69,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 2.5
+          "x": 4.0,
+          "y": 36.5
         },
         "params": 1
       },
@@ -73,97 +85,78 @@ mograsim version: 0.1.3
           "y": 11.5
         },
         "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_Q"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Q"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "E"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_R"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 40.0,
-            "y": 37.5
-          },
-          {
-            "x": 40.0,
-            "y": 22.5
+            "x": 5.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUI_rsLatch#0",
-          "pinName": "_S"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 42.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "E"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0"
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -191,51 +184,62 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "pin2": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_S"
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_R"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 5.0,
-            "y": 42.5
+            "x": 40.0,
+            "y": 37.5
+          },
+          {
+            "x": 40.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUI_rsLatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUI_rsLatch#0",
+          "pinName": "_Q"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_Q"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -258,5 +262,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d798d7f..3bc4df7 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
@@ -6,105 +5,95 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 15.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 25.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 14.0,
-          "y": 71.5
-        },
-        "params": 1
-      },
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 14.0,
-          "y": 46.5
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUIdlatch",
+        "name": "GUIdlatch#0",
         "pos": {
-          "x": 14.0,
-          "y": 96.5
-        },
-        "params": 1
+          "x": 30.0,
+          "y": 7.5
+        }
       },
       {
         "id": "GUIdlatch",
@@ -116,10 +105,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUIdlatch",
-        "name": "GUIdlatch#0",
+        "name": "GUIdlatch#2",
         "pos": {
           "x": 30.0,
-          "y": 7.5
+          "y": 57.5
         }
       },
       {
@@ -131,206 +120,226 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIdlatch",
-        "name": "GUIdlatch#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 30.0,
-          "y": 57.5
-        }
+          "x": 14.0,
+          "y": 46.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 14.0,
+          "y": 71.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
+        "pos": {
+          "x": 14.0,
+          "y": 96.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIdlatch#3",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 112.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#2",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIdlatch#3",
+          "pinName": "E"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#3",
           "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIdlatch#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "GUIdlatch#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "D"
+          "compName": "_submodelinterface",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#2",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#0",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 22.5
-          }
-        ]
+        "name": "unnamedWire#13",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdlatch#3",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "E"
+          "compName": "_submodelinterface",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 112.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#1",
+          "compName": "GUIdlatch#2",
           "pinName": "E"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#3",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "E"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch#2",
+          "compName": "GUIdlatch#0",
           "pinName": "E"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 22.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#1",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIdlatch#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch#1",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch#0",
-          "pinName": "Q"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q1"
+          "compName": "GUIdlatch#2",
+          "pinName": "D"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -391,5 +400,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index d464701..8b41bd3 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -41,12 +44,13 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -73,46 +77,18 @@ mograsim version: 0.1.3
         }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Z"
-        },
-        "name": "unnamedWire#7"
-      },
-      {
-        "pin1": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "_Z"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 22.5
-          },
-          {
-            "x": 82.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 35.0
-          },
-          {
-            "x": 52.5,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
@@ -128,26 +104,24 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIhalfadder#1",
-          "pinName": "A"
+          "compName": "GUIhalfadder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#2"
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#1",
+          "compName": "GUIhalfadder#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUIhalfadder#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
@@ -163,27 +137,58 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUIhalfadder#0",
+          "compName": "GUIhalfadder#1",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIhalfadder#1",
-          "pinName": "B"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#3"
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 82.5,
+            "y": 22.5
+          },
+          {
+            "x": 82.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 35.0
+          },
+          {
+            "x": 52.5,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIhalfadder#0",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Z"
         },
-        "name": "unnamedWire#2"
+        "name": "unnamedWire#7"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -193,5 +198,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index d0a0fa2..92720a8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -33,12 +35,22 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "_Z",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -50,10 +62,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 15.0
+          "x": 40.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -68,28 +80,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 40.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -103,72 +106,88 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "_submodelinterface",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 35.0,
-            "y": 17.5
+            "x": 62.5,
+            "y": 12.5
+          },
+          {
+            "x": 62.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_Z"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 80.0,
-            "y": 25.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 80.0,
-            "y": 37.5
+            "x": 62.5,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -177,27 +196,27 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -206,35 +225,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 62.5,
-            "y": 12.5
-          },
-          {
-            "x": 62.5,
-            "y": 7.5
+            "y": 42.5
           }
         ]
       },
@@ -244,80 +242,86 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 5.0,
-            "y": 42.5
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
+          "pinName": "_Z"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 80.0,
+            "y": 25.0
+          },
+          {
+            "x": 80.0,
+            "y": 37.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 35.0,
+            "y": 17.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 17.5
+            "x": 35.0,
+            "y": 32.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -327,5 +331,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c0d53e5..279f905 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,28 +17,40 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "S0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "S0",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 10.0,
+          "y": 7.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -50,10 +62,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 10.0,
-          "y": 7.5
+          "x": 35.0,
+          "y": 47.5
         },
         "params": 1
       },
@@ -68,107 +80,93 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 21.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 47.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 21.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#10"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 52.5
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -184,51 +182,57 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 52.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
-        "path": []
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -238,5 +242,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index c90cd3e..1caab2c 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I0_1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y1",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "Y2",
-      "logicWidth": 1
+      "name": "I0_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,47 +26,44 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I0_3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
-      },
-      "name": "I1_2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "Y3",
-      "logicWidth": 1
+      "name": "I0_4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "I0_2",
-      "logicWidth": 1
+      "name": "I1_1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 65.0
       },
-      "name": "I1_1",
-      "logicWidth": 1
+      "name": "I1_2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "Y4",
-      "logicWidth": 1
+      "name": "I1_3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +71,8 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "I1_4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,28 +80,73 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "I0_4",
-      "logicWidth": 1
+      "name": "Y1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "I1_3",
-      "logicWidth": 1
+      "name": "Y2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "Y3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 35.0
+      },
+      "name": "Y4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#0",
+        "pos": {
+          "x": 30.0,
+          "y": 7.5
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#1",
+        "pos": {
+          "x": 30.0,
+          "y": 42.5
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "GUImux1#2",
+        "pos": {
+          "x": 30.0,
+          "y": 77.5
+        }
+      },
       {
         "id": "GUImux1",
         "name": "GUImux1#3",
@@ -121,30 +157,22 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 24.0,
-          "y": 46.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 24.0,
-          "y": 11.5
+          "y": 46.5
         },
         "params": 1
       },
-      {
-        "id": "GUImux1",
-        "name": "GUImux1#0",
-        "pos": {
-          "x": 30.0,
-          "y": 7.5
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#2",
@@ -153,35 +181,77 @@ mograsim version: 0.1.3
           "y": 81.5
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#2",
-        "pos": {
-          "x": 30.0,
-          "y": 77.5
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUImux1#0",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUImux1",
-        "name": "GUImux1#1",
-        "pos": {
-          "x": 30.0,
-          "y": 42.5
-        }
-      }
-    ],
-    "innerWires": [
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "GUImux1#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#14"
+        "pin2": {
+          "compName": "GUImux1#2",
+          "pinName": "I0"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 87.5
+          },
+          {
+            "x": 5.0,
+            "y": 92.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -206,24 +276,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_4"
+          "compName": "GUImux1#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#3",
-          "pinName": "I0"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 112.5
-          },
-          {
-            "x": 5.0,
-            "y": 127.5
-          }
-        ]
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -244,14 +304,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUImux1#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 112.5
+          },
+          {
+            "x": 5.0,
+            "y": 127.5
+          }
+        ]
       },
       {
         "pin1": {
@@ -276,91 +346,67 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUImux1#1",
+          "compName": "GUImux1#3",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_2"
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I1"
+          "compName": "GUImux1#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 15.0,
-            "y": 162.5
+            "x": 5.0,
+            "y": 37.5
           },
           {
-            "x": 15.0,
-            "y": 67.5
+            "x": 5.0,
+            "y": 22.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_2"
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "I0"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 5.0,
-            "y": 62.5
+            "x": 10.0,
+            "y": 137.5
           },
           {
-            "x": 5.0,
-            "y": 57.5
+            "x": 10.0,
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUImux1#1",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S0"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -381,100 +427,67 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 137.5
-          },
-          {
-            "x": 10.0,
-            "y": 32.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0_3"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUImux1#2",
+          "compName": "GUImux1#1",
           "pinName": "I0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 87.5
+            "y": 62.5
           },
           {
             "x": 5.0,
-            "y": 92.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0_1"
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUImux1#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 5.0,
-            "y": 37.5
+            "x": 15.0,
+            "y": 162.5
           },
           {
-            "x": 5.0,
-            "y": 22.5
+            "x": 15.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUImux1#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#2",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -484,5 +497,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 2542ce0..b1cf3a6 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 70.0,
   "height": 70.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 1
+      "name": "I01",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 70.0,
-        "y": 10.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 1
+      "name": "I11",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,12 +53,46 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 70.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 60.0,
+          "y": 35.0
+        }
+      },
+      {
+        "id": "GUIsel1",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 60.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 115.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -72,6 +102,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 24.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#1",
@@ -83,10 +122,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 24.0
+          "y": 49.0
         },
         "params": 1
       },
@@ -98,52 +137,72 @@ mograsim version: 0.1.3
           "y": 39.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 24.0,
-          "y": 49.0
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 20.0
+          }
+        ]
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 60.0,
-          "y": 100.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIsel1",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 60.0,
-          "y": 35.0
-        }
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": []
       },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 115.0,
-          "y": 20.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S1"
+          "pinName": "S2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -160,20 +219,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 115.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -194,133 +248,92 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S1"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 55.0,
-            "y": 105.0
+            "x": 25.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 10.0
-          },
-          {
-            "x": 85.0,
-            "y": 25.0
+            "x": 55.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I00"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 105.0,
-            "y": 105.0
+            "x": 35.0,
+            "y": 75.0
           },
           {
-            "x": 105.0,
-            "y": 45.0
+            "x": 35.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 105.0,
-            "y": 40.0
+            "x": 40.0,
+            "y": 100.0
           },
           {
-            "x": 105.0,
-            "y": 35.0
+            "x": 40.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#4",
         "path": []
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 20.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
@@ -344,95 +357,89 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I10"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 105.0,
+            "y": 40.0
           },
           {
-            "x": 40.0,
-            "y": 70.0
+            "x": 105.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 35.0,
-            "y": 75.0
+            "x": 105.0,
+            "y": 105.0
           },
           {
-            "x": 35.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 10.0
+          },
+          {
+            "x": 85.0,
+            "y": 25.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -443,5 +450,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 042d9e1..7d1342a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 62.0,
   "height": 90.0,
@@ -9,15 +8,17 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "I00",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 60.0
+        "y": 40.0
       },
-      "name": "I11",
-      "logicWidth": 4
+      "name": "I01",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,23 +26,17 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I10",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 62.0,
-        "y": 16.0
-      },
-      "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 60.0
       },
-      "name": "I01",
-      "logicWidth": 4
+      "name": "I11",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,29 +53,45 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 62.0,
+        "y": 16.0
+      },
+      "name": "Y",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 19.0,
-          "y": 34.0
-        },
-        "params": 1
+          "x": 40.0,
+          "y": 30.0
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 25.0,
-          "y": 45.0
-        },
-        "params": 4
+          "x": 40.0,
+          "y": 125.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 100.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUIMerger",
@@ -92,97 +104,110 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "name": "GUISplitter#0",
         "pos": {
           "x": 25.0,
-          "y": 180.0
+          "y": 45.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#1",
         "pos": {
           "x": 25.0,
-          "y": 140.0
+          "y": 85.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "name": "GUISplitter#2",
         "pos": {
           "x": 25.0,
-          "y": 85.0
+          "y": 140.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 40.0,
-          "y": 125.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 40.0,
-          "y": 30.0
-        }
+          "x": 25.0,
+          "y": 180.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 100.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 34.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O1"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 50.0
-          },
-          {
-            "x": 15.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 20.0
-          },
-          {
-            "x": 60.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
@@ -198,14 +223,26 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
       {
@@ -227,14 +264,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
@@ -254,18 +291,6 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUISplitter#0",
@@ -290,23 +315,14 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUISplitter#2",
-          "pinName": "I"
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 155.0
-          },
-          {
-            "x": 15.0,
-            "y": 125.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
@@ -322,15 +338,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 155.0
+          },
+          {
+            "x": 15.0,
+            "y": 125.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -356,13 +381,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_3"
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -379,24 +404,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 75.0
-          },
-          {
-            "x": 80.0,
-            "y": 130.0
-          }
-        ]
+        "name": "unnamedWire#25",
+        "path": []
       },
       {
         "pin1": {
@@ -413,21 +429,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "pinName": "I1_1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 90.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 75.0
           },
           {
-            "x": 90.0,
-            "y": 150.0
+            "x": 80.0,
+            "y": 130.0
           }
         ]
       },
@@ -454,74 +470,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
-        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#29",
+        "path": [
+          {
+            "x": 90.0,
+            "y": 95.0
+          },
+          {
+            "x": 90.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
           "compName": "GUISplitter#3",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#2",
           "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -547,26 +524,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
@@ -583,101 +548,143 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "O3"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIMerger#0",
-          "pinName": "O"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 50.0
+          },
+          {
+            "x": 15.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 20.0
+          },
+          {
+            "x": 60.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
           "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
+          "compName": "GUISplitter#2",
           "pinName": "O3"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "GUISplitter#3",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#3",
           "pinName": "O2"
         },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
+        },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "pinName": "O2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -688,5 +695,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 3f6a8bc..a27f5ca 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 80.0,
   "height": 120.0,
@@ -9,23 +8,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "I000",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 70.0
-      },
-      "name": "I011",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 100.0
+        "y": 50.0
       },
-      "name": "I110",
-      "logicWidth": 1
+      "name": "I001",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +26,17 @@ mograsim version: 0.1.3
         "y": 60.0
       },
       "name": "I010",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 90.0
+        "y": 70.0
       },
-      "name": "I101",
-      "logicWidth": 1
+      "name": "I011",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,31 +44,35 @@ mograsim version: 0.1.3
         "y": 80.0
       },
       "name": "I100",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 90.0
       },
-      "name": "I111",
-      "logicWidth": 1
+      "name": "I101",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 80.0,
-        "y": 10.0
+        "x": 0.0,
+        "y": 100.0
       },
-      "name": "Y",
-      "logicWidth": 1
+      "name": "I110",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 50.0
+        "y": 110.0
       },
-      "name": "I001",
-      "logicWidth": 1
+      "name": "I111",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -81,7 +80,8 @@ mograsim version: 0.1.3
         "y": 10.0
       },
       "name": "S0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +89,8 @@ mograsim version: 0.1.3
         "y": 20.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,30 +98,22 @@ mograsim version: 0.1.3
         "y": 30.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 80.0,
+        "y": 10.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 24.0,
-          "y": 94.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 19.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#0",
@@ -129,6 +122,14 @@ mograsim version: 0.1.3
           "y": 185.0
         }
       },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 125.0,
+          "y": 20.0
+        }
+      },
       {
         "id": "GUImux2",
         "name": "DeserializedSubmodelComponent#3",
@@ -138,36 +139,113 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 125.0,
-          "y": 20.0
-        }
+          "x": 19.0,
+          "y": 104.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I111"
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 25.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 50.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "I11"
         },
-        "name": "unnamedWire#14",
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I011"
+        },
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 145.0
           },
           {
             "x": 15.0,
-            "y": 245.0
+            "y": 175.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I00"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "I100"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 215.0
+          },
+          {
+            "x": 10.0,
+            "y": 200.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I101"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I01"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
@@ -191,22 +269,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 110.0,
-            "y": 95.0
+            "x": 15.0,
+            "y": 275.0
           },
           {
-            "x": 110.0,
-            "y": 35.0
+            "x": 15.0,
+            "y": 245.0
           }
         ]
       },
@@ -233,89 +311,56 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 25.0
-          },
-          {
-            "x": 70.0,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
+            "x": 110.0,
+            "y": 95.0
           },
           {
-            "x": 10.0,
-            "y": 135.0
+            "x": 110.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I01"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I001"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I000"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I00"
+          "pinName": "S2"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 10.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 25.0
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 70.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -324,31 +369,26 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "S1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "S0"
         },
         "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 25.0,
-            "y": 25.0
+            "y": 195.0
           }
         ]
       },
@@ -371,100 +411,72 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "I011"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 145.0
-          },
-          {
-            "x": 15.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I000"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 195.0
+            "x": 10.0,
+            "y": 100.0
+          },
+          {
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S1"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I101"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I01"
         },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "I001"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I00"
+          "compName": "_submodelinterface",
+          "pinName": "I010"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 10.0,
-            "y": 215.0
+            "y": 150.0
           },
           {
             "x": 10.0,
-            "y": 200.0
+            "y": 135.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -475,5 +487,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index e57eefe..28b9a60 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 30.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "C",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,26 +35,27 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 35.0,
+          "x": 10.0,
           "y": 15.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 10.0,
+          "x": 35.0,
           "y": 15.0
         },
         "params": 1
@@ -76,39 +79,17 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 62.5
-          },
-          {
-            "x": 60.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#0"
       },
       {
         "pin1": {
@@ -123,33 +104,30 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#0"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 57.5,
-            "y": 25.0
-          },
-          {
-            "x": 57.5,
-            "y": 7.5
+            "x": 32.5,
+            "y": 20.0
           }
         ]
       },
@@ -172,34 +150,60 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 57.5,
+            "y": 25.0
+          },
+          {
+            "x": 57.5,
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "_submodelinterface",
+          "pinName": "C"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 62.5
+          },
+          {
+            "x": 60.0,
+            "y": 17.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -209,5 +213,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index a7e95a3..b80166a 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -49,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,7 +62,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,21 +71,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 30.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -91,28 +89,28 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 30.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 14.0,
-          "y": 36.5
+          "x": 30.0,
+          "y": 52.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 30.0,
-          "y": 52.5
+          "y": 77.5
         },
         "params": 1
       },
@@ -127,10 +125,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 86.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -142,242 +140,252 @@ mograsim version: 0.1.3
           "y": 61.5
         },
         "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
+        "pos": {
+          "x": 14.0,
+          "y": 86.5
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 15.0,
-            "y": 42.5
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#11",
         "path": [
           {
             "x": 15.0,
-            "y": 17.5
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#12",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
-          "pinName": "A"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 57.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#15",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 32.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 67.5
+            "y": 32.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 15.0,
-            "y": 7.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#7",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 82.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 17.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 92.5
+            "y": 42.5
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -387,5 +395,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b09418..9b6e1bf 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "A2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "A3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +35,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "A4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,12 +44,22 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -58,10 +71,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 15.0
+          "y": 115.0
         },
         "params": 1
       },
@@ -76,19 +89,46 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 20.0,
-          "y": 115.0
+          "x": 50.0,
+          "y": 40.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 14.0,
-          "y": 74.0
+          "x": 50.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 110.0,
+          "y": 40.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 110.0,
+          "y": 140.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
+        "pos": {
+          "x": 140.0,
+          "y": 90.0
         },
         "params": 1
       },
@@ -103,10 +143,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 14.0,
-          "y": 174.0
+          "y": 74.0
         },
         "params": 1
       },
@@ -121,10 +161,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 104.0,
-          "y": 149.0
+          "x": 14.0,
+          "y": 174.0
         },
         "params": 1
       },
@@ -138,62 +178,84 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 140.0,
-          "y": 90.0
+          "x": 104.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 50.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 50.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 110.0,
-          "y": 140.0
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 130.0
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 110.0,
-          "y": 40.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 180.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -208,15 +270,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -231,20 +292,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -265,33 +321,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 105.0,
-            "y": 55.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 105.0,
-            "y": 155.0
+            "y": 55.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#5",
@@ -311,14 +379,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23"
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -331,6 +405,17 @@ mograsim version: 0.1.3
         },
         "name": "unnamedWire#22"
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#23"
+      },
       {
         "pin1": {
           "compName": "GUINandGate#8",
@@ -344,20 +429,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#3",
+        "path": []
       },
       {
         "pin1": {
@@ -366,30 +446,30 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
             "x": 15.0,
-            "y": 30.0
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 15.0,
-            "y": 170.0
+            "y": 70.0
           }
         ]
       },
@@ -412,59 +492,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 130.0
+            "y": 170.0
           }
         ]
       },
@@ -475,69 +514,35 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 15.0,
-            "y": 20.0
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#12"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#9",
         "path": [
           {
             "x": 15.0,
-            "y": 180.0
+            "y": 80.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -547,5 +552,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ed484c9..232a77f 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 80.0,
@@ -9,55 +8,71 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 25.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 35.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 45.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 55.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 65.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 0.0,
+        "y": 75.0
+      },
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,7 +80,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,7 +89,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -81,7 +98,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -89,29 +107,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 45.0
-      },
-      "name": "B1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 15.0,
-          "y": 27.5
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -123,18 +125,18 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 15.0,
-          "y": 77.5
+          "y": 27.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
+          "x": 65.0,
           "y": 52.5
         },
         "params": 1
@@ -150,64 +152,64 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 65.0,
+          "x": 15.0,
           "y": 52.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 6.5,
-          "y": 36.5
+          "x": 15.0,
+          "y": 77.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 11.5
+          "x": 15.0,
+          "y": 102.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 6.5,
-          "y": 86.5
+          "x": 15.0,
+          "y": 127.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 61.5
+          "x": 15.0,
+          "y": 152.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 136.5
+          "x": 15.0,
+          "y": 177.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 6.5,
-          "y": 111.5
+          "x": 65.0,
+          "y": 2.5
         },
         "params": 1
       },
@@ -222,83 +224,133 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 6.5,
-          "y": 186.5
+          "y": 11.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 65.0,
-          "y": 2.5
+          "x": 6.5,
+          "y": 36.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 6.5,
-          "y": 161.5
+          "y": 61.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 127.5
+          "x": 6.5,
+          "y": 86.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 15.0,
-          "y": 102.5
+          "x": 6.5,
+          "y": 111.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 15.0,
-          "y": 177.5
+          "x": 6.5,
+          "y": 136.5
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 15.0,
-          "y": 152.5
+          "x": 6.5,
+          "y": 161.5
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
+        "pos": {
+          "x": 6.5,
+          "y": 186.5
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "_submodelinterface",
+          "pinName": "A1"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#10",
         "path": [
           {
             "x": 7.5,
-            "y": 82.5
+            "y": 32.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 42.5
           }
         ]
       },
@@ -309,42 +361,47 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#2",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#12",
         "path": [
           {
             "x": 7.5,
-            "y": 67.5
+            "y": 57.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 67.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 7.5,
-            "y": 107.5
+            "y": 82.5
           }
         ]
       },
@@ -367,18 +424,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 7.5,
-            "y": 132.5
+            "y": 107.5
           }
         ]
       },
@@ -406,33 +463,45 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#5",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 7.5,
-            "y": 142.5
+            "y": 132.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 7.5,
-            "y": 167.5
+            "y": 142.5
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#2",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#6",
@@ -452,18 +521,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
             "x": 7.5,
-            "y": 192.5
+            "y": 167.5
           }
         ]
       },
@@ -486,22 +555,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 45.0,
-            "y": 112.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 7.5,
+            "y": 192.5
           }
         ]
       },
@@ -528,22 +593,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 50.0,
-            "y": 137.5
+            "x": 45.0,
+            "y": 112.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -570,22 +635,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 55.0,
-            "y": 162.5
+            "x": 50.0,
+            "y": 137.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -612,84 +677,35 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 7.5,
-            "y": 17.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#8",
-        "path": [
+            "x": 55.0,
+            "y": 162.5
+          },
           {
-            "x": 7.5,
-            "y": 7.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
@@ -715,30 +731,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 32.5
+            "x": 60.0,
+            "y": 187.5
+          },
+          {
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
@@ -756,120 +764,124 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#11",
-          "pinName": "B"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 187.5
-          },
-          {
-            "x": 60.0,
-            "y": 92.5
-          }
-        ]
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 57.5
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 7.5,
-            "y": 42.5
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 17.5
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -879,5 +891,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ea3eff9..6322110 100644 (file)
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 45.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 35.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 44.0,
-          "y": 649.0
-        },
-        "params": 1
+          "x": 130.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 39.0,
-          "y": 639.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 129.0,
-          "y": 329.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 49.0,
-          "y": 659.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 119.0,
-          "y": 349.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 124.0,
-          "y": 339.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 114.0,
-          "y": 359.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
-          "x": 104.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 585.0
+        }
+      },
+      {
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
+        "pos": {
+          "x": 135.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
+        "pos": {
+          "x": 55.0,
+          "y": 325.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
+        "pos": {
+          "x": 55.0,
+          "y": 475.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#2",
+        "pos": {
+          "x": 55.0,
+          "y": 625.0
+        }
+      },
+      {
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#3",
+        "pos": {
+          "x": 55.0,
+          "y": 775.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -226,224 +290,156 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 94.0,
-          "y": 184.0
+          "x": 104.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 99.0,
-          "y": 174.0
+          "x": 44.0,
+          "y": 499.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 39.0,
-          "y": 649.0
+          "x": 49.0,
+          "y": 509.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 549.0
+          "y": 629.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 49.0,
-          "y": 809.0
+          "x": 39.0,
+          "y": 639.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 44.0,
-          "y": 749.0
+          "y": 649.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 39.0,
-          "y": 489.0
+          "x": 49.0,
+          "y": 659.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 34.0,
-          "y": 479.0
+          "x": 129.0,
+          "y": 329.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 44.0,
-          "y": 499.0
+          "x": 124.0,
+          "y": 339.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 34.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 349.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 49.0,
-          "y": 509.0
+          "x": 114.0,
+          "y": 359.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
-        "pos": {
-          "x": 135.0,
-          "y": 735.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
-        "pos": {
-          "x": 135.0,
-          "y": 435.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
-        "pos": {
-          "x": 135.0,
-          "y": 585.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
-        "pos": {
-          "x": 235.0,
-          "y": 635.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
-        "pos": {
-          "x": 235.0,
-          "y": 785.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
-        "pos": {
-          "x": 235.0,
-          "y": 485.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 55.0,
-          "y": 475.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
-        "pos": {
-          "x": 55.0,
-          "y": 325.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 55.0,
-          "y": 775.0
-        }
+          "x": 99.0,
+          "y": 174.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 55.0,
-          "y": 625.0
-        }
+          "x": 129.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 135.0,
-          "y": 325.0
-        }
+          "x": 124.0,
+          "y": 489.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "name": "WireCrossPoint#22",
         "pos": {
           "x": 119.0,
-          "y": 799.0
+          "y": 499.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "name": "WireCrossPoint#23",
         "pos": {
           "x": 114.0,
-          "y": 809.0
+          "y": 509.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 130.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 235.0,
-          "y": 375.0
-        }
+          "x": 129.0,
+          "y": 629.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -456,10 +452,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 129.0,
-          "y": 629.0
+          "x": 119.0,
+          "y": 649.0
         },
         "params": 1
       },
@@ -474,10 +470,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 119.0,
-          "y": 649.0
+          "x": 129.0,
+          "y": 779.0
         },
         "params": 1
       },
@@ -492,876 +488,1109 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 129.0,
-          "y": 779.0
+          "x": 94.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
+          "x": 119.0,
+          "y": 799.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 114.0,
+          "y": 809.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 124.0,
-          "y": 489.0
+          "x": 34.0,
+          "y": 549.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 129.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 649.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 114.0,
-          "y": 509.0
+          "x": 44.0,
+          "y": 749.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 119.0,
-          "y": 499.0
+          "x": 49.0,
+          "y": 809.0
         },
         "params": 1
-      }
-    ],
-    "innerWires": [
+      },
       {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D3"
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
+        "pos": {
+          "x": 34.0,
+          "y": 479.0
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "params": 1
       },
       {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
+        "pos": {
+          "x": 39.0,
+          "y": 489.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D2"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D4"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIand41#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIandor414#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 285.0,
-            "y": 650.0
+            "x": 290.0,
+            "y": 380.0
           },
           {
-            "x": 285.0,
-            "y": 740.0
+            "x": 290.0,
+            "y": 445.0
           },
           {
-            "x": 225.0,
-            "y": 740.0
+            "x": 230.0,
+            "y": 445.0
           },
           {
-            "x": 225.0,
-            "y": 800.0
+            "x": 230.0,
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#102",
         "path": [
           {
-            "x": 280.0,
-            "y": 660.0
+            "x": 285.0,
+            "y": 390.0
           },
           {
-            "x": 280.0,
-            "y": 735.0
+            "x": 285.0,
+            "y": 440.0
           },
           {
-            "x": 220.0,
-            "y": 735.0
+            "x": 225.0,
+            "y": 440.0
           },
           {
-            "x": 220.0,
-            "y": 810.0
+            "x": 225.0,
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#103",
         "path": [
           {
-            "x": 305.0,
-            "y": 800.0
+            "x": 280.0,
+            "y": 400.0
           },
           {
-            "x": 305.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#115",
-        "path": [
+            "x": 280.0,
+            "y": 435.0
+          },
           {
-            "x": 310.0,
-            "y": 810.0
+            "x": 220.0,
+            "y": 435.0
           },
           {
-            "x": 310.0,
-            "y": 250.0
+            "x": 220.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIand41#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "C4"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#104",
         "path": [
           {
             "x": 275.0,
-            "y": 670.0
+            "y": 410.0
           },
           {
             "x": 275.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 730.0
+            "y": 430.0
           },
           {
             "x": 215.0,
-            "y": 820.0
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 300.0,
-            "y": 790.0
+            "x": 290.0,
+            "y": 490.0
           },
           {
-            "x": 300.0,
-            "y": 50.0
+            "x": 290.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 595.0
+          },
+          {
+            "x": 230.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#106",
         "path": [
           {
-            "x": 185.0,
-            "y": 340.0
+            "x": 285.0,
+            "y": 500.0
           },
           {
-            "x": 185.0,
-            "y": 425.0
+            "x": 285.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 425.0
+            "x": 225.0,
+            "y": 590.0
           },
           {
-            "x": 125.0,
-            "y": 450.0
+            "x": 225.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#0",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#1",
           "pinName": "C3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 180.0,
-            "y": 350.0
+            "x": 280.0,
+            "y": 510.0
           },
           {
-            "x": 180.0,
-            "y": 420.0
+            "x": 280.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 420.0
+            "x": 220.0,
+            "y": 585.0
           },
           {
-            "x": 120.0,
-            "y": 460.0
+            "x": 220.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 35.0,
-            "y": 780.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
-        },
-        "name": "unnamedWire#116",
-        "path": [
+            "x": 275.0,
+            "y": 520.0
+          },
           {
-            "x": 315.0,
-            "y": 820.0
+            "x": 275.0,
+            "y": 580.0
           },
           {
-            "x": 315.0,
-            "y": 350.0
+            "x": 215.0,
+            "y": 580.0
+          },
+          {
+            "x": 215.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#2",
+          "compName": "GUIandor414#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
+          "compName": "GUIandor414#2",
           "pinName": "C1"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 190.0,
-            "y": 330.0
+            "x": 290.0,
+            "y": 640.0
           },
           {
-            "x": 190.0,
-            "y": 430.0
+            "x": 290.0,
+            "y": 745.0
           },
           {
-            "x": 130.0,
-            "y": 430.0
+            "x": 230.0,
+            "y": 745.0
           },
           {
-            "x": 130.0,
-            "y": 440.0
+            "x": 230.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D3"
+          "compName": "GUIand41#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 45.0,
-            "y": 800.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D2"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 40.0,
-            "y": 790.0
+            "x": 285.0,
+            "y": 650.0
+          },
+          {
+            "x": 285.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 740.0
+          },
+          {
+            "x": 225.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
-        },
-        "name": "unnamedWire#45",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#31",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#100",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
           "pinName": "C3"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#111",
         "path": [
           {
             "x": 280.0,
-            "y": 400.0
+            "y": 660.0
           },
           {
             "x": 280.0,
-            "y": 435.0
+            "y": 735.0
           },
           {
             "x": 220.0,
-            "y": 435.0
+            "y": 735.0
           },
           {
             "x": 220.0,
-            "y": 510.0
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
           "pinName": "C4"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#112",
         "path": [
           {
             "x": 275.0,
-            "y": 410.0
+            "y": 670.0
           },
           {
             "x": 275.0,
-            "y": 430.0
+            "y": 730.0
           },
           {
             "x": 215.0,
-            "y": 430.0
+            "y": 730.0
           },
           {
             "x": 215.0,
-            "y": 520.0
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#2",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 290.0,
-            "y": 380.0
-          },
-          {
-            "x": 290.0,
-            "y": 445.0
-          },
-          {
-            "x": 230.0,
-            "y": 445.0
+            "x": 300.0,
+            "y": 790.0
           },
           {
-            "x": 230.0,
-            "y": 490.0
+            "x": 300.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#2",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 285.0,
-            "y": 390.0
-          },
-          {
-            "x": 285.0,
-            "y": 440.0
-          },
-          {
-            "x": 225.0,
-            "y": 440.0
+            "x": 305.0,
+            "y": 800.0
           },
           {
-            "x": 225.0,
-            "y": 500.0
+            "x": 305.0,
+            "y": 150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#50",
-        "path": []
+        "name": "unnamedWire#115",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 810.0
+          },
+          {
+            "x": 310.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
+        },
+        "name": "unnamedWire#116",
+        "path": [
+          {
+            "x": 315.0,
+            "y": 820.0
+          },
+          {
+            "x": 315.0,
+            "y": 350.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#117",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 330.0
+          },
+          {
+            "x": 190.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 430.0
+          },
+          {
+            "x": 130.0,
+            "y": 440.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 340.0
+          },
+          {
+            "x": 185.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 425.0
+          },
+          {
+            "x": 125.0,
+            "y": 450.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#3",
           "pinName": "C3"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 280.0,
-            "y": 510.0
+            "x": 180.0,
+            "y": 350.0
           },
           {
-            "x": 280.0,
-            "y": 585.0
+            "x": 180.0,
+            "y": 420.0
           },
           {
-            "x": 220.0,
-            "y": 585.0
+            "x": 120.0,
+            "y": 420.0
+          },
+          {
+            "x": 120.0,
+            "y": 460.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "WE"
+        },
+        "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 300.0
+          },
+          {
+            "x": 125.0,
+            "y": 195.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#120",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 360.0
+          },
+          {
+            "x": 175.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 415.0
+          },
+          {
+            "x": 115.0,
+            "y": 470.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#121",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 440.0
+          },
+          {
+            "x": 190.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 580.0
+          },
+          {
+            "x": 130.0,
+            "y": 590.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#122",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 450.0
+          },
+          {
+            "x": 185.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 575.0
+          },
+          {
+            "x": 125.0,
+            "y": 600.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#123",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 460.0
+          },
+          {
+            "x": 180.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 570.0
+          },
+          {
+            "x": 120.0,
+            "y": 610.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#124",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 470.0
+          },
+          {
+            "x": 175.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 565.0
+          },
+          {
+            "x": 115.0,
+            "y": 620.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#125",
+        "path": [
+          {
+            "x": 190.0,
+            "y": 590.0
+          },
+          {
+            "x": 190.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 730.0
+          },
+          {
+            "x": 130.0,
+            "y": 740.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 185.0,
+            "y": 600.0
+          },
+          {
+            "x": 185.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 725.0
+          },
+          {
+            "x": 125.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#127",
+        "path": [
+          {
+            "x": 180.0,
+            "y": 610.0
+          },
+          {
+            "x": 180.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 720.0
+          },
+          {
+            "x": 120.0,
+            "y": 760.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 620.0
+          },
+          {
+            "x": 175.0,
+            "y": 715.0
+          },
+          {
+            "x": 115.0,
+            "y": 715.0
           },
           {
-            "x": 220.0,
-            "y": 660.0
+            "x": 115.0,
+            "y": 770.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 275.0,
-            "y": 520.0
+            "x": 190.0,
+            "y": 740.0
           },
           {
-            "x": 275.0,
-            "y": 580.0
+            "x": 190.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 580.0
+            "x": 325.0,
+            "y": 880.0
           },
           {
-            "x": 215.0,
-            "y": 670.0
+            "x": 325.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
-        },
-        "name": "unnamedWire#52",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#0",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 290.0,
-            "y": 490.0
+            "x": 185.0,
+            "y": 155.0
           },
           {
-            "x": 290.0,
-            "y": 595.0
+            "x": 185.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 595.0
+            "x": 30.0,
+            "y": 250.0
           },
           {
-            "x": 230.0,
-            "y": 640.0
+            "x": 30.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#5",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": [
           {
-            "x": 285.0,
-            "y": 500.0
+            "x": 185.0,
+            "y": 750.0
           },
           {
-            "x": 285.0,
-            "y": 590.0
+            "x": 185.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 590.0
+            "x": 330.0,
+            "y": 885.0
           },
           {
-            "x": 225.0,
-            "y": 650.0
+            "x": 330.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#56",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
           {
-            "x": 290.0,
-            "y": 640.0
+            "x": 180.0,
+            "y": 760.0
           },
           {
-            "x": 290.0,
-            "y": 745.0
+            "x": 180.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 745.0
+            "x": 335.0,
+            "y": 890.0
           },
           {
-            "x": 230.0,
-            "y": 790.0
+            "x": 335.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "Q3"
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#55",
-        "path": []
+        "name": "unnamedWire#132",
+        "path": [
+          {
+            "x": 175.0,
+            "y": 770.0
+          },
+          {
+            "x": 175.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 895.0
+          },
+          {
+            "x": 340.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1395,29 +1624,29 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIand41#0",
-          "pinName": "Y1"
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
+          "compName": "GUIdlatch4#2",
           "pinName": "C"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 185.0,
-            "y": 155.0
+            "x": 175.0,
+            "y": 175.0
           },
           {
-            "x": 185.0,
-            "y": 250.0
+            "x": 175.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 250.0
+            "x": 20.0,
+            "y": 240.0
           },
           {
-            "x": 30.0,
-            "y": 370.0
+            "x": 20.0,
+            "y": 670.0
           }
         ]
       },
@@ -1450,57 +1679,28 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 175.0
-          },
-          {
-            "x": 175.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 240.0
-          },
-          {
-            "x": 20.0,
-            "y": 670.0
-          }
-        ]
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1517,18 +1717,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 330.0
+            "x": 5.0,
+            "y": 250.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
           }
         ]
       },
@@ -1551,18 +1755,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 350.0
+            "x": 35.0,
+            "y": 330.0
           }
         ]
       },
@@ -1585,15 +1789,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1614,14 +1823,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -1638,14 +1847,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -1662,544 +1871,410 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#2",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 120.0,
-            "y": 700.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#81",
-        "path": [
+            "x": 10.0,
+            "y": 350.0
+          },
           {
-            "x": 130.0,
-            "y": 830.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 710.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 840.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#92",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 780.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#91",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 790.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
+            "x": 45.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIdlatch4#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 350.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 300.0
-          },
-          {
-            "x": 125.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 250.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdlatch4#2",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "GUIdlatch4#3",
+          "pinName": "Q1"
         },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A3"
+        "pin2": {
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
@@ -2217,514 +2292,522 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q1"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#59",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdlatch4#3",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 175.0,
-            "y": 770.0
+            "x": 210.0,
+            "y": 50.0
           },
           {
-            "x": 175.0,
-            "y": 895.0
-          },
+            "x": 210.0,
+            "y": 420.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
+        },
+        "pin2": {
+          "compName": "GUIandor414#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#62",
+        "path": [
           {
-            "x": 340.0,
-            "y": 895.0
+            "x": 205.0,
+            "y": 60.0
           },
           {
-            "x": 340.0,
-            "y": 750.0
+            "x": 205.0,
+            "y": 570.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 185.0,
-            "y": 750.0
+            "x": 200.0,
+            "y": 70.0
           },
           {
-            "x": 185.0,
-            "y": 885.0
-          },
+            "x": 200.0,
+            "y": 720.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
+        },
+        "pin2": {
+          "compName": "GUIandor414#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#64",
+        "path": [
           {
-            "x": 330.0,
-            "y": 885.0
+            "x": 195.0,
+            "y": 80.0
           },
           {
-            "x": 330.0,
-            "y": 550.0
+            "x": 195.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 180.0,
-            "y": 760.0
-          },
-          {
-            "x": 180.0,
-            "y": 890.0
-          },
+            "x": 110.0,
+            "y": 370.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#66",
+        "path": [
           {
-            "x": 335.0,
-            "y": 890.0
-          },
+            "x": 105.0,
+            "y": 520.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#67",
+        "path": [
           {
-            "x": 335.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#68",
         "path": [
           {
-            "x": 210.0,
-            "y": 50.0
-          },
+            "x": 95.0,
+            "y": 820.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#69",
+        "path": [
           {
-            "x": 210.0,
-            "y": 420.0
+            "x": 130.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#3",
-          "pinName": "Q4"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 70.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
+            "x": 125.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 205.0,
-            "y": 60.0
-          },
-          {
-            "x": 205.0,
-            "y": 570.0
+            "x": 120.0,
+            "y": 400.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#1",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#72",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 110.0,
-            "y": 370.0
+            "x": 130.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 195.0,
-            "y": 80.0
-          },
-          {
-            "x": 195.0,
-            "y": 870.0
+            "x": 125.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 100.0,
-            "y": 670.0
+            "x": 120.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 105.0,
-            "y": 520.0
+            "x": 115.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIandor414#1",
           "pinName": "A1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#77",
         "path": [
           {
             "x": 130.0,
-            "y": 380.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#78",
         "path": [
           {
-            "x": 95.0,
-            "y": 820.0
+            "x": 125.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 190.0,
-            "y": 440.0
-          },
-          {
-            "x": 190.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 580.0
-          },
-          {
-            "x": 130.0,
-            "y": 590.0
+            "x": 120.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#122",
-        "path": [
-          {
-            "x": 185.0,
-            "y": 450.0
-          },
-          {
-            "x": 185.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 575.0
-          },
-          {
-            "x": 125.0,
-            "y": 600.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#80",
         "path": [
-          {
-            "x": 175.0,
-            "y": 360.0
-          },
-          {
-            "x": 175.0,
-            "y": 415.0
-          },
-          {
-            "x": 115.0,
-            "y": 415.0
-          },
           {
             "x": 115.0,
-            "y": 470.0
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#81",
         "path": [
-          {
-            "x": 190.0,
-            "y": 590.0
-          },
-          {
-            "x": 190.0,
-            "y": 730.0
-          },
-          {
-            "x": 130.0,
-            "y": 730.0
-          },
           {
             "x": 130.0,
-            "y": 740.0
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#82",
         "path": [
-          {
-            "x": 185.0,
-            "y": 600.0
-          },
-          {
-            "x": 185.0,
-            "y": 725.0
-          },
-          {
-            "x": 125.0,
-            "y": 725.0
-          },
           {
             "x": 125.0,
-            "y": 750.0
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 125.0,
-            "y": 390.0
+            "x": 120.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 180.0,
-            "y": 460.0
-          },
-          {
-            "x": 180.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 570.0
-          },
-          {
-            "x": 120.0,
-            "y": 610.0
+            "x": 115.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#86",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#124",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 470.0
-          },
-          {
-            "x": 175.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 565.0
-          },
-          {
-            "x": 115.0,
-            "y": 620.0
-          }
-        ]
+        "name": "unnamedWire#87",
+        "path": []
       },
       {
         "pin1": {
@@ -2732,62 +2815,35 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
+          "compName": "GUIand41#2",
           "pinName": "A4"
         },
-        "name": "unnamedWire#72",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#88",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#129",
-        "path": [
-          {
-            "x": 190.0,
-            "y": 740.0
-          },
-          {
-            "x": 190.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 880.0
-          },
-          {
-            "x": 325.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#71",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       },
       {
         "pin1": {
@@ -2795,161 +2851,122 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#74",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#90",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#127",
-        "path": [
-          {
-            "x": 180.0,
-            "y": 610.0
-          },
-          {
-            "x": 180.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 720.0
-          },
-          {
-            "x": 120.0,
-            "y": 760.0
-          }
-        ]
+        "name": "unnamedWire#91",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#92",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIandor414#4",
           "pinName": "A1"
         },
-        "name": "unnamedWire#73",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#93",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#94",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
-        "path": [
-          {
-            "x": 175.0,
-            "y": 620.0
-          },
-          {
-            "x": 175.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 715.0
-          },
-          {
-            "x": 115.0,
-            "y": 770.0
-          }
-        ]
+        "name": "unnamedWire#95",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIandor414#4",
           "pinName": "A4"
         },
-        "name": "unnamedWire#76",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 560.0
-          }
-        ]
+        "name": "unnamedWire#96",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#97",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#29",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#5",
           "pinName": "A2"
         },
-        "name": "unnamedWire#78",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 690.0
-          }
-        ]
+        "name": "unnamedWire#98",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 680.0
-          }
-        ]
+        "name": "unnamedWire#99",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3007,5 +3024,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e5e71cc..55ddef8 100644 (file)
@@ -1,71 +1,78 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 130.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 5.0
       },
-      "name": "QA1",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "QB2",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "QB1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "QA3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "QB4",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "QA2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
+        "x": 0.0,
         "y": 65.0
       },
-      "name": "QB3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "QA4",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,187 +80,240 @@ mograsim version: 0.1.3
         "y": 95.0
       },
       "name": "D1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 115.0
       },
-      "name": "WE",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 125.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 5.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "QA1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 55.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "QA2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "QA3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "QA4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "QB1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 125.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "QB2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 65.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "QB3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
+        "x": 35.0,
         "y": 75.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "QB4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 85.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "WE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUIand41",
+        "name": "GUIand41#0",
         "pos": {
-          "x": 69.0,
-          "y": 854.0
-        },
-        "params": 1
+          "x": 235.0,
+          "y": 150.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIand41",
+        "name": "GUIand41#1",
         "pos": {
-          "x": 64.0,
-          "y": 844.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 375.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUIand41",
+        "name": "GUIand41#2",
         "pos": {
-          "x": 39.0,
-          "y": 484.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 325.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIandor414",
+        "name": "GUIandor414#0",
         "pos": {
-          "x": 74.0,
-          "y": 864.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIandor414",
+        "name": "GUIandor414#1",
         "pos": {
-          "x": 49.0,
-          "y": 504.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 635.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIandor414",
+        "name": "GUIandor414#2",
         "pos": {
-          "x": 44.0,
-          "y": 494.0
-        },
-        "params": 1
+          "x": 250.0,
+          "y": 785.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUIandor414",
+        "name": "GUIandor414#3",
         "pos": {
-          "x": 54.0,
-          "y": 514.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 435.0
+        }
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#2",
+        "id": "GUIandor414",
+        "name": "GUIandor414#4",
         "pos": {
           "x": 155.0,
-          "y": 325.0
+          "y": 585.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIandor414",
+        "name": "GUIandor414#5",
         "pos": {
-          "x": 224.0,
-          "y": 164.0
-        },
-        "params": 1
+          "x": 155.0,
+          "y": 735.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#0",
+        "pos": {
+          "x": 55.0,
+          "y": 45.0
+        }
+      },
+      {
+        "id": "GUIdemux2",
+        "name": "GUIdemux2#1",
+        "pos": {
+          "x": 55.0,
+          "y": 150.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#0",
+        "pos": {
+          "x": 80.0,
+          "y": 330.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#1",
+        "pos": {
+          "x": 80.0,
+          "y": 480.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#2",
+        "pos": {
+          "x": 80.0,
+          "y": 630.0
+        }
+      },
+      {
+        "id": "GUIram2",
+        "name": "GUIram2#3",
+        "pos": {
+          "x": 80.0,
+          "y": 780.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -266,169 +326,165 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 214.0,
-          "y": 184.0
+          "x": 224.0,
+          "y": 164.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 219.0,
-          "y": 174.0
+          "x": 69.0,
+          "y": 704.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 64.0,
-          "y": 544.0
+          "x": 74.0,
+          "y": 714.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 59.0,
-          "y": 534.0
+          "y": 834.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 74.0,
-          "y": 564.0
+          "x": 64.0,
+          "y": 844.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 69.0,
-          "y": 554.0
+          "y": 854.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 64.0,
-          "y": 694.0
+          "x": 74.0,
+          "y": 864.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 59.0,
-          "y": 684.0
+          "x": 39.0,
+          "y": 484.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 69.0,
-          "y": 704.0
+          "x": 44.0,
+          "y": 494.0
         },
         "params": 1
       },
-      {
-        "id": "GUIand41",
-        "name": "GUIand41#0",
-        "pos": {
-          "x": 235.0,
-          "y": 150.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 59.0,
-          "y": 834.0
+          "x": 49.0,
+          "y": 504.0
         },
         "params": 1
       },
       {
-        "id": "GUIand41",
-        "name": "GUIand41#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 250.0,
-          "y": 375.0
-        }
+          "x": 54.0,
+          "y": 514.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 74.0,
-          "y": 714.0
+          "x": 219.0,
+          "y": 174.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 155.0,
-          "y": 735.0
-        }
+          "x": 39.0,
+          "y": 634.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#21",
         "pos": {
           "x": 44.0,
-          "y": 349.0
+          "y": 644.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 39.0,
-          "y": 334.0
+          "x": 49.0,
+          "y": 654.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 155.0,
-          "y": 435.0
-        }
+          "x": 54.0,
+          "y": 664.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 54.0,
-          "y": 749.0
+          "x": 39.0,
+          "y": 334.0
         },
         "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 155.0,
-          "y": 585.0
-        }
+          "x": 44.0,
+          "y": 349.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -440,1173 +496,1464 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIram2",
-        "name": "GUIram2#3",
-        "pos": {
-          "x": 80.0,
-          "y": 780.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#2",
-        "pos": {
-          "x": 80.0,
-          "y": 630.0
-        }
-      },
-      {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#1",
-        "pos": {
-          "x": 55.0,
-          "y": 150.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#1",
-        "pos": {
-          "x": 80.0,
-          "y": 480.0
-        }
-      },
-      {
-        "id": "GUIram2",
-        "name": "GUIram2#0",
-        "pos": {
-          "x": 80.0,
-          "y": 330.0
-        }
-      },
-      {
-        "id": "GUIandor414",
-        "name": "GUIandor414#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 250.0,
-          "y": 635.0
-        }
+          "x": 54.0,
+          "y": 749.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIdemux2",
-        "name": "GUIdemux2#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
-        }
+          "x": 214.0,
+          "y": 184.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 250.0,
-          "y": 785.0
-        }
+          "x": 59.0,
+          "y": 534.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIandor414",
-        "name": "GUIandor414#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 250.0,
-          "y": 485.0
-        }
+          "x": 64.0,
+          "y": 544.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 44.0,
-          "y": 644.0
+          "x": 69.0,
+          "y": 554.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 634.0
+          "x": 74.0,
+          "y": 564.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 54.0,
-          "y": 664.0
+          "x": 59.0,
+          "y": 684.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 49.0,
-          "y": 654.0
+          "x": 64.0,
+          "y": 694.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B1"
+          "compName": "GUIdemux2#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "B0"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "S1"
         },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A1"
-        },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 45.0,
-            "y": 795.0
+            "x": 10.0,
+            "y": 150.0
+          },
+          {
+            "x": 10.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "A0"
+          "compName": "GUIand41#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#0",
+          "pinName": "QA4"
+        },
+        "pin2": {
+          "compName": "GUIand41#2",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 40.0,
-            "y": 785.0
+            "x": 140.0,
+            "y": 365.0
+          },
+          {
+            "x": 140.0,
+            "y": 360.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIram2#1",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "B0"
+          "compName": "GUIandor414#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 50.0,
-            "y": 805.0
+            "x": 140.0,
+            "y": 485.0
+          },
+          {
+            "x": 140.0,
+            "y": 480.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A2"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#102",
         "path": [
           {
             "x": 140.0,
-            "y": 795.0
+            "y": 495.0
           },
           {
             "x": 140.0,
-            "y": 790.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
+          "compName": "GUIram2#1",
           "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
+          "compName": "GUIandor414#3",
           "pinName": "A3"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#103",
         "path": [
           {
             "x": 140.0,
-            "y": 805.0
+            "y": 505.0
           },
           {
             "x": 140.0,
-            "y": 800.0
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C2"
+          "compName": "GUIandor414#3",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#104",
         "path": [
           {
-            "x": 300.0,
-            "y": 390.0
-          },
-          {
-            "x": 300.0,
-            "y": 440.0
-          },
-          {
-            "x": 240.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 515.0
           },
           {
-            "x": 240.0,
-            "y": 500.0
+            "x": 140.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#2",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C3"
+          "compName": "GUIandor414#4",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#105",
         "path": [
           {
-            "x": 295.0,
-            "y": 400.0
-          },
-          {
-            "x": 295.0,
-            "y": 435.0
-          },
-          {
-            "x": 235.0,
-            "y": 435.0
+            "x": 140.0,
+            "y": 635.0
           },
           {
-            "x": 235.0,
-            "y": 510.0
+            "x": 140.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA4"
+          "compName": "GUIram2#2",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A4"
+          "compName": "GUIandor414#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#106",
         "path": [
           {
             "x": 140.0,
-            "y": 815.0
+            "y": 645.0
           },
           {
             "x": 140.0,
-            "y": 810.0
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#2",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C1"
+          "compName": "GUIandor414#4",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#107",
         "path": [
           {
-            "x": 305.0,
-            "y": 380.0
-          },
-          {
-            "x": 305.0,
-            "y": 445.0
-          },
-          {
-            "x": 245.0,
-            "y": 445.0
+            "x": 140.0,
+            "y": 655.0
           },
           {
-            "x": 245.0,
-            "y": 490.0
+            "x": 140.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y2"
+          "compName": "GUIram2#2",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C2"
+          "compName": "GUIandor414#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#108",
         "path": [
           {
-            "x": 300.0,
-            "y": 500.0
-          },
-          {
-            "x": 300.0,
-            "y": 590.0
-          },
-          {
-            "x": 240.0,
-            "y": 590.0
+            "x": 140.0,
+            "y": 665.0
           },
           {
-            "x": 240.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C3"
+          "compName": "GUIandor414#5",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#109",
         "path": [
           {
-            "x": 295.0,
-            "y": 510.0
-          },
-          {
-            "x": 295.0,
-            "y": 585.0
-          },
-          {
-            "x": 235.0,
-            "y": 585.0
+            "x": 140.0,
+            "y": 785.0
           },
           {
-            "x": 235.0,
-            "y": 660.0
+            "x": 140.0,
+            "y": 780.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
+          "compName": "GUIand41#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIram2#3",
-          "pinName": "B1"
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#41",
+        "pin2": {
+          "compName": "GUIandor414#5",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 55.0,
-            "y": 815.0
+            "x": 140.0,
+            "y": 795.0
+          },
+          {
+            "x": 140.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "C4"
+          "compName": "GUIandor414#5",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 290.0,
-            "y": 410.0
-          },
-          {
-            "x": 290.0,
-            "y": 430.0
-          },
-          {
-            "x": 230.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 805.0
           },
           {
-            "x": 230.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIram2#3",
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#40",
-        "path": []
+        "name": "unnamedWire#112",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 815.0
+          },
+          {
+            "x": 140.0,
+            "y": 810.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
+          "compName": "GUIand41#1",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
+          "compName": "GUIandor414#0",
           "pinName": "C1"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#113",
         "path": [
           {
             "x": 305.0,
-            "y": 490.0
+            "y": 380.0
           },
           {
             "x": 305.0,
-            "y": 595.0
+            "y": 445.0
           },
           {
             "x": 245.0,
-            "y": 595.0
+            "y": 445.0
           },
           {
             "x": 245.0,
-            "y": 640.0
+            "y": 490.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "GUIand41#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 40.0,
-            "y": 250.0
+            "x": 300.0,
+            "y": 390.0
+          },
+          {
+            "x": 300.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 440.0
+          },
+          {
+            "x": 240.0,
+            "y": 500.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D1"
+          "compName": "GUIandor414#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 60.0,
-            "y": 385.0
+            "x": 295.0,
+            "y": 400.0
+          },
+          {
+            "x": 295.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 435.0
+          },
+          {
+            "x": 235.0,
+            "y": 510.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
-        },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIand41#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D3"
+          "compName": "GUIandor414#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 70.0,
-            "y": 405.0
+            "x": 290.0,
+            "y": 410.0
+          },
+          {
+            "x": 290.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 430.0
+          },
+          {
+            "x": 230.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D2"
+          "compName": "GUIandor414#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 65.0,
-            "y": 395.0
+            "x": 305.0,
+            "y": 490.0
+          },
+          {
+            "x": 305.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 595.0
+          },
+          {
+            "x": 245.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D1"
+          "compName": "GUIandor414#1",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#49",
-        "path": []
+        "name": "unnamedWire#118",
+        "path": [
+          {
+            "x": 300.0,
+            "y": 500.0
+          },
+          {
+            "x": 300.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 590.0
+          },
+          {
+            "x": 240.0,
+            "y": 650.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "D4"
+          "compName": "GUIandor414#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#119",
         "path": [
           {
-            "x": 75.0,
-            "y": 415.0
+            "x": 295.0,
+            "y": 510.0
+          },
+          {
+            "x": 295.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 585.0
+          },
+          {
+            "x": 235.0,
+            "y": 660.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A4"
+          "compName": "GUIand41#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#100",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 140.0,
-            "y": 365.0
+            "x": 15.0,
+            "y": 850.0
           },
           {
-            "x": 140.0,
-            "y": 360.0
+            "x": 15.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA3"
+          "compName": "GUIandor414#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A3"
+          "compName": "GUIandor414#1",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#120",
         "path": [
           {
-            "x": 140.0,
-            "y": 505.0
+            "x": 290.0,
+            "y": 520.0
           },
           {
-            "x": 140.0,
-            "y": 500.0
+            "x": 290.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 580.0
+          },
+          {
+            "x": 230.0,
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA4"
+          "compName": "GUIandor414#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A4"
+          "compName": "GUIandor414#2",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#121",
         "path": [
           {
-            "x": 140.0,
-            "y": 515.0
+            "x": 305.0,
+            "y": 640.0
           },
           {
-            "x": 140.0,
-            "y": 510.0
+            "x": 305.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 745.0
+          },
+          {
+            "x": 245.0,
+            "y": 790.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA1"
+          "compName": "GUIandor414#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A1"
+          "compName": "GUIandor414#2",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#122",
         "path": [
           {
-            "x": 140.0,
-            "y": 485.0
+            "x": 300.0,
+            "y": 650.0
           },
           {
-            "x": 140.0,
-            "y": 480.0
+            "x": 300.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 740.0
+          },
+          {
+            "x": 240.0,
+            "y": 800.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QA2"
+          "compName": "GUIandor414#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "A2"
+          "compName": "GUIandor414#2",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 140.0,
-            "y": 495.0
+            "x": 295.0,
+            "y": 660.0
           },
           {
-            "x": 140.0,
-            "y": 490.0
+            "x": 295.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 735.0
+          },
+          {
+            "x": 235.0,
+            "y": 810.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA3"
+          "compName": "GUIandor414#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A3"
+          "compName": "GUIandor414#2",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#124",
         "path": [
           {
-            "x": 140.0,
-            "y": 655.0
+            "x": 290.0,
+            "y": 670.0
           },
           {
-            "x": 140.0,
-            "y": 650.0
+            "x": 290.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 730.0
+          },
+          {
+            "x": 230.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA4"
+          "compName": "GUIandor414#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "QB1"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#125",
         "path": [
           {
-            "x": 140.0,
-            "y": 665.0
+            "x": 330.0,
+            "y": 790.0
           },
           {
-            "x": 140.0,
-            "y": 660.0
+            "x": 330.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D4"
+          "compName": "_submodelinterface",
+          "pinName": "QB2"
         },
-        "name": "unnamedWire#52",
-        "path": []
+        "name": "unnamedWire#126",
+        "path": [
+          {
+            "x": 335.0,
+            "y": 800.0
+          },
+          {
+            "x": 335.0,
+            "y": 550.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA1"
+          "compName": "GUIandor414#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QB3"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#127",
         "path": [
           {
-            "x": 140.0,
-            "y": 635.0
+            "x": 340.0,
+            "y": 810.0
           },
           {
-            "x": 140.0,
-            "y": 630.0
+            "x": 340.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "D3"
+          "compName": "_submodelinterface",
+          "pinName": "QB4"
         },
-        "name": "unnamedWire#51",
-        "path": []
+        "name": "unnamedWire#128",
+        "path": [
+          {
+            "x": 345.0,
+            "y": 820.0
+          },
+          {
+            "x": 345.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QA2"
+          "compName": "GUIand41#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "A2"
+          "compName": "GUIandor414#3",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#129",
         "path": [
           {
-            "x": 140.0,
-            "y": 645.0
+            "x": 210.0,
+            "y": 330.0
           },
           {
-            "x": 140.0,
-            "y": 640.0
+            "x": 210.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 430.0
+          },
+          {
+            "x": 150.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#54",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#53",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 155.0
+          },
+          {
+            "x": 290.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 375.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIand41#2",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#130",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 340.0
+          },
+          {
+            "x": 205.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 425.0
+          },
+          {
+            "x": 145.0,
+            "y": 450.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QA1"
+          "compName": "GUIand41#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "A1"
+          "compName": "GUIandor414#3",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#131",
         "path": [
+          {
+            "x": 200.0,
+            "y": 350.0
+          },
+          {
+            "x": 200.0,
+            "y": 420.0
+          },
           {
             "x": 140.0,
-            "y": 785.0
+            "y": 420.0
           },
           {
             "x": 140.0,
-            "y": 780.0
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y2"
+          "compName": "GUIand41#2",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "WE"
+          "compName": "GUIandor414#3",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#132",
         "path": [
           {
-            "x": 285.0,
-            "y": 165.0
+            "x": 195.0,
+            "y": 360.0
           },
           {
-            "x": 285.0,
-            "y": 225.0
+            "x": 195.0,
+            "y": 415.0
           },
           {
-            "x": 30.0,
-            "y": 225.0
+            "x": 135.0,
+            "y": 415.0
           },
           {
-            "x": 30.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 470.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIandor414#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#133",
         "path": [
           {
-            "x": 290.0,
-            "y": 155.0
+            "x": 210.0,
+            "y": 440.0
           },
           {
-            "x": 290.0,
-            "y": 230.0
+            "x": 210.0,
+            "y": 580.0
           },
           {
-            "x": 35.0,
-            "y": 230.0
+            "x": 150.0,
+            "y": 580.0
           },
           {
-            "x": 35.0,
-            "y": 375.0
+            "x": 150.0,
+            "y": 590.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
-          "pinName": "Y4"
+          "compName": "GUIandor414#3",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#134",
         "path": [
           {
-            "x": 275.0,
-            "y": 185.0
+            "x": 205.0,
+            "y": 450.0
           },
           {
-            "x": 275.0,
-            "y": 215.0
+            "x": 205.0,
+            "y": 575.0
           },
           {
-            "x": 20.0,
-            "y": 215.0
+            "x": 145.0,
+            "y": 575.0
           },
           {
-            "x": 20.0,
-            "y": 825.0
+            "x": 145.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#0",
+          "compName": "GUIandor414#3",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "WE"
+          "compName": "GUIandor414#4",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 280.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 460.0
           },
           {
-            "x": 280.0,
-            "y": 220.0
+            "x": 200.0,
+            "y": 570.0
           },
           {
-            "x": 25.0,
-            "y": 220.0
+            "x": 140.0,
+            "y": 570.0
           },
           {
-            "x": 25.0,
-            "y": 675.0
+            "x": 140.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#3",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A0"
+          "compName": "GUIandor414#4",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#136",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 470.0
+          },
+          {
+            "x": 195.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 565.0
+          },
+          {
+            "x": 135.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 210.0,
+            "y": 590.0
+          },
+          {
+            "x": 210.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 730.0
+          },
+          {
+            "x": 150.0,
+            "y": 740.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#19",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 600.0
+          },
+          {
+            "x": 205.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 725.0
+          },
+          {
+            "x": 145.0,
+            "y": 750.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B0"
+          "compName": "GUIandor414#5",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 50.0,
-            "y": 355.0
+            "x": 200.0,
+            "y": 610.0
+          },
+          {
+            "x": 200.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 720.0
+          },
+          {
+            "x": 140.0,
+            "y": 760.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIand41#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 45.0,
-            "y": 345.0
+            "x": 285.0,
+            "y": 165.0
+          },
+          {
+            "x": 285.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 225.0
+          },
+          {
+            "x": 30.0,
+            "y": 525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A0"
+          "compName": "GUIandor414#5",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#140",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 620.0
+          },
+          {
+            "x": 195.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 715.0
+          },
+          {
+            "x": 135.0,
+            "y": 770.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIram2#0",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "QA1"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#141",
         "path": [
           {
-            "x": 55.0,
-            "y": 365.0
+            "x": 210.0,
+            "y": 740.0
+          },
+          {
+            "x": 210.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 880.0
+          },
+          {
+            "x": 310.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B0"
+          "compName": "_submodelinterface",
+          "pinName": "QA2"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#142",
+        "path": [
+          {
+            "x": 205.0,
+            "y": 750.0
+          },
+          {
+            "x": 205.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 885.0
+          },
+          {
+            "x": 315.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QA3"
         },
-        "name": "unnamedWire#24",
-        "path": []
+        "name": "unnamedWire#143",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 760.0
+          },
+          {
+            "x": 200.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 890.0
+          },
+          {
+            "x": 320.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIandor414#5",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "QA4"
         },
-        "name": "unnamedWire#27",
-        "path": []
+        "name": "unnamedWire#144",
+        "path": [
+          {
+            "x": 195.0,
+            "y": 770.0
+          },
+          {
+            "x": 195.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 895.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "GUIand41#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "GUIram2#2",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 280.0,
+            "y": 175.0
+          },
+          {
+            "x": 280.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 675.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand41#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram2#3",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 275.0,
+            "y": 185.0
+          },
+          {
+            "x": 275.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 215.0
+          },
+          {
+            "x": 20.0,
+            "y": 825.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#1",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
@@ -1615,23 +1962,66 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B2"
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "GUIdemux2#1",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 450.0
+          },
+          {
+            "x": 5.0,
+            "y": 155.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 345.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#0",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 355.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1639,1697 +2029,1328 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
+          "compName": "GUIram2#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#22",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 365.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "A0"
+        },
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
+          "compName": "GUIram2#1",
+          "pinName": "A1"
+        },
+        "name": "unnamedWire#24",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "B0"
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
+        },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 720.0
-          }
-        ]
+        "name": "unnamedWire#29",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB1"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A1"
+          "compName": "GUIdemux2#1",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 140.0,
-            "y": 375.0
+            "x": 10.0,
+            "y": 550.0
           },
           {
-            "x": 140.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 165.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#80",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 870.0
-          }
-        ]
+        "name": "unnamedWire#30",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#83",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 395.0
-          },
-          {
-            "x": 140.0,
-            "y": 400.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#82",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 385.0
-          },
-          {
-            "x": 140.0,
-            "y": 390.0
-          }
-        ]
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A1"
+          "compName": "GUIram2#2",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#85",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 525.0
-          },
-          {
-            "x": 140.0,
-            "y": 530.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "A4"
+          "compName": "GUIram2#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 405.0
-          },
-          {
-            "x": 140.0,
-            "y": 410.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#87",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 545.0
-          },
-          {
-            "x": 140.0,
-            "y": 550.0
-          }
-        ]
+        "name": "unnamedWire#35",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 535.0
-          },
-          {
-            "x": 140.0,
-            "y": 540.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A1"
+          "compName": "GUIram2#3",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 140.0,
-            "y": 675.0
-          },
-          {
-            "x": 140.0,
-            "y": 680.0
+            "x": 40.0,
+            "y": 785.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#1",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "A4"
+          "compName": "GUIram2#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 140.0,
-            "y": 555.0
-          },
-          {
-            "x": 140.0,
-            "y": 560.0
+            "x": 45.0,
+            "y": 795.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 195.0,
-            "y": 620.0
-          },
-          {
-            "x": 195.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 715.0
-          },
-          {
-            "x": 135.0,
-            "y": 770.0
+            "x": 50.0,
+            "y": 805.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdemux2#1",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA3"
-        },
-        "name": "unnamedWire#143",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 760.0
-          },
-          {
-            "x": 200.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 890.0
-          },
-          {
-            "x": 320.0,
-            "y": 250.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA4"
+          "compName": "GUIram2#3",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 195.0,
-            "y": 770.0
-          },
-          {
-            "x": 195.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 895.0
-          },
-          {
-            "x": 325.0,
-            "y": 350.0
+            "x": 55.0,
+            "y": 815.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y11"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 250.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#141",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 740.0
-          },
-          {
-            "x": 210.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 880.0
-          },
-          {
-            "x": 310.0,
-            "y": 50.0
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y10"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QA2"
+          "compName": "GUIram2#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 205.0,
-            "y": 750.0
-          },
-          {
-            "x": 205.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 885.0
-          },
-          {
-            "x": 315.0,
-            "y": 150.0
+            "x": 60.0,
+            "y": 385.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A2"
+          "compName": "GUIram2#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 140.0,
-            "y": 685.0
-          },
-          {
-            "x": 140.0,
-            "y": 690.0
+            "x": 65.0,
+            "y": 395.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A4"
+          "compName": "GUIram2#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 140.0,
-            "y": 705.0
-          },
-          {
-            "x": 140.0,
-            "y": 710.0
+            "x": 70.0,
+            "y": 405.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram2#2",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "A3"
+          "compName": "GUIram2#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 140.0,
-            "y": 695.0
-          },
-          {
-            "x": 140.0,
-            "y": 700.0
+            "x": 75.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S1"
+          "compName": "GUIram2#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 150.0
-          },
-          {
-            "x": 10.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#94",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 835.0
-          },
-          {
-            "x": 140.0,
-            "y": 840.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#0",
-          "pinName": "S0"
+          "compName": "GUIram2#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB1"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A1"
+          "compName": "GUIram2#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#93",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 825.0
-          },
-          {
-            "x": 140.0,
-            "y": 830.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIram2#1",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#52",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#53",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#96",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 855.0
-          },
-          {
-            "x": 140.0,
-            "y": 860.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#3",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#95",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 845.0
-          },
-          {
-            "x": 140.0,
-            "y": 850.0
-          }
-        ]
+        "name": "unnamedWire#55",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y01"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A3"
+          "compName": "GUIram2#2",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA2"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A2"
+          "compName": "GUIram2#2",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 345.0
-          },
-          {
-            "x": 140.0,
-            "y": 340.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#1",
-          "pinName": "Y00"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#2",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA1"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 335.0
-          },
-          {
-            "x": 140.0,
-            "y": 330.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S1"
+          "compName": "GUIram2#2",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 550.0
-          },
-          {
-            "x": 10.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#60",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 850.0
-          },
-          {
-            "x": 15.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#61",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdemux2#1",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 450.0
-          },
-          {
-            "x": 5.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#62",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#0",
-          "pinName": "A4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram2#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#99",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 355.0
-          },
-          {
-            "x": 140.0,
-            "y": 350.0
-          }
-        ]
+        "name": "unnamedWire#64",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D2"
+          "compName": "GUIram2#3",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D1"
+          "compName": "GUIram2#3",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#2",
+          "compName": "GUIram2#3",
           "pinName": "D3"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C4"
+          "compName": "GUIram2#3",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#132",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 360.0
-          },
-          {
-            "x": 195.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 415.0
-          },
-          {
-            "x": 135.0,
-            "y": 470.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 210.0,
-            "y": 440.0
-          },
-          {
-            "x": 210.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 580.0
-          },
-          {
-            "x": 150.0,
-            "y": 590.0
+            "x": 60.0,
+            "y": 950.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#1",
+          "pinName": "Y11"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#130",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 340.0
-          },
-          {
-            "x": 205.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 425.0
-          },
-          {
-            "x": 145.0,
-            "y": 450.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 200.0,
-            "y": 350.0
-          },
-          {
-            "x": 200.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 420.0
-          },
-          {
-            "x": 140.0,
-            "y": 460.0
+            "x": 65.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 195.0,
-            "y": 470.0
-          },
-          {
-            "x": 195.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 565.0
-          },
-          {
-            "x": 135.0,
-            "y": 620.0
+            "x": 70.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 210.0,
-            "y": 590.0
-          },
-          {
-            "x": 210.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 740.0
+            "x": 75.0,
+            "y": 1250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y2"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y00"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C2"
+          "compName": "GUIand41#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 205.0,
-            "y": 450.0
-          },
-          {
-            "x": 205.0,
-            "y": 575.0
-          },
-          {
-            "x": 145.0,
-            "y": 575.0
+            "x": 135.0,
+            "y": 50.0
           },
           {
-            "x": 145.0,
-            "y": 600.0
+            "x": 135.0,
+            "y": 370.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#3",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y01"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "C3"
+          "compName": "GUIandor414#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#74",
         "path": [
           {
-            "x": 200.0,
-            "y": 460.0
-          },
-          {
-            "x": 200.0,
-            "y": 570.0
-          },
-          {
-            "x": 140.0,
-            "y": 570.0
+            "x": 130.0,
+            "y": 60.0
           },
           {
-            "x": 140.0,
-            "y": 610.0
+            "x": 130.0,
+            "y": 520.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "name": "unnamedWire#61",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#2",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#60",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUIdemux2#0",
+          "pinName": "Y10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#63",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIandor414#4",
-          "pinName": "Y2"
-        },
-        "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "C2"
+          "pinName": "B"
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#75",
         "path": [
           {
-            "x": 205.0,
-            "y": 600.0
-          },
-          {
-            "x": 205.0,
-            "y": 725.0
-          },
-          {
-            "x": 145.0,
-            "y": 725.0
+            "x": 125.0,
+            "y": 70.0
           },
           {
-            "x": 145.0,
-            "y": 750.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#62",
-        "path": []
+            "x": 125.0,
+            "y": 670.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#4",
-          "pinName": "Y3"
+          "compName": "GUIdemux2#0",
+          "pinName": "Y11"
         },
         "pin2": {
           "compName": "GUIandor414#5",
-          "pinName": "C3"
+          "pinName": "B"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 200.0,
-            "y": 610.0
-          },
-          {
-            "x": 200.0,
-            "y": 720.0
-          },
-          {
-            "x": 140.0,
-            "y": 720.0
+            "x": 120.0,
+            "y": 80.0
           },
           {
-            "x": 140.0,
-            "y": 760.0
+            "x": 120.0,
+            "y": 820.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D1"
+          "compName": "GUIand41#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#77",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 420.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 225.0,
+            "y": 570.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D3"
+          "compName": "GUIandor414#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D2"
+          "compName": "GUIand41#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIandor414#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 60.0,
-            "y": 950.0
+            "x": 215.0,
+            "y": 870.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram2#3",
-          "pinName": "D4"
-        },
-        "name": "unnamedWire#68",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C1"
+          "compName": "GUIand41#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 305.0,
-            "y": 640.0
-          },
-          {
-            "x": 305.0,
-            "y": 745.0
-          },
-          {
-            "x": 245.0,
-            "y": 745.0
+            "x": 140.0,
+            "y": 375.0
           },
           {
-            "x": 245.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y2"
+          "compName": "GUIram2#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C2"
+          "compName": "GUIand41#1",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 300.0,
-            "y": 650.0
-          },
-          {
-            "x": 300.0,
-            "y": 740.0
-          },
-          {
-            "x": 240.0,
-            "y": 740.0
+            "x": 140.0,
+            "y": 385.0
           },
           {
-            "x": 240.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#0",
-          "pinName": "Y4"
+          "compName": "GUIram2#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#1",
-          "pinName": "C4"
+          "compName": "GUIand41#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#83",
         "path": [
           {
-            "x": 290.0,
-            "y": 520.0
-          },
-          {
-            "x": 290.0,
-            "y": 580.0
-          },
-          {
-            "x": 230.0,
-            "y": 580.0
+            "x": 140.0,
+            "y": 395.0
           },
           {
-            "x": 230.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y1"
+          "compName": "GUIram2#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB1"
+          "compName": "GUIand41#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 330.0,
-            "y": 790.0
+            "x": 140.0,
+            "y": 405.0
           },
           {
-            "x": 330.0,
-            "y": 450.0
+            "x": 140.0,
+            "y": 410.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y2"
+          "compName": "GUIram2#1",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB2"
+          "compName": "GUIandor414#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#85",
         "path": [
           {
-            "x": 335.0,
-            "y": 800.0
+            "x": 140.0,
+            "y": 525.0
           },
           {
-            "x": 335.0,
-            "y": 550.0
+            "x": 140.0,
+            "y": 530.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "GUIram2#1",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIandor414#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 65.0,
-            "y": 1050.0
+            "x": 140.0,
+            "y": 535.0
+          },
+          {
+            "x": 140.0,
+            "y": 540.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y3"
+          "compName": "GUIram2#1",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C3"
+          "compName": "GUIandor414#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 660.0
-          },
-          {
-            "x": 295.0,
-            "y": 735.0
-          },
+        "name": "unnamedWire#87",
+        "path": [
           {
-            "x": 235.0,
-            "y": 735.0
+            "x": 140.0,
+            "y": 545.0
           },
           {
-            "x": 235.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#1",
-          "pinName": "Y4"
+          "compName": "GUIram2#1",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#2",
-          "pinName": "C4"
+          "compName": "GUIandor414#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#88",
         "path": [
           {
-            "x": 290.0,
-            "y": 670.0
-          },
-          {
-            "x": 290.0,
-            "y": 730.0
-          },
-          {
-            "x": 230.0,
-            "y": 730.0
+            "x": 140.0,
+            "y": 555.0
           },
           {
-            "x": 230.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 560.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "GUIram2#2",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#89",
         "path": [
           {
-            "x": 75.0,
-            "y": 1250.0
+            "x": 140.0,
+            "y": 675.0
+          },
+          {
+            "x": 140.0,
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand41#2",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "C1"
+          "compName": "GUIand41#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#9",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIram2#2",
+          "pinName": "QB2"
+        },
+        "pin2": {
+          "compName": "GUIandor414#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 210.0,
-            "y": 330.0
-          },
-          {
-            "x": 210.0,
-            "y": 430.0
-          },
-          {
-            "x": 150.0,
-            "y": 430.0
+            "x": 140.0,
+            "y": 685.0
           },
           {
-            "x": 150.0,
-            "y": 440.0
+            "x": 140.0,
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D3"
+          "compName": "GUIram2#2",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIandor414#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 70.0,
-            "y": 1150.0
+            "x": 140.0,
+            "y": 695.0
+          },
+          {
+            "x": 140.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y01"
+          "compName": "GUIram2#2",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#3",
-          "pinName": "B"
+          "compName": "GUIandor414#1",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 140.0,
+            "y": 705.0
           },
           {
-            "x": 130.0,
-            "y": 520.0
+            "x": 140.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y3"
+          "compName": "GUIram2#3",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB3"
+          "compName": "GUIandor414#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": [
           {
-            "x": 340.0,
-            "y": 810.0
+            "x": 140.0,
+            "y": 825.0
           },
           {
-            "x": 340.0,
-            "y": 650.0
+            "x": 140.0,
+            "y": 830.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y00"
+          "compName": "GUIram2#3",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand41#2",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 135.0,
-            "y": 50.0
+            "x": 140.0,
+            "y": 835.0
           },
           {
-            "x": 135.0,
-            "y": 370.0
+            "x": 140.0,
+            "y": 840.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIandor414#2",
-          "pinName": "Y4"
+          "compName": "GUIram2#3",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QB4"
+          "compName": "GUIandor414#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 345.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 845.0
           },
           {
-            "x": 345.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y11"
+          "compName": "GUIram2#3",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIandor414#5",
-          "pinName": "B"
+          "compName": "GUIandor414#2",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#96",
         "path": [
           {
-            "x": 120.0,
-            "y": 80.0
+            "x": 140.0,
+            "y": 855.0
           },
           {
-            "x": 120.0,
-            "y": 820.0
+            "x": 140.0,
+            "y": 860.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdemux2#0",
-          "pinName": "Y10"
+          "compName": "GUIram2#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIandor414#4",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 125.0,
-            "y": 70.0
+            "x": 140.0,
+            "y": 335.0
           },
           {
-            "x": 125.0,
-            "y": 670.0
+            "x": 140.0,
+            "y": 330.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIandor414#0",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#98",
         "path": [
           {
-            "x": 225.0,
-            "y": 570.0
+            "x": 140.0,
+            "y": 345.0
+          },
+          {
+            "x": 140.0,
+            "y": 340.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIram2#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIand41#1",
-          "pinName": "B"
+          "compName": "GUIand41#2",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 230.0,
-            "y": 420.0
+            "x": 140.0,
+            "y": 355.0
+          },
+          {
+            "x": 140.0,
+            "y": 350.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3499,5 +3520,6 @@ mograsim version: 0.1.3
         }
       }
     }
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 26a25cf..093657b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 40.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,15 +17,8 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "I2",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 5.0
-      },
-      "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,7 +26,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "S1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,12 +35,22 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "S2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "Y",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -58,64 +62,42 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 60.0,
-          "y": 40.0
+          "x": 35.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 35.0,
-          "y": 55.0
+          "x": 60.0,
+          "y": 40.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
           "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 15.0,
-            "y": 87.5
+            "x": 25.0,
+            "y": 12.5
           },
           {
-            "x": 15.0,
-            "y": 70.0
+            "x": 25.0,
+            "y": 35.0
           }
         ]
       },
@@ -142,58 +124,81 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "S1"
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
           "compName": "GUINandGate#1",
-          "pinName": "A"
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#5",
         "path": [
           {
             "x": 25.0,
-            "y": 12.5
+            "y": 62.5
           },
           {
             "x": 25.0,
-            "y": 35.0
+            "y": 45.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I1"
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 25.0,
-            "y": 62.5
+            "x": 15.0,
+            "y": 87.5
           },
           {
-            "x": 25.0,
-            "y": 45.0
+            "x": 15.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUINandGate#3",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#8"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
-        "name": "unnamedWire#10"
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -204,5 +209,6 @@ mograsim version: 0.1.3
     "pinLabelMargin": 0.5
   },
   "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "default"
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index ef71748..a9234a2 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 100.0,
@@ -6,50 +5,56 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 25.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 45.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,31 +62,35 @@ mograsim version: 0.1.3
         "y": 85.0
       },
       "name": "B3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,7 +98,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -97,7 +107,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -105,7 +116,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -113,12 +125,22 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -130,10 +152,28 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
+        "pos": {
+          "x": 65.0,
+          "y": 52.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
+        "pos": {
+          "x": 65.0,
+          "y": 77.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
           "x": 20.0,
-          "y": 2.5
+          "y": 102.5
         },
         "params": 1
       },
@@ -148,37 +188,55 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
           "x": 20.0,
-          "y": 102.5
+          "y": 27.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 65.0,
+          "x": 20.0,
           "y": 77.5
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "name": "GUINandGate#6",
+        "pos": {
+          "x": 20.0,
+          "y": 127.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
+        "pos": {
+          "x": 20.0,
+          "y": 177.5
+        },
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
           "x": 65.0,
-          "y": 52.5
+          "y": 2.5
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 6.5,
-          "y": 66.5
+          "x": 65.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -193,10 +251,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 4.0,
-          "y": 41.5
+          "x": 6.5,
+          "y": 66.5
         },
         "params": 1
       },
@@ -211,10 +269,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 4.0,
-          "y": 141.5
+          "y": 41.5
         },
         "params": 1
       },
@@ -228,71 +286,90 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 65.0,
-          "y": 27.5
+          "x": 4.0,
+          "y": 141.5
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
-        "pos": {
-          "x": 65.0,
-          "y": 2.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
-        "pos": {
-          "x": 20.0,
-          "y": 77.5
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "params": 1
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 62.5
+          },
+          {
+            "x": 15.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 20.0,
-          "y": 27.5
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 87.5
+          },
+          {
+            "x": 17.5,
+            "y": 57.5
+          }
+        ]
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
-        "pos": {
-          "x": 20.0,
-          "y": 177.5
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10"
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
-        "pos": {
-          "x": 20.0,
-          "y": 127.5
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#11"
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#14"
+        "name": "unnamedWire#12"
       },
       {
         "pin1": {
@@ -307,14 +384,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16"
+        "name": "unnamedWire#14"
       },
       {
         "pin1": {
@@ -335,14 +412,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#18"
+        "name": "unnamedWire#16"
       },
       {
         "pin1": {
@@ -361,32 +438,47 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#19"
+        "name": "unnamedWire#18"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#21",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 192.5
-          }
-        ]
+        "name": "unnamedWire#19"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 17.5,
+            "y": 112.5
+          },
+          {
+            "x": 17.5,
+            "y": 107.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#6",
@@ -396,22 +488,18 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 45.0,
-            "y": 37.5
-          },
-          {
-            "x": 45.0,
-            "y": 17.5
+            "x": 5.0,
+            "y": 192.5
           }
         ]
       },
@@ -438,22 +526,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 50.0,
-            "y": 87.5
+            "x": 45.0,
+            "y": 37.5
           },
           {
-            "x": 50.0,
-            "y": 42.5
+            "x": 45.0,
+            "y": 17.5
           }
         ]
       },
@@ -480,22 +568,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 55.0,
-            "y": 137.5
+            "x": 50.0,
+            "y": 87.5
           },
           {
-            "x": 55.0,
-            "y": 67.5
+            "x": 50.0,
+            "y": 42.5
           }
         ]
       },
@@ -522,22 +610,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
+          "compName": "GUINandGate#6",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 60.0,
-            "y": 187.5
+            "x": 55.0,
+            "y": 137.5
           },
           {
-            "x": 60.0,
-            "y": 92.5
+            "x": 55.0,
+            "y": 67.5
           }
         ]
       },
@@ -564,107 +652,43 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8"
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
-        },
-        "pin2": {
           "compName": "GUINandGate#7",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 237.5
-          },
-          {
-            "x": 10.0,
-            "y": 182.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "GUINandGate#11",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 15.0,
-            "y": 212.5
+            "x": 60.0,
+            "y": 187.5
           },
           {
-            "x": 15.0,
-            "y": 132.5
+            "x": 60.0,
+            "y": 92.5
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#3",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 17.5,
-            "y": 87.5
+            "y": 137.5
           },
           {
             "x": 17.5,
-            "y": 57.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 62.5
-          },
-          {
-            "x": 15.0,
-            "y": 7.5
+            "y": 157.5
           }
         ]
       },
@@ -682,46 +706,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 12.5,
-            "y": 187.5
-          },
-          {
-            "x": 12.5,
-            "y": 82.5
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10"
+        "name": "unnamedWire#32",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
+          "compName": "GUINandGate#11",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
@@ -745,95 +761,93 @@ mograsim version: 0.1.3
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 17.5,
-            "y": 137.5
+            "x": 12.5,
+            "y": 187.5
           },
           {
-            "x": 17.5,
-            "y": 157.5
+            "x": 12.5,
+            "y": 82.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#12"
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 212.5
+          },
+          {
+            "x": 15.0,
+            "y": 132.5
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A3"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 17.5,
-            "y": 112.5
+            "x": 10.0,
+            "y": 237.5
           },
           {
-            "x": 17.5,
-            "y": 107.5
+            "x": 10.0,
+            "y": 182.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#8"
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -843,5 +857,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 494332c..5951bdc 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 150.0,
@@ -6,90 +5,101 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 45.0
       },
-      "name": "C1",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 55.0
       },
-      "name": "SB",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 65.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 75.0
       },
-      "name": "C2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 85.0
       },
-      "name": "SC",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 105.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 115.0
       },
-      "name": "C3",
-      "logicWidth": 1
+      "name": "C1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 125.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "C2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 135.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "C3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -97,31 +107,35 @@ mograsim version: 0.1.3
         "y": 145.0
       },
       "name": "C4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 15.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "SB",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 25.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "SC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -129,7 +143,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -137,7 +152,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -145,7 +161,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -153,21 +170,13 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 50.0,
-          "y": 620.0
-        },
-        "params": 1
-      },
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -179,10 +188,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 50.0,
-          "y": 720.0
+          "y": 620.0
         },
         "params": 1
       },
@@ -196,49 +205,58 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInot4",
-        "name": "GUInot4#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 75.0,
-          "y": 250.0
-        }
+          "x": 50.0,
+          "y": 720.0
+        },
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 29.0,
-          "y": 634.0
+          "x": 152.5,
+          "y": 15.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 29.0,
-          "y": 584.0
+          "x": 152.5,
+          "y": 65.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 29.0,
-          "y": 684.0
+          "x": 152.5,
+          "y": 115.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "name": "GUINandGate#7",
         "pos": {
           "x": 152.5,
-          "y": 65.0
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUInot4",
+        "name": "GUInot4#0",
+        "pos": {
+          "x": 75.0,
+          "y": 250.0
+        }
+      },
       {
         "id": "GUIsel2_4",
         "name": "GUIsel2_4#0",
@@ -248,97 +266,134 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 152.5,
-          "y": 15.0
+          "x": 29.0,
+          "y": 584.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 152.5,
-          "y": 165.0
+          "x": 29.0,
+          "y": 634.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 152.5,
-          "y": 115.0
+          "x": 29.0,
+          "y": 684.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "SC"
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
         "path": [
           {
-            "x": 30.0,
-            "y": 125.0
+            "x": 25.0,
+            "y": 25.0
+          },
+          {
+            "x": 25.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 75.0
+          },
+          {
+            "x": 20.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "pinName": "Y1"
         },
         "pin2": {
           "compName": "GUInot4#0",
-          "pinName": "A4"
+          "pinName": "A1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
+          "compName": "GUInot4#0",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel2_4#0",
           "pinName": "Y3"
         },
-        "name": "unnamedWire#35",
+        "pin2": {
+          "compName": "GUInot4#0",
+          "pinName": "A3"
+        },
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUInot4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "SC"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#14",
         "path": [
           {
             "x": 30.0,
@@ -360,14 +415,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": [
           {
             "x": 30.0,
@@ -387,6 +442,23 @@ mograsim version: 0.1.3
         "name": "unnamedWire#17",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 125.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#2",
@@ -402,16 +474,25 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C1"
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 175.0
+          },
+          {
+            "x": 15.0,
+            "y": 275.0
+          }
+        ]
+      },
+      {
         "pin1": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
@@ -431,13 +512,13 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C3"
+          "pinName": "C1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -454,24 +535,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInot4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "C3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 255.0
-          },
-          {
-            "x": 115.0,
-            "y": 20.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -488,21 +560,21 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "GUInot4#0",
-          "pinName": "Y3"
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 125.0,
-            "y": 275.0
+            "x": 115.0,
+            "y": 255.0
           },
           {
-            "x": 125.0,
-            "y": 120.0
+            "x": 115.0,
+            "y": 20.0
           }
         ]
       },
@@ -529,22 +601,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUInot4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 135.0,
-            "y": 580.0
+            "x": 125.0,
+            "y": 275.0
           },
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 125.0,
+            "y": 120.0
           }
         ]
       },
@@ -571,204 +643,156 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 25.0,
-            "y": 525.0
+            "x": 135.0,
+            "y": 580.0
           },
           {
-            "x": 25.0,
-            "y": 345.0
+            "x": 135.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "A2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "pinName": "A2"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 20.0,
-            "y": 475.0
+            "x": 10.0,
+            "y": 225.0
           },
           {
-            "x": 20.0,
-            "y": 335.0
+            "x": 10.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 15.0,
-            "y": 425.0
+            "x": 140.0,
+            "y": 630.0
           },
           {
-            "x": 15.0,
-            "y": 325.0
+            "x": 140.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 10.0,
-            "y": 375.0
+            "x": 145.0,
+            "y": 680.0
           },
           {
-            "x": 10.0,
-            "y": 315.0
+            "x": 145.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 20.0,
-            "y": 75.0
+            "x": 150.0,
+            "y": 730.0
           },
           {
-            "x": 20.0,
-            "y": 265.0
+            "x": 150.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 25.0
-          },
-          {
-            "x": 25.0,
-            "y": 255.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 630.0
-          },
-          {
-            "x": 140.0,
-            "y": 80.0
-          }
-        ]
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#5",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 325.0
-          },
-          {
-            "x": 5.0,
-            "y": 305.0
-          }
-        ]
+        "name": "unnamedWire#34",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 150.0,
-            "y": 730.0
-          },
-          {
-            "x": 150.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
@@ -793,116 +817,111 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 145.0,
-            "y": 680.0
+            "x": 5.0,
+            "y": 325.0
           },
           {
-            "x": 145.0,
-            "y": 130.0
+            "x": 5.0,
+            "y": 305.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A2"
+          "pinName": "B1"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "pinName": "B1"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
             "x": 10.0,
-            "y": 225.0
+            "y": 375.0
           },
           {
             "x": 10.0,
-            "y": 285.0
+            "y": 315.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
-        },
-        "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "B2"
         },
         "pin2": {
           "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "pinName": "B2"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 15.0,
-            "y": 175.0
+            "y": 425.0
           },
           {
             "x": 15.0,
-            "y": 275.0
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUInot4#0",
-          "pinName": "A2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 475.0
+          },
+          {
+            "x": 20.0,
+            "y": 335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 25.0,
+            "y": 525.0
+          },
+          {
+            "x": 25.0,
+            "y": 345.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -912,5 +931,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 82b991e..48c22e5 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 20.0,
@@ -9,7 +8,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "A",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "B",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,12 +26,22 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 7.5,
+          "y": 15.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -42,10 +53,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 7.5,
-          "y": 15.0
+          "x": 35.0,
+          "y": 27.5
         },
         "params": 1
       },
@@ -60,28 +71,19 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 36.5
-        },
-        "params": 1
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
-        "pos": {
-          "x": 35.0,
-          "y": 27.5
+          "y": 11.5
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 11.5
+          "y": 36.5
         },
         "params": 1
       },
@@ -95,34 +97,52 @@ mograsim version: 0.1.3
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#9"
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "B"
+        },
+        "pin2": {
           "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "pin2": {
+        "name": "unnamedWire#1",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUINandGate#2",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 42.5
-          }
-        ]
+        "name": "unnamedWire#10"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#11"
       },
       {
         "pin1": {
@@ -130,57 +150,44 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#2",
         "path": [
           {
             "x": 5.0,
-            "y": 7.5
+            "y": 20.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 30.0,
-            "y": 32.5
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
@@ -201,72 +208,68 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#10"
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4"
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 32.5
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#7",
         "path": [
           {
             "x": 5.0,
-            "y": 30.0
+            "y": 7.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": [
           {
             "x": 5.0,
-            "y": 20.0
+            "y": 42.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11"
+        "name": "unnamedWire#9"
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -276,5 +279,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 81536b1..64f12af 100644 (file)
@@ -1,87 +1,87 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 270.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 85.0
-      },
-      "name": "ORAMn",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 155.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "A0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 265.0
+        "y": 165.0
       },
-      "name": "IQn+3",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 175.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 255.0
+        "y": 185.0
       },
-      "name": "IQn",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 195.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 205.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 215.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 65.0
+        "x": 0.0,
+        "y": 225.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 95.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,199 +89,233 @@ mograsim version: 0.1.3
         "y": 105.0
       },
       "name": "Cn",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 115.0
+        "y": 55.0
       },
-      "name": "OQn+3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 115.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 125.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 105.0
+        "x": 0.0,
+        "y": 135.0
       },
-      "name": "OQn",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 145.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 75.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "A0",
-      "logicWidth": 1
+      "name": "F\u003d0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 85.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 75.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 65.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 235.0
+        "y": 55.0
       },
-      "name": "IRAMn",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 45.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 95.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "ORAMn+3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "F\u003d0",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 15.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 245.0
+        "y": 5.0
       },
-      "name": "IRAMn+3",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 75.0
+        "x": 0.0,
+        "y": 255.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "IQn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 265.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "IQn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 235.0
       },
-      "name": "B0",
-      "logicWidth": 1
+      "name": "IRAMn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 135.0
+        "y": 245.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "IRAMn+3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 205.0
+        "x": 35.0,
+        "y": 105.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OQn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 115.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "OQn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 215.0
+        "x": 35.0,
+        "y": 85.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "ORAMn",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 225.0
+        "x": 35.0,
+        "y": 95.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "ORAMn+3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 65.0
+      },
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -289,7 +323,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "Y1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -297,7 +332,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "Y2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -305,7 +341,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "Y3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -313,107 +350,118 @@ mograsim version: 0.1.3
         "y": 35.0
       },
       "name": "Y4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
+        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2310.0
+          "x": 240.0,
+          "y": 2110.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 144.0,
-          "y": 2524.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#1",
+        "id": "GUIAm2901DestDecode",
+        "name": "GUIAm2901DestDecode#0",
         "pos": {
-          "x": 45.0,
-          "y": 2510.0
+          "x": 15.0,
+          "y": 45.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 139.0,
-          "y": 2514.0
+          "x": 160.0,
+          "y": 75.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 234.0,
-          "y": 2524.0
+          "x": 320.0,
+          "y": 440.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 219.0,
-          "y": 2494.0
-        },
-        "params": 1
+          "x": 190.0,
+          "y": 65.0
+        }
       },
       {
-        "id": "GUIAm2901DestDecode",
-        "name": "GUIAm2901DestDecode#0",
+        "id": "GUIdff4",
+        "name": "GUIdff4#0",
         "pos": {
-          "x": 15.0,
-          "y": 45.0
+          "x": 90.0,
+          "y": 2490.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#0",
         "pos": {
-          "x": 39.0,
-          "y": 2634.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2220.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "id": "GUIdlatch4",
+        "name": "GUIdlatch4#1",
         "pos": {
-          "x": 34.0,
-          "y": 2624.0
-        },
-        "params": 1
+          "x": 160.0,
+          "y": 2275.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "id": "GUImux1_4",
+        "name": "GUImux1_4#0",
         "pos": {
-          "x": 279.0,
-          "y": 2114.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 135.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIor4",
+        "name": "GUIor4#0",
         "pos": {
-          "x": 154.0,
-          "y": 89.0
-        },
-        "params": 1
+          "x": 275.0,
+          "y": 445.0
+        }
+      },
+      {
+        "id": "GUIram4",
+        "name": "GUIram4#0",
+        "pos": {
+          "x": 95.0,
+          "y": 2220.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
+        "pos": {
+          "x": 45.0,
+          "y": 2310.0
+        }
+      },
+      {
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#1",
+        "pos": {
+          "x": 45.0,
+          "y": 2510.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -426,214 +474,210 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 154.0,
-          "y": 2319.0
+          "y": 89.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 154.0,
-          "y": 2264.0
+          "x": 234.0,
+          "y": 2254.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 34.0,
-          "y": 2324.0
+          "x": 129.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 2314.0
+          "x": 134.0,
+          "y": 2504.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 219.0,
-          "y": 2224.0
+          "x": 139.0,
+          "y": 2514.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 29.0,
-          "y": 2334.0
+          "x": 144.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 229.0,
-          "y": 2244.0
+          "x": 219.0,
+          "y": 2494.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 224.0,
-          "y": 2234.0
+          "x": 234.0,
+          "y": 2524.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 234.0,
-          "y": 2254.0
+          "x": 34.0,
+          "y": 2624.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#18",
         "pos": {
-          "x": 134.0,
-          "y": 2504.0
+          "x": 39.0,
+          "y": 2634.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 129.0,
-          "y": 2494.0
+          "x": 279.0,
+          "y": 2114.0
         },
         "params": 1
       },
       {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#1",
-        "pos": {
-          "x": 160.0,
-          "y": 2275.0
-        }
-      },
-      {
-        "id": "GUIdlatch4",
-        "name": "GUIdlatch4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 160.0,
-          "y": 2220.0
-        }
+          "x": 154.0,
+          "y": 2264.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#40",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 314.0,
-          "y": 449.0
+          "x": 294.0,
+          "y": 2144.0
         },
         "params": 1
       },
       {
-        "id": "GUIdff4",
-        "name": "GUIdff4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 90.0,
-          "y": 2490.0
-        }
+          "x": 329.0,
+          "y": 949.0
+        },
+        "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 320.0,
-          "y": 440.0
+          "x": 254.0,
+          "y": 2089.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#36",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 9.0,
-          "y": 2384.0
+          "x": 259.0,
+          "y": 2094.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 160.0,
-          "y": 75.0
+          "x": 264.0,
+          "y": 2099.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#35",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 24.0,
-          "y": 2414.0
+          "x": 269.0,
+          "y": 2104.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#38",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 19.0,
-          "y": 2434.0
+          "x": 254.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#37",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 14.0,
-          "y": 2424.0
+          "x": 259.0,
+          "y": 459.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#39",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 24.0,
-          "y": 2444.0
+          "x": 264.0,
+          "y": 469.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#29",
         "pos": {
-          "x": 190.0,
-          "y": 65.0
-        }
+          "x": 269.0,
+          "y": 479.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "GUImux1_4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 275.0,
-          "y": 135.0
-        }
+          "x": 154.0,
+          "y": 2319.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -644,6 +688,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#31",
+        "pos": {
+          "x": 14.0,
+          "y": 2364.0
+        },
+        "params": 1
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#32",
@@ -655,10 +708,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#31",
+        "name": "WireCrossPoint#33",
         "pos": {
           "x": 14.0,
-          "y": 2364.0
+          "y": 2394.0
         },
         "params": 1
       },
@@ -673,789 +726,769 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "name": "WireCrossPoint#35",
         "pos": {
-          "x": 14.0,
-          "y": 2394.0
+          "x": 24.0,
+          "y": 2414.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#36",
         "pos": {
-          "x": 269.0,
-          "y": 2104.0
+          "x": 9.0,
+          "y": 2384.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "name": "WireCrossPoint#37",
         "pos": {
-          "x": 264.0,
-          "y": 2099.0
+          "x": 14.0,
+          "y": 2424.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "name": "WireCrossPoint#38",
         "pos": {
-          "x": 259.0,
-          "y": 459.0
+          "x": 19.0,
+          "y": 2434.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#39",
         "pos": {
-          "x": 254.0,
-          "y": 449.0
+          "x": 24.0,
+          "y": 2444.0
         },
         "params": 1
       },
-      {
-        "id": "GUIor4",
-        "name": "GUIor4#0",
-        "pos": {
-          "x": 275.0,
-          "y": 445.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#29",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 269.0,
-          "y": 479.0
+          "x": 39.0,
+          "y": 2314.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode",
-        "name": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-        "pos": {
-          "x": 240.0,
-          "y": 2110.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#40",
         "pos": {
-          "x": 264.0,
-          "y": 469.0
+          "x": 314.0,
+          "y": 449.0
         },
         "params": 1
       },
       {
-        "id": "GUIram4",
-        "name": "GUIram4#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 95.0,
-          "y": 2220.0
-        }
+          "x": 34.0,
+          "y": 2324.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 329.0,
-          "y": 949.0
+          "x": 29.0,
+          "y": 2334.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 294.0,
-          "y": 2144.0
+          "x": 219.0,
+          "y": 2224.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 259.0,
-          "y": 2094.0
+          "x": 224.0,
+          "y": 2234.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 254.0,
-          "y": 2089.0
+          "x": 229.0,
+          "y": 2244.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA2"
-        },
-        "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D2"
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA1"
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I8"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA4"
+          "compName": "_submodelinterface",
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D4"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I7"
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 150.0
+          },
+          {
+            "x": 5.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QA3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "D3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB1"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#100",
         "path": [
           {
-            "x": 150.0,
-            "y": 2265.0
+            "x": 290.0,
+            "y": 2135.0
           },
           {
-            "x": 150.0,
-            "y": 2280.0
+            "x": 290.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#101",
         "path": [
           {
-            "x": 255.0,
-            "y": 190.0
+            "x": 295.0,
+            "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#22",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#111",
-        "path": [
-          {
-            "x": 260.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#102",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#114",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#103",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
-        "name": "unnamedWire#115",
-        "path": [
-          {
-            "x": 15.0,
-            "y": 2095.0
-          }
-        ]
+        "name": "unnamedWire#104",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
-        "path": [
-          {
-            "x": 265.0,
-            "y": 210.0
-          }
-        ]
+        "name": "unnamedWire#105",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I1_4"
+          "compName": "GUIor4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#113",
-        "path": [
-          {
-            "x": 270.0,
-            "y": 220.0
-          }
-        ]
+        "name": "unnamedWire#106",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A2"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#107",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIor4#0",
           "pinName": "A3"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB3"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D3"
+          "compName": "GUIor4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#41",
-        "path": [
-          {
-            "x": 140.0,
-            "y": 2285.0
-          },
-          {
-            "x": 140.0,
-            "y": 2300.0
-          }
-        ]
+        "name": "unnamedWire#109",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 20.0,
-            "y": 2100.0
+            "x": 155.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB2"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D2"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#110",
         "path": [
           {
-            "x": 145.0,
-            "y": 2275.0
-          },
-          {
-            "x": 145.0,
-            "y": 2290.0
+            "x": 255.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#111",
         "path": [
           {
-            "x": 5.0,
-            "y": 2350.0
-          },
-          {
-            "x": 5.0,
-            "y": 2345.0
+            "x": 260.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#112",
         "path": [
           {
-            "x": 100.0,
-            "y": 1050.0
-          },
-          {
-            "x": 100.0,
-            "y": 2175.0
+            "x": 265.0,
+            "y": 210.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram4#0",
-          "pinName": "QB4"
+          "compName": "WireCrossPoint#29",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "D4"
+          "compName": "GUImux1_4#0",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#113",
         "path": [
           {
-            "x": 135.0,
-            "y": 2295.0
-          },
-          {
-            "x": 135.0,
-            "y": 2310.0
+            "x": 270.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#114",
         "path": [
           {
-            "x": 175.0,
-            "y": 1250.0
-          },
-          {
-            "x": 175.0,
-            "y": 2195.0
+            "x": 10.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D1"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#115",
         "path": [
           {
-            "x": 180.0,
-            "y": 1150.0
-          },
-          {
-            "x": 180.0,
-            "y": 2185.0
+            "x": 15.0,
+            "y": 2095.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D4"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#116",
         "path": [
           {
-            "x": 165.0,
-            "y": 1450.0
-          },
-          {
-            "x": 165.0,
-            "y": 2215.0
+            "x": 20.0,
+            "y": 2100.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "IRAMn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "D3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#117",
         "path": [
           {
-            "x": 170.0,
-            "y": 1350.0
+            "x": 5.0,
+            "y": 2350.0
           },
           {
-            "x": 170.0,
-            "y": 2205.0
+            "x": 5.0,
+            "y": 2345.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#31",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "GUINandGate#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#100",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 2135.0
-          },
-          {
-            "x": 290.0,
-            "y": 2100.0
-          }
-        ]
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
+        },
+        "name": "unnamedWire#120",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
+          "compName": "WireCrossPoint#31",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#25",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#123",
         "path": [
           {
-            "x": 295.0,
+            "x": 25.0,
             "y": 2105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
+          "compName": "WireCrossPoint#30",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#36",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#52",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#128",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#33",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#0",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
+          "compName": "WireCrossPoint#34",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#35",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#131",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#37",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
+        },
+        "name": "unnamedWire#132",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#38",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
+        },
+        "name": "unnamedWire#133",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#39",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
+        },
+        "name": "unnamedWire#134",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "IRAMn+3"
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
+        },
+        "name": "unnamedWire#135",
         "path": [
           {
-            "x": 230.0,
-            "y": 170.0
+            "x": 5.0,
+            "y": 2450.0
+          },
+          {
+            "x": 5.0,
+            "y": 2455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#36",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_2"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#136",
         "path": [
           {
-            "x": 225.0,
-            "y": 160.0
+            "x": 10.0,
+            "y": 2585.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#37",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#56",
-        "path": []
+        "name": "unnamedWire#137",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 2595.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#29",
+          "compName": "WireCrossPoint#38",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIor4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#109",
-        "path": []
+        "name": "unnamedWire#138",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 2605.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#39",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "I0_4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#139",
         "path": [
           {
-            "x": 235.0,
-            "y": 180.0
+            "x": 25.0,
+            "y": 2615.0
           }
         ]
       },
@@ -1473,1923 +1506,1929 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "C"
+          "compName": "GUIram4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#142",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "LSH"
+          "pinName": "RAMWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#144",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIand#0",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#145"
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIram4#0",
+          "pinName": "WE"
+        },
+        "name": "unnamedWire#146",
         "path": [
           {
-            "x": 55.0,
-            "y": 90.0
+            "x": 230.0,
+            "y": 70.0
           },
           {
-            "x": 55.0,
-            "y": 125.0
+            "x": 230.0,
+            "y": 105.0
           },
           {
-            "x": 40.0,
-            "y": 125.0
+            "x": 90.0,
+            "y": 105.0
+          },
+          {
+            "x": 90.0,
+            "y": 2305.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "QWE"
         },
         "pin2": {
           "compName": "GUIdff4#0",
-          "pinName": "C"
+          "pinName": "WE"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#147",
         "path": [
           {
-            "x": 155.0,
-            "y": 2485.0
-          },
-          {
-            "x": 80.0,
-            "y": 2485.0
+            "x": 85.0,
+            "y": 100.0
           },
           {
-            "x": 80.0,
-            "y": 2495.0
+            "x": 85.0,
+            "y": 2505.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2901DestDecode#0",
-          "pinName": "NSH"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#148",
         "path": [
           {
-            "x": 60.0,
-            "y": 50.0
-          },
-          {
-            "x": 60.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 80.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 70.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RSH"
+          "compName": "GUImux1_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#149",
         "path": [
           {
-            "x": 65.0,
-            "y": 60.0
-          },
-          {
-            "x": 65.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 140.0
           },
           {
-            "x": 30.0,
-            "y": 115.0
+            "x": 335.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#151",
         "path": [
           {
-            "x": 35.0,
-            "y": 2525.0
+            "x": 335.0,
+            "y": 160.0
+          },
+          {
+            "x": 335.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#152",
         "path": [
           {
-            "x": 40.0,
-            "y": 2515.0
+            "x": 325.0,
+            "y": 170.0
+          },
+          {
+            "x": 325.0,
+            "y": 350.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A0"
+          "compName": "GUIor4#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A0"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
-        "path": [
-          {
-            "x": 80.0,
-            "y": 1550.0
-          },
-          {
-            "x": 80.0,
-            "y": 2225.0
-          }
-        ]
+        "name": "unnamedWire#153",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#40",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "SC"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#154",
         "path": [
           {
-            "x": 30.0,
-            "y": 2535.0
+            "x": 315.0,
+            "y": 445.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
+          "compName": "WireCrossPoint#40",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A2"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#155",
         "path": [
           {
-            "x": 70.0,
-            "y": 1750.0
-          },
-          {
-            "x": 70.0,
-            "y": 2245.0
+            "x": 315.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "A1"
+          "pinName": "F\u003d0"
+        },
+        "name": "unnamedWire#156",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 1650.0
-          },
-          {
-            "x": 75.0,
-            "y": 2235.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "A3"
+          "compName": "GUIdff4#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 65.0,
-            "y": 1850.0
+            "x": 155.0,
+            "y": 2485.0
           },
           {
-            "x": 65.0,
-            "y": 2255.0
+            "x": 80.0,
+            "y": 2485.0
+          },
+          {
+            "x": 80.0,
+            "y": 2495.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "LSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 55.0,
-            "y": 2050.0
+            "y": 90.0
           },
           {
             "x": 55.0,
-            "y": 2275.0
+            "y": 125.0
+          },
+          {
+            "x": 40.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B0"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "NSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B0"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#19",
         "path": [
           {
             "x": 60.0,
-            "y": 1950.0
+            "y": 50.0
           },
           {
             "x": 60.0,
-            "y": 2265.0
+            "y": 120.0
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "B3"
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "I6"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 45.0,
-            "y": 2250.0
+            "x": 10.0,
+            "y": 250.0
           },
           {
-            "x": 45.0,
-            "y": 2295.0
+            "x": 10.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901DestDecode#0",
+          "pinName": "RSH"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 50.0,
-            "y": 2150.0
+            "x": 65.0,
+            "y": 60.0
           },
           {
-            "x": 50.0,
-            "y": 2285.0
+            "x": 65.0,
+            "y": 115.0
+          },
+          {
+            "x": 30.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2665.0
-          },
-          {
-            "x": 25.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2630.0
-          },
-          {
-            "x": 30.0,
-            "y": 2555.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#23",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 335.0,
-            "y": 160.0
-          },
-          {
-            "x": 335.0,
-            "y": 250.0
+            "x": 40.0,
+            "y": 2515.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 315.0,
-            "y": 445.0
+            "x": 35.0,
+            "y": 2525.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#40",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIsel3_4#1",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#26",
         "path": [
           {
-            "x": 315.0,
-            "y": 455.0
+            "x": 30.0,
+            "y": 2535.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "A0"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 325.0,
-            "y": 170.0
+            "x": 80.0,
+            "y": 1550.0
           },
           {
-            "x": 325.0,
-            "y": 350.0
+            "x": 80.0,
+            "y": 2225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIor4#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#40",
-          "pinName": ""
+          "compName": "GUIram4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#153",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 1650.0
+          },
+          {
+            "x": 75.0,
+            "y": 2235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q2"
+          "compName": "GUIram4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 225.0,
-            "y": 2505.0
+            "x": 70.0,
+            "y": 1750.0
           },
           {
-            "x": 225.0,
-            "y": 2315.0
+            "x": 70.0,
+            "y": 2245.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F\u003d0"
-        },
-        "name": "unnamedWire#156",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 220.0,
-            "y": 2305.0
+            "x": 130.0,
+            "y": 350.0
+          },
+          {
+            "x": 130.0,
+            "y": 2115.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q4"
+          "compName": "GUIram4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 235.0,
-            "y": 2335.0
+            "x": 65.0,
+            "y": 1850.0
+          },
+          {
+            "x": 65.0,
+            "y": 2255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B0"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Q3"
+          "compName": "GUIram4#0",
+          "pinName": "B0"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 230.0,
-            "y": 2515.0
+            "x": 60.0,
+            "y": 1950.0
           },
           {
-            "x": 230.0,
-            "y": 2325.0
+            "x": 60.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A4"
+          "compName": "GUIram4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 40.0,
-            "y": 2575.0
+            "x": 55.0,
+            "y": 2050.0
+          },
+          {
+            "x": 55.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A3"
+          "compName": "GUIram4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 2565.0
+            "x": 50.0,
+            "y": 2150.0
+          },
+          {
+            "x": 50.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D2"
+          "compName": "GUIram4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#87",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 45.0,
+            "y": 2250.0
+          },
+          {
+            "x": 45.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y1"
+          "compName": "GUIram4#0",
+          "pinName": "QA1"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D1"
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QA2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "Y3"
+          "compName": "GUIram4#0",
+          "pinName": "QA3"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
+          "compName": "GUIdlatch4#0",
           "pinName": "D3"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
           "compName": "GUIram4#0",
-          "pinName": "D1"
-        },
-        "name": "unnamedWire#140",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "QA4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdlatch4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "GUIram4#0",
+          "pinName": "QB1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D4"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#143",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 150.0,
+            "y": 2265.0
+          },
+          {
+            "x": 150.0,
+            "y": 2280.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I0"
+          "pinName": "I4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 105.0,
-            "y": 850.0
+            "x": 125.0,
+            "y": 450.0
           },
           {
-            "x": 105.0,
-            "y": 2165.0
+            "x": 125.0,
+            "y": 2125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "RAMWE"
+          "compName": "GUIram4#0",
+          "pinName": "QB2"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "A"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#144",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 2275.0
+          },
+          {
+            "x": 145.0,
+            "y": 2290.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "GUIram4#0",
+          "pinName": "QB3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I1"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 110.0,
-            "y": 750.0
+            "x": 140.0,
+            "y": 2285.0
           },
           {
-            "x": 110.0,
-            "y": 2155.0
+            "x": 140.0,
+            "y": 2300.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "GUIram4#0",
+          "pinName": "QB4"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#141",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 135.0,
+            "y": 2295.0
+          },
+          {
+            "x": 135.0,
+            "y": 2310.0
+          }
+        ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I2"
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 115.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 1050.0
           },
           {
-            "x": 115.0,
-            "y": 2145.0
+            "x": 100.0,
+            "y": 2175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "D3"
-        },
-        "name": "unnamedWire#142",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "Cn+4"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "pinName": "D1"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 315.0,
-            "y": 2155.0
+            "x": 180.0,
+            "y": 1150.0
           },
           {
-            "x": 315.0,
-            "y": 550.0
+            "x": 180.0,
+            "y": 2185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "QWE"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIdff4#0",
-          "pinName": "WE"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 85.0,
-            "y": 100.0
+            "x": 175.0,
+            "y": 1250.0
           },
           {
-            "x": 85.0,
-            "y": 2505.0
+            "x": 175.0,
+            "y": 2195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "YF"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUImux1_4#0",
-          "pinName": "S0"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 70.0,
-            "y": 80.0
+            "x": 170.0,
+            "y": 1350.0
           },
           {
-            "x": 70.0,
-            "y": 140.0
+            "x": 170.0,
+            "y": 2205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F1"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#92",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#145"
-      },
-      {
-        "pin1": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "OVR"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "pinName": "D4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 320.0,
-            "y": 2165.0
+            "x": 165.0,
+            "y": 1450.0
           },
           {
-            "x": 320.0,
-            "y": 650.0
+            "x": 165.0,
+            "y": 2215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIram4#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#146",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 70.0
-          },
-          {
-            "x": 230.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 105.0
-          },
-          {
-            "x": 90.0,
-            "y": 2305.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I7"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 150.0
-          },
-          {
-            "x": 5.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 325.0,
-            "y": 2115.0
+            "x": 120.0,
+            "y": 550.0
           },
           {
-            "x": 325.0,
-            "y": 850.0
+            "x": 120.0,
+            "y": 2135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F4"
+          "compName": "GUIdlatch4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "ORAMn+3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#96",
-        "path": []
+        "name": "unnamedWire#52",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y1"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 335.0,
-            "y": 140.0
-          },
-          {
-            "x": 335.0,
-            "y": 50.0
+            "x": 225.0,
+            "y": 160.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#54",
         "path": [
           {
-            "x": 330.0,
-            "y": 2145.0
+            "x": 230.0,
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I3"
+          "compName": "GUImux1_4#0",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#55",
         "path": [
           {
-            "x": 120.0,
-            "y": 550.0
-          },
-          {
-            "x": 120.0,
-            "y": 2135.0
+            "x": 235.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#98",
-        "path": [
-          {
-            "x": 280.0,
-            "y": 2090.0
-          }
-        ]
+        "name": "unnamedWire#57",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I4"
+          "pinName": "A3"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 450.0
-          },
-          {
-            "x": 125.0,
-            "y": 2125.0
-          }
-        ]
+        "name": "unnamedWire#58",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#97",
-        "path": [
-          {
-            "x": 330.0,
-            "y": 750.0
-          }
-        ]
+        "name": "unnamedWire#59",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "I5"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 130.0,
-            "y": 350.0
+            "x": 115.0,
+            "y": 650.0
           },
           {
-            "x": 130.0,
-            "y": 2115.0
+            "x": 115.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I6"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901DestDecode#0",
-          "pinName": "I6"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#60",
         "path": [
           {
-            "x": 10.0,
-            "y": 250.0
+            "x": 200.0,
+            "y": 2280.0
           },
           {
-            "x": 10.0,
-            "y": 70.0
+            "x": 200.0,
+            "y": 2265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 155.0,
-            "y": 80.0
+            "x": 205.0,
+            "y": 2290.0
+          },
+          {
+            "x": 205.0,
+            "y": 2275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "F2"
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 285.0,
-            "y": 2125.0
+            "x": 210.0,
+            "y": 2300.0
           },
           {
-            "x": 285.0,
-            "y": 2095.0
+            "x": 210.0,
+            "y": 2285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIdlatch4#1",
+          "pinName": "Q4"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A3"
+          "pinName": "B4"
         },
-        "name": "unnamedWire#58",
-        "path": []
+        "name": "unnamedWire#63",
+        "path": [
+          {
+            "x": 215.0,
+            "y": 2310.0
+          },
+          {
+            "x": 215.0,
+            "y": 2295.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A2"
-        },
-        "name": "unnamedWire#57",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "A4"
-        },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B1"
+          "compName": "_submodelinterface",
+          "pinName": "OQn"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 10.0,
-            "y": 2585.0
+            "x": 335.0,
+            "y": 2495.0
+          },
+          {
+            "x": 335.0,
+            "y": 1050.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#137",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 15.0,
-            "y": 2595.0
+            "x": 110.0,
+            "y": 750.0
+          },
+          {
+            "x": 110.0,
+            "y": 2155.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IRAMn+3"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "_submodelinterface",
+          "pinName": "OQn+3"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 5.0,
-            "y": 2450.0
+            "x": 340.0,
+            "y": 2525.0
           },
           {
-            "x": 5.0,
-            "y": 2455.0
+            "x": 340.0,
+            "y": 1150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q2"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#72",
         "path": [
           {
-            "x": 205.0,
-            "y": 2290.0
+            "x": 135.0,
+            "y": 2670.0
           },
           {
-            "x": 205.0,
-            "y": 2275.0
+            "x": 30.0,
+            "y": 2670.0
+          },
+          {
+            "x": 30.0,
+            "y": 2635.0
+          },
+          {
+            "x": 35.0,
+            "y": 2635.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B1"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#73",
         "path": [
           {
-            "x": 200.0,
-            "y": 2280.0
+            "x": 140.0,
+            "y": 2675.0
           },
           {
-            "x": 200.0,
-            "y": 2265.0
+            "x": 35.0,
+            "y": 2675.0
+          },
+          {
+            "x": 35.0,
+            "y": 2640.0
+          },
+          {
+            "x": 40.0,
+            "y": 2640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B4"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#63",
-        "path": [
-          {
-            "x": 215.0,
-            "y": 2310.0
-          },
-          {
-            "x": 215.0,
-            "y": 2295.0
-          }
-        ]
+        "name": "unnamedWire#74",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#38",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B3"
+          "pinName": "C2"
         },
-        "name": "unnamedWire#138",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 2605.0
-          }
-        ]
+        "name": "unnamedWire#75",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdlatch4#1",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
-          "pinName": "B3"
+          "compName": "GUIsel3_4#1",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#76",
         "path": [
           {
-            "x": 210.0,
-            "y": 2300.0
+            "x": 145.0,
+            "y": 2680.0
           },
           {
-            "x": 210.0,
-            "y": 2285.0
+            "x": 40.0,
+            "y": 2680.0
+          },
+          {
+            "x": 40.0,
+            "y": 2645.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#39",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IQn+3"
         },
         "pin2": {
           "compName": "GUIsel3_4#1",
-          "pinName": "B4"
+          "pinName": "C4"
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#77",
         "path": [
           {
-            "x": 25.0,
-            "y": 2615.0
+            "x": 5.0,
+            "y": 2650.0
+          },
+          {
+            "x": 5.0,
+            "y": 2655.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q2"
+          "compName": "_submodelinterface",
+          "pinName": "IQn"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 2550.0
+          },
+          {
+            "x": 5.0,
+            "y": 2545.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q1"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#64",
-        "path": []
+        "pin2": {
+          "compName": "GUIsel3_4#1",
+          "pinName": "A2"
+        },
+        "name": "unnamedWire#79",
+        "path": [
+          {
+            "x": 130.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2665.0
+          },
+          {
+            "x": 25.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2630.0
+          },
+          {
+            "x": 30.0,
+            "y": 2555.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q4"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#67",
-        "path": []
+        "name": "unnamedWire#8",
+        "path": [
+          {
+            "x": 105.0,
+            "y": 850.0
+          },
+          {
+            "x": 105.0,
+            "y": 2165.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4#0",
-          "pinName": "Q3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q1"
         },
-        "name": "unnamedWire#66",
-        "path": []
+        "name": "unnamedWire#80",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 2305.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OQn"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 335.0,
-            "y": 2495.0
+            "x": 225.0,
+            "y": 2505.0
           },
           {
-            "x": 335.0,
-            "y": 1050.0
+            "x": 225.0,
+            "y": 2315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q3"
         },
-        "name": "unnamedWire#68",
-        "path": []
+        "name": "unnamedWire#82",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 2515.0
+          },
+          {
+            "x": 230.0,
+            "y": 2325.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#31",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#121",
-        "path": []
+        "name": "unnamedWire#83",
+        "path": [
+          {
+            "x": 235.0,
+            "y": 2335.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#122",
-        "path": []
+        "name": "unnamedWire#84",
+        "path": [
+          {
+            "x": 35.0,
+            "y": 2565.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
+          "compName": "GUIsel3_4#1",
           "pinName": "A4"
         },
-        "name": "unnamedWire#120",
-        "path": []
+        "name": "unnamedWire#85",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 2575.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#36",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIdff4#0",
+          "pinName": "D1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
+          "compName": "GUIdff4#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D3"
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIsel3_4#1",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#35",
-          "pinName": ""
+          "compName": "GUIdff4#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#123",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 2105.0
-          }
-        ]
+        "name": "unnamedWire#89",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "WireCrossPoint#36",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#90",
         "path": [
           {
-            "x": 135.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2670.0
-          },
-          {
-            "x": 30.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 2155.0
           },
           {
-            "x": 35.0,
-            "y": 2635.0
+            "x": 315.0,
+            "y": 550.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#37",
-          "pinName": ""
-        },
-        "name": "unnamedWire#129",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "OQn+3"
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#91",
         "path": [
           {
-            "x": 340.0,
-            "y": 2525.0
+            "x": 320.0,
+            "y": 2165.0
           },
           {
-            "x": 340.0,
-            "y": 1150.0
+            "x": 320.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C1"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#34",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#94",
         "path": [
           {
-            "x": 140.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2675.0
-          },
-          {
-            "x": 35.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 2115.0
           },
           {
-            "x": 40.0,
-            "y": 2640.0
+            "x": 325.0,
+            "y": 850.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#35",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
-        },
-        "name": "unnamedWire#128",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C3"
-        },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#95",
         "path": [
           {
-            "x": 145.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2680.0
-          },
-          {
-            "x": 40.0,
-            "y": 2645.0
+            "x": 330.0,
+            "y": 2145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "ORAMn+3"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#97",
         "path": [
           {
-            "x": 5.0,
-            "y": 2550.0
-          },
+            "x": 330.0,
+            "y": 750.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
+        },
+        "name": "unnamedWire#98",
+        "path": [
           {
-            "x": 5.0,
-            "y": 2545.0
+            "x": 280.0,
+            "y": 2090.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IQn+3"
+          "compName": "GUIAm2901ALUInclSourceDecodeInclFunctionDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#1",
-          "pinName": "C4"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#99",
         "path": [
           {
-            "x": 5.0,
-            "y": 2650.0
+            "x": 285.0,
+            "y": 2125.0
           },
           {
-            "x": 5.0,
-            "y": 2655.0
+            "x": 285.0,
+            "y": 2095.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -3417,5 +3456,6 @@ mograsim version: 0.1.3
       }
     },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index 006a46f..92d2200 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
@@ -6,10 +5,11 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "SBE",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -17,7 +17,8 @@ mograsim version: 0.1.3
         "y": 45.0
       },
       "name": "FN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -25,7 +26,8 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "I3",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,15 +35,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 35.0,
-        "y": 25.0
-      },
-      "name": "SN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -49,7 +44,8 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I5",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -57,7 +53,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "L",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,43 +62,55 @@ mograsim version: 0.1.3
         "y": 55.0
       },
       "name": "RN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "SBE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 25.0
+      },
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "GUInand3",
-        "name": "GUInand3#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 55.0,
-          "y": 10.0
-        }
+          "x": 15.0,
+          "y": 50.0
+        },
+        "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 55.0,
+          "y": 45.0
         },
         "params": 1
       },
@@ -116,10 +125,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 55.0,
-          "y": 45.0
+          "x": 100.0,
+          "y": 50.0
         },
         "params": 1
       },
@@ -131,30 +140,38 @@ mograsim version: 0.1.3
           "y": 135.0
         }
       },
+      {
+        "id": "GUInand3",
+        "name": "GUInand3#0",
+        "pos": {
+          "x": 55.0,
+          "y": 10.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#0",
         "pos": {
           "x": 4.0,
-          "y": 24.0
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 19.0
+          "y": 24.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 39.0,
+          "y": 34.0
         },
         "params": 1
       },
@@ -169,10 +186,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
           "x": 9.0,
-          "y": 64.0
+          "y": 59.0
         },
         "params": 1
       },
@@ -187,10 +204,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 49.0,
-          "y": 99.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
@@ -205,10 +222,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 39.0,
-          "y": 19.0
+          "x": 49.0,
+          "y": 99.0
         },
         "params": 1
       },
@@ -223,34 +240,78 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#9",
         "pos": {
           "x": 39.0,
-          "y": 34.0
+          "y": 19.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 100.0,
-          "y": 50.0
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 15.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
@@ -267,20 +328,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#14",
+        "path": []
       },
       {
         "pin1": {
@@ -309,15 +365,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#18",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 50.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -336,6 +397,18 @@ mograsim version: 0.1.3
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#18",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#8",
@@ -355,14 +428,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
@@ -379,14 +452,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
@@ -416,20 +489,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
@@ -445,14 +513,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUInand3#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27"
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -468,14 +542,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUInand3#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUINandGate#4",
           "pinName": "A"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#27"
       },
       {
         "pin1": {
@@ -490,109 +564,61 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInand3#0",
+          "compName": "GUIand#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 40.0
-          },
-          {
-            "x": 45.0,
-            "y": 15.0
-          }
-        ]
+        "name": "unnamedWire#29"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIand#0",
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "FN"
+          "pinName": "SBE"
         },
-        "name": "unnamedWire#6",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 15.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
-        },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
@@ -618,89 +644,72 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "SBE"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#31",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUInand3#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 40.0
+          },
+          {
+            "x": 45.0,
+            "y": 15.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -710,5 +719,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 0f8ee57..2dec1af 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 120.0,
@@ -6,58 +5,65 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 35.0
       },
-      "name": "R2",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 105.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "S3",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 65.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "R3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 115.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "S4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 75.0
+        "x": 35.0,
+        "y": 25.0
       },
-      "name": "R4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -65,98 +71,193 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I4",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 55.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 45.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "R1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "R2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "R3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 75.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "R4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "S1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 95.0
       },
-      "name": "S1",
-      "logicWidth": 1
+      "name": "S2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 105.0
       },
-      "name": "R1",
-      "logicWidth": 1
+      "name": "S3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 115.0
       },
-      "name": "S2",
-      "logicWidth": 1
+      "name": "S4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIAm2901ALUFuncDecode",
+        "name": "GUIAm2901ALUFuncDecode#0",
+        "pos": {
+          "x": 20.0,
+          "y": 2.5
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#0",
+        "pos": {
+          "x": 45.0,
+          "y": 80.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#1",
+        "pos": {
+          "x": 45.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#2",
+        "pos": {
+          "x": 45.0,
+          "y": 280.0
+        }
+      },
+      {
+        "id": "GUIAm2901ALUOneBit",
+        "name": "GUIAm2901ALUOneBit#3",
+        "pos": {
+          "x": 45.0,
+          "y": 380.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "GUIxor#0",
+        "pos": {
+          "x": 95.0,
+          "y": 400.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#0",
+        "pos": {
+          "x": 24.0,
+          "y": 94.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 24.0,
+          "y": 194.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 31.5,
+          "y": 244.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
+        "pos": {
+          "x": 31.5,
+          "y": 344.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 34.0,
-          "y": 354.0
+          "y": 154.0
         },
         "params": 1
       },
@@ -171,10 +272,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 36.5,
-          "y": 264.0
+          "x": 34.0,
+          "y": 354.0
         },
         "params": 1
       },
@@ -189,10 +290,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 84.0,
-          "y": 374.0
+          "x": 36.5,
+          "y": 264.0
         },
         "params": 1
       },
@@ -205,54 +306,30 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUFuncDecode",
-        "name": "GUIAm2901ALUFuncDecode#0",
-        "pos": {
-          "x": 20.0,
-          "y": 2.5
-        }
-      },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#0",
-        "pos": {
-          "x": 45.0,
-          "y": 80.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#19",
+        "name": "WireCrossPoint#18",
         "pos": {
           "x": 84.0,
-          "y": 384.0
+          "y": 374.0
         },
         "params": 1
       },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
-        "pos": {
-          "x": 95.0,
-          "y": 400.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#19",
         "pos": {
-          "x": 24.0,
-          "y": 194.0
+          "x": 84.0,
+          "y": 384.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
           "x": 24.0,
-          "y": 94.0
+          "y": 294.0
         },
         "params": 1
       },
@@ -267,10 +344,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 24.0,
-          "y": 294.0
+          "x": 26.5,
+          "y": 204.0
         },
         "params": 1
       },
@@ -285,21 +362,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 26.5,
-          "y": 204.0
+          "x": 29.0,
+          "y": 124.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#1",
-        "pos": {
-          "x": 45.0,
-          "y": 180.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#7",
@@ -309,31 +378,15 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#2",
-        "pos": {
-          "x": 45.0,
-          "y": 280.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#8",
         "pos": {
           "x": 29.0,
-          "y": 124.0
+          "y": 324.0
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUOneBit",
-        "name": "GUIAm2901ALUOneBit#3",
-        "pos": {
-          "x": 45.0,
-          "y": 380.0
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#9",
@@ -342,636 +395,848 @@ mograsim version: 0.1.3
           "y": 144.0
         },
         "params": 1
+      }
+    ],
+    "wires": [
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I5"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I5"
+        },
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 20.0
+          },
+          {
+            "x": 5.0,
+            "y": 7.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 29.0,
-          "y": 324.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I4"
+        },
+        "name": "unnamedWire#1",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 60.0
+          },
+          {
+            "x": 10.0,
+            "y": 17.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 31.5,
-          "y": 244.0
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "CinE"
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 70.0,
+            "y": 7.5
+          },
+          {
+            "x": 70.0,
+            "y": 77.5
+          },
+          {
+            "x": 27.5,
+            "y": 77.5
+          }
+        ]
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
-        "pos": {
-          "x": 34.0,
-          "y": 154.0
+        "pin1": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "params": 1
+        "pin2": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
-        "pos": {
-          "x": 31.5,
-          "y": 344.0
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "name": "unnamedWire#12",
+        "path": []
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "FN"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "FN"
+          "pinName": "CinE"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#15",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "CinE"
+        },
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 27.5,
+            "y": 405.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "L"
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 67.5,
-            "y": 17.5
+            "x": 57.5,
+            "y": 57.5
           },
           {
-            "x": 67.5,
-            "y": 75.0
+            "x": 57.5,
+            "y": 65.0
           },
           {
-            "x": 37.5,
-            "y": 75.0
+            "x": 30.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "FN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#18",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
+        },
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I3"
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 35.0,
-            "y": 455.0
+            "x": 15.0,
+            "y": 100.0
+          },
+          {
+            "x": 15.0,
+            "y": 27.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#20",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "L"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "RN"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "RN"
+        },
+        "name": "unnamedWire#23",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 425.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 27.5
+          },
+          {
+            "x": 65.0,
+            "y": 72.5
+          },
+          {
+            "x": 32.5,
+            "y": 72.5
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "L"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "SN"
+        },
+        "name": "unnamedWire#27",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R1"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "SN"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "SBE"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 10.0,
-            "y": 180.0
+            "x": 62.5,
+            "y": 37.5
           },
           {
-            "x": 10.0,
-            "y": 115.0
+            "x": 62.5,
+            "y": 70.0
+          },
+          {
+            "x": 25.0,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "L"
+          "pinName": "SN"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 37.5,
-            "y": 465.0
+            "x": 32.5,
+            "y": 445.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "FN"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 47.5
+          },
+          {
+            "x": 60.0,
+            "y": 67.5
+          },
+          {
+            "x": 35.0,
+            "y": 67.5
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "name": "unnamedWire#32",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
+        },
+        "name": "unnamedWire#33",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "FN"
+        },
+        "name": "unnamedWire#35",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "R"
+          "pinName": "FN"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 260.0
-          },
-          {
-            "x": 10.0,
-            "y": 315.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "R"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "FN"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 220.0
-          },
-          {
-            "x": 10.0,
-            "y": 215.0
+            "x": 35.0,
+            "y": 455.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S1"
+          "compName": "GUIAm2901ALUFuncDecode#0",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "S"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 15.0,
-            "y": 340.0
+            "x": 67.5,
+            "y": 17.5
           },
           {
-            "x": 15.0,
-            "y": 135.0
+            "x": 67.5,
+            "y": 75.0
+          },
+          {
+            "x": 37.5,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "R"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 300.0
-          },
-          {
-            "x": 20.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#4",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CoutE"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "L"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CoutE"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "L"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I4"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I4"
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "L"
         },
-        "name": "unnamedWire#1",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 60.0
-          },
-          {
-            "x": 10.0,
-            "y": 17.5
-          }
-        ]
+        "name": "unnamedWire#43",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "S2"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "L"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 5.0,
-            "y": 380.0
-          },
-          {
-            "x": 5.0,
-            "y": 235.0
+            "x": 37.5,
+            "y": 465.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
+          "pinName": "R1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I5"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "R"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 20.0
+            "x": 10.0,
+            "y": 180.0
           },
           {
-            "x": 5.0,
-            "y": 7.5
+            "x": 10.0,
+            "y": 115.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S4"
+          "pinName": "R2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "S"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "R"
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#46",
         "path": [
           {
             "x": 10.0,
-            "y": 460.0
+            "y": 220.0
           },
           {
             "x": 10.0,
-            "y": 435.0
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S3"
+          "pinName": "R3"
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "S"
+          "pinName": "R"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#47",
         "path": [
           {
             "x": 10.0,
-            "y": 420.0
+            "y": 260.0
           },
           {
             "x": 10.0,
-            "y": 335.0
+            "y": 315.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "CinE"
+          "compName": "_submodelinterface",
+          "pinName": "R4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "R"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 70.0,
-            "y": 7.5
-          },
-          {
-            "x": 70.0,
-            "y": 77.5
+            "x": 20.0,
+            "y": 300.0
           },
           {
-            "x": 27.5,
-            "y": 77.5
+            "x": 20.0,
+            "y": 415.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "S"
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 85.0,
-            "y": 85.0
-          },
-          {
-            "x": 85.0,
-            "y": 175.0
-          },
-          {
-            "x": 40.0,
-            "y": 175.0
+            "x": 15.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 185.0
+            "x": 15.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "S2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "Cin"
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "S"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#50",
         "path": [
           {
             "x": 5.0,
-            "y": 140.0
+            "y": 380.0
           },
           {
             "x": 5.0,
-            "y": 85.0
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SBE"
+          "compName": "_submodelinterface",
+          "pinName": "S3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "S"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#51",
         "path": [
           {
-            "x": 62.5,
-            "y": 37.5
-          },
-          {
-            "x": 62.5,
-            "y": 70.0
+            "x": 10.0,
+            "y": 420.0
           },
           {
-            "x": 25.0,
-            "y": 70.0
+            "x": 10.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "Cout"
+          "compName": "_submodelinterface",
+          "pinName": "S4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#3",
+          "pinName": "S"
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#52",
         "path": [
           {
-            "x": 85.0,
-            "y": 285.0
+            "x": 10.0,
+            "y": 460.0
+          },
+          {
+            "x": 10.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I3"
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "I3"
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#53",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 5.0,
+            "y": 140.0
           },
           {
-            "x": 15.0,
-            "y": 27.5
+            "x": 5.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "Cin"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#54",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 85.0
+          },
+          {
+            "x": 85.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 175.0
+          },
+          {
+            "x": 40.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1004,39 +1269,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#14",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#3",
+          "compName": "GUIAm2901ALUOneBit#2",
           "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
-        },
-        "name": "unnamedWire#58",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#56",
+        "path": [
+          {
+            "x": 85.0,
+            "y": 285.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -1061,124 +1307,49 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 27.5,
-            "y": 405.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "CinE"
-        },
-        "name": "unnamedWire#15",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "F"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
-        },
-        "name": "unnamedWire#59",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 95.0
-          },
-          {
-            "x": 90.0,
-            "y": 20.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "RN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 57.5,
-            "y": 57.5
-          },
-          {
-            "x": 57.5,
-            "y": 65.0
-          },
-          {
-            "x": 30.0,
-            "y": 65.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "pinName": "Cout"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUOneBit#2",
+          "compName": "GUIAm2901ALUOneBit#0",
           "pinName": "F"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "F3"
+          "pinName": "F1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 100.0,
-            "y": 295.0
+            "x": 90.0,
+            "y": 95.0
           },
           {
-            "x": 100.0,
-            "y": 100.0
+            "x": 90.0,
+            "y": 20.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIAm2901ALUOneBit#0",
+          "pinName": "CoutE"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
       {
         "pin1": {
           "compName": "GUIAm2901ALUOneBit#1",
@@ -1202,22 +1373,22 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#2",
+          "pinName": "F"
         },
         "pin2": {
-          "compName": "GUIxor#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "F3"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#61",
         "path": [
           {
-            "x": 90.0,
-            "y": 375.0
+            "x": 100.0,
+            "y": 295.0
           },
           {
-            "x": 90.0,
-            "y": 405.0
+            "x": 100.0,
+            "y": 100.0
           }
         ]
       },
@@ -1244,49 +1415,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIxor#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#63",
         "path": [
           {
-            "x": 130.0,
-            "y": 385.0
+            "x": 90.0,
+            "y": 375.0
           },
           {
-            "x": 130.0,
-            "y": 180.0
+            "x": 90.0,
+            "y": 405.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#19",
@@ -1306,33 +1453,25 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#19",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "RN"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#65",
         "path": [
           {
-            "x": 30.0,
-            "y": 425.0
+            "x": 130.0,
+            "y": 385.0
+          },
+          {
+            "x": 130.0,
+            "y": 180.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "RN"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUIxor#0",
@@ -1346,168 +1485,47 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "SN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 27.5
-          },
-          {
-            "x": 65.0,
-            "y": 72.5
-          },
-          {
-            "x": 32.5,
-            "y": 72.5
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIAm2901ALUOneBit#1",
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#2",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#1",
-          "pinName": "SN"
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2901ALUOneBit#3",
-          "pinName": "SN"
-        },
-        "name": "unnamedWire#30",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 445.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "name": "unnamedWire#32",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2901ALUFuncDecode#0",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "pinName": "CoutE"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 60.0,
-            "y": 47.5
-          },
-          {
-            "x": 60.0,
-            "y": 67.5
-          },
-          {
-            "x": 35.0,
-            "y": 67.5
+            "x": 25.0,
+            "y": 395.0
           }
         ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUOneBit#0",
-          "pinName": "FN"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "name": "unnamedWire#33",
-        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1517,5 +1535,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 71d2d2d..2fa5c1b 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 230.0,
@@ -6,255 +5,299 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 195.0
+        "y": 115.0
       },
-      "name": "Q1",
-      "logicWidth": 1
+      "name": "A1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 205.0
+        "y": 125.0
       },
-      "name": "Q2",
-      "logicWidth": 1
+      "name": "A2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 215.0
+        "y": 135.0
       },
-      "name": "Q3",
-      "logicWidth": 1
+      "name": "A3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 225.0
+        "y": 145.0
       },
-      "name": "Q4",
-      "logicWidth": 1
+      "name": "A4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 155.0
       },
-      "name": "I0",
-      "logicWidth": 1
+      "name": "B1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 165.0
       },
-      "name": "I1",
-      "logicWidth": 1
+      "name": "B2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 175.0
       },
-      "name": "I2",
-      "logicWidth": 1
+      "name": "B3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 185.0
       },
-      "name": "I3",
-      "logicWidth": 1
+      "name": "B4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 55.0
+        "x": 0.0,
+        "y": 65.0
       },
-      "name": "OVR",
-      "logicWidth": 1
+      "name": "Cn",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I4",
-      "logicWidth": 1
+      "name": "Cn+4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "Cn",
-      "logicWidth": 1
+      "name": "D1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 5.0
+        "y": 85.0
       },
-      "name": "I5",
-      "logicWidth": 1
+      "name": "D2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 115.0
+        "y": 95.0
       },
-      "name": "A1",
-      "logicWidth": 1
+      "name": "D3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 125.0
+        "y": 105.0
       },
-      "name": "A2",
-      "logicWidth": 1
+      "name": "D4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 135.0
+        "x": 35.0,
+        "y": 5.0
       },
-      "name": "A3",
-      "logicWidth": 1
+      "name": "F1",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 145.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "A4",
-      "logicWidth": 1
+      "name": "F2",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 45.0
+        "y": 25.0
       },
-      "name": "Cn+4",
-      "logicWidth": 1
+      "name": "F3",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 35.0
       },
-      "name": "F1",
-      "logicWidth": 1
+      "name": "F4",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 55.0
       },
-      "name": "F2",
-      "logicWidth": 1
+      "name": "I0",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 45.0
       },
-      "name": "D1",
-      "logicWidth": 1
+      "name": "I1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 25.0
+        "x": 0.0,
+        "y": 35.0
       },
-      "name": "F3",
-      "logicWidth": 1
+      "name": "I2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 25.0
       },
-      "name": "D2",
-      "logicWidth": 1
+      "name": "I3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 35.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "F4",
-      "logicWidth": 1
+      "name": "I4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 95.0
+        "y": 5.0
       },
-      "name": "D3",
-      "logicWidth": 1
+      "name": "I5",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 155.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "B1",
-      "logicWidth": 1
+      "name": "OVR",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 105.0
+        "y": 195.0
       },
-      "name": "D4",
-      "logicWidth": 1
+      "name": "Q1",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 165.0
+        "y": 205.0
       },
-      "name": "B2",
-      "logicWidth": 1
+      "name": "Q2",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 175.0
+        "y": 215.0
       },
-      "name": "B3",
-      "logicWidth": 1
+      "name": "Q3",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 185.0
+        "y": 225.0
       },
-      "name": "B4",
-      "logicWidth": 1
+      "name": "Q4",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
-        "id": "GUIsel3_4",
-        "name": "GUIsel3_4#0",
+        "id": "GUIAm2901ALUInclDecode",
+        "name": "GUIAm2901ALUInclDecode#0",
+        "pos": {
+          "x": 60.0,
+          "y": 15.0
+        }
+      },
+      {
+        "id": "GUIAm2901SourceDecode",
+        "name": "GUIAm2901SourceDecode#0",
+        "pos": {
+          "x": 15.0,
+          "y": 165.0
+        }
+      },
+      {
+        "id": "GUIsel2_4",
+        "name": "GUIsel2_4#0",
         "pos": {
           "x": 45.0,
-          "y": 575.0
+          "y": 365.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIsel3_4",
+        "name": "GUIsel3_4#0",
         "pos": {
-          "x": 14.0,
-          "y": 499.0
-        },
-        "params": 1
+          "x": 45.0,
+          "y": 575.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -265,20 +308,12 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
-      {
-        "id": "GUIAm2901ALUInclDecode",
-        "name": "GUIAm2901ALUInclDecode#0",
-        "pos": {
-          "x": 60.0,
-          "y": 15.0
-        }
-      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 24.0,
-          "y": 579.0
+          "x": 14.0,
+          "y": 499.0
         },
         "params": 1
       },
@@ -292,1065 +327,1059 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUIsel2_4",
-        "name": "GUIsel2_4#0",
-        "pos": {
-          "x": 45.0,
-          "y": 365.0
-        }
-      },
-      {
-        "id": "GUIAm2901SourceDecode",
-        "name": "GUIAm2901SourceDecode#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 15.0,
-          "y": 165.0
-        }
+          "x": 24.0,
+          "y": 579.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y1"
+          "compName": "_submodelinterface",
+          "pinName": "I5"
         },
         "pin2": {
           "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R1"
+          "pinName": "I5"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 82.5,
-            "y": 370.0
-          },
-          {
-            "x": 82.5,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 162.5
-          },
-          {
-            "x": 20.0,
-            "y": 60.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RD"
+          "compName": "_submodelinterface",
+          "pinName": "I4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SA"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 210.0
-          },
-          {
-            "x": 55.0,
-            "y": 220.0
-          },
-          {
-            "x": 25.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 370.0
+            "x": 5.0,
+            "y": 30.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "D4"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#38",
-        "path": [
-          {
-            "x": 87.5,
-            "y": 390.0
-          },
-          {
-            "x": 87.5,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 157.5
-          },
-          {
-            "x": 25.0,
-            "y": 80.0
-          }
-        ]
+        "name": "unnamedWire#10",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 380.0
-          },
-          {
-            "x": 85.0,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 160.0
-          },
-          {
-            "x": 22.5,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "Y4"
+          "compName": "_submodelinterface",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "R4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#12",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A3"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
+        },
+        "name": "unnamedWire#13",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "A4"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
+        },
+        "name": "unnamedWire#14",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUIsel2_4#0",
+          "pinName": "B1"
+        },
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 90.0,
-            "y": 400.0
-          },
-          {
-            "x": 90.0,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 155.0
-          },
-          {
-            "x": 27.5,
-            "y": 90.0
+            "x": 10.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S2"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 95.0,
-            "y": 590.0
-          },
-          {
-            "x": 95.0,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 150.0
-          },
-          {
-            "x": 32.5,
-            "y": 110.0
+            "x": 15.0,
+            "y": 440.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S1"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#17",
         "path": [
           {
-            "x": 92.5,
-            "y": 580.0
-          },
-          {
-            "x": 92.5,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 152.5
-          },
-          {
-            "x": 30.0,
-            "y": 100.0
+            "x": 20.0,
+            "y": 450.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S4"
+          "compName": "GUIsel2_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 100.0,
-            "y": 610.0
-          },
-          {
-            "x": 100.0,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 145.0
-          },
-          {
-            "x": 37.5,
-            "y": 130.0
+            "x": 25.0,
+            "y": 460.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "S3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 97.5,
-            "y": 600.0
-          },
-          {
-            "x": 97.5,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 147.5
-          },
-          {
-            "x": 35.0,
-            "y": 120.0
+            "x": 10.0,
+            "y": 610.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F2"
+          "compName": "_submodelinterface",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "I3"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 135.0,
-            "y": 30.0
+            "x": 15.0,
+            "y": 100.0
           },
           {
-            "x": 135.0,
-            "y": 60.0
+            "x": 15.0,
+            "y": 40.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#44",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 15.0,
+            "y": 620.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 125.0,
-            "y": 50.0
-          },
-          {
-            "x": 125.0,
-            "y": 140.0
+            "x": 20.0,
+            "y": 630.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "F3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "F3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#46",
-        "path": [
-          {
-            "x": 130.0,
-            "y": 40.0
-          },
+        "name": "unnamedWire#22",
+        "path": [
           {
-            "x": 130.0,
-            "y": 100.0
+            "x": 25.0,
+            "y": 640.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "OVR"
+          "compName": "_submodelinterface",
+          "pinName": "B1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "OVR"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B1"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#23",
         "path": [
           {
-            "x": 115.0,
-            "y": 70.0
+            "x": 5.0,
+            "y": 620.0
           },
           {
-            "x": 115.0,
-            "y": 220.0
+            "x": 5.0,
+            "y": 650.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn+4"
+          "compName": "_submodelinterface",
+          "pinName": "B2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cn+4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B2"
         },
-        "name": "unnamedWire#48",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 60.0
-          },
-          {
-            "x": 120.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#24",
+        "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D3"
+          "pinName": "B3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A3"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B3"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#25",
         "path": [
           {
             "x": 5.0,
-            "y": 380.0
+            "y": 700.0
           },
           {
             "x": 5.0,
-            "y": 410.0
+            "y": 670.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D2"
+          "pinName": "B4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "B4"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#26",
         "path": [
           {
             "x": 10.0,
-            "y": 340.0
+            "y": 740.0
           },
           {
             "x": 10.0,
-            "y": 400.0
+            "y": 680.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D1"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#27",
         "path": [
           {
             "x": 15.0,
-            "y": 300.0
+            "y": 780.0
           },
           {
             "x": 15.0,
-            "y": 390.0
+            "y": 690.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Cn"
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "Cn"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C2"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 10.0,
-            "y": 260.0
+            "x": 20.0,
+            "y": 820.0
           },
           {
-            "x": 10.0,
-            "y": 50.0
+            "x": 20.0,
+            "y": 700.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I4"
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C3"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 5.0,
-            "y": 60.0
+            "x": 25.0,
+            "y": 860.0
           },
           {
-            "x": 5.0,
-            "y": 30.0
+            "x": 25.0,
+            "y": 710.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I5"
-        },
-        "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I5"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "pinName": "I2"
         },
         "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I0"
+          "pinName": "I2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 5.0,
-            "y": 220.0
+            "y": 140.0
           },
           {
             "x": 5.0,
-            "y": 190.0
+            "y": 170.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "D4"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "A4"
+          "compName": "GUIsel3_4#0",
+          "pinName": "C4"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#30",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 900.0
+          },
+          {
+            "x": 30.0,
+            "y": 720.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
-        },
-        "pin2": {
           "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
+          "pinName": "SQ"
         },
         "pin2": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "I2"
+          "compName": "GUIsel3_4#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 5.0,
-            "y": 140.0
+            "x": 75.0,
+            "y": 170.0
           },
           {
-            "x": 5.0,
-            "y": 170.0
+            "x": 75.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 240.0
+          },
+          {
+            "x": 30.0,
+            "y": 600.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#12",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RA"
         },
         "pin2": {
-          "compName": "GUIAm2901ALUInclDecode#0",
-          "pinName": "I3"
+          "compName": "GUIsel2_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 15.0,
-            "y": 100.0
+            "x": 70.0,
+            "y": 180.0
           },
           {
-            "x": 15.0,
-            "y": 40.0
+            "x": 70.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 235.0
+          },
+          {
+            "x": 20.0,
+            "y": 380.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A1"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SB"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#33",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 190.0
+          },
+          {
+            "x": 65.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 230.0
+          },
+          {
+            "x": 35.0,
+            "y": 590.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "SA"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 200.0
+          },
+          {
+            "x": 60.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 225.0
+          },
+          {
+            "x": 40.0,
+            "y": 580.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "A3"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "RD"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#13",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 210.0
+          },
+          {
+            "x": 55.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 220.0
+          },
+          {
+            "x": 25.0,
+            "y": 370.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R1"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 15.0,
-            "y": 440.0
+            "x": 82.5,
+            "y": 370.0
+          },
+          {
+            "x": 82.5,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 162.5
+          },
+          {
+            "x": 20.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R2"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 430.0
+            "x": 85.0,
+            "y": 380.0
+          },
+          {
+            "x": 85.0,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 160.0
+          },
+          {
+            "x": 22.5,
+            "y": 70.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R3"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": [
+          {
+            "x": 87.5,
+            "y": 390.0
+          },
+          {
+            "x": 87.5,
+            "y": 157.5
+          },
           {
             "x": 25.0,
-            "y": 460.0
+            "y": 157.5
+          },
+          {
+            "x": 25.0,
+            "y": 80.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel2_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "R4"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 20.0,
-            "y": 450.0
+            "x": 90.0,
+            "y": 400.0
+          },
+          {
+            "x": 90.0,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 155.0
+          },
+          {
+            "x": 27.5,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "GUIsel3_4#0",
-          "pinName": "A1"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 10.0,
-            "y": 610.0
+            "x": 92.5,
+            "y": 580.0
+          },
+          {
+            "x": 92.5,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 152.5
+          },
+          {
+            "x": 30.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#41",
         "path": [
           {
-            "x": 20.0,
-            "y": 630.0
+            "x": 95.0,
+            "y": 590.0
+          },
+          {
+            "x": 95.0,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 150.0
+          },
+          {
+            "x": 32.5,
+            "y": 110.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 15.0,
-            "y": 620.0
+            "x": 97.5,
+            "y": 600.0
+          },
+          {
+            "x": 97.5,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 147.5
+          },
+          {
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B1"
+          "compName": "GUIsel3_4#0",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B1"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "S4"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 5.0,
-            "y": 620.0
+            "x": 100.0,
+            "y": 610.0
           },
           {
-            "x": 5.0,
-            "y": 650.0
+            "x": 100.0,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 145.0
+          },
+          {
+            "x": 37.5,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "A4"
+          "compName": "_submodelinterface",
+          "pinName": "F1"
         },
-        "name": "unnamedWire#22",
-        "path": [
-          {
-            "x": 25.0,
-            "y": 640.0
-          }
-        ]
+        "name": "unnamedWire#44",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B3"
+          "compName": "_submodelinterface",
+          "pinName": "F2"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 5.0,
-            "y": 700.0
+            "x": 135.0,
+            "y": 30.0
           },
           {
-            "x": 5.0,
-            "y": 670.0
+            "x": 135.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B2"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q1"
-        },
-        "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C1"
+          "pinName": "F3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#46",
         "path": [
           {
-            "x": 15.0,
-            "y": 780.0
+            "x": 130.0,
+            "y": 40.0
           },
           {
-            "x": 15.0,
-            "y": 690.0
+            "x": 130.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "B4"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "F4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "B4"
+          "compName": "_submodelinterface",
+          "pinName": "F4"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 10.0,
-            "y": 740.0
+            "x": 125.0,
+            "y": 50.0
           },
           {
-            "x": 10.0,
-            "y": 680.0
+            "x": 125.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q3"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn+4"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C3"
+          "compName": "_submodelinterface",
+          "pinName": "Cn+4"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#48",
         "path": [
           {
-            "x": 25.0,
-            "y": 860.0
+            "x": 120.0,
+            "y": 60.0
           },
           {
-            "x": 25.0,
-            "y": 710.0
+            "x": 120.0,
+            "y": 180.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Q2"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "OVR"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C2"
+          "compName": "_submodelinterface",
+          "pinName": "OVR"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#49",
         "path": [
           {
-            "x": 20.0,
-            "y": 820.0
+            "x": 115.0,
+            "y": 70.0
           },
           {
-            "x": 20.0,
-            "y": 700.0
+            "x": 115.0,
+            "y": 220.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "Q4"
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "C4"
+          "compName": "GUIAm2901SourceDecode#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#5",
         "path": [
           {
-            "x": 30.0,
-            "y": 900.0
+            "x": 5.0,
+            "y": 220.0
           },
           {
-            "x": 30.0,
-            "y": 720.0
+            "x": 5.0,
+            "y": 190.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "RA"
+          "compName": "_submodelinterface",
+          "pinName": "Cn"
         },
         "pin2": {
-          "compName": "GUIsel2_4#0",
-          "pinName": "SB"
+          "compName": "GUIAm2901ALUInclDecode#0",
+          "pinName": "Cn"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#6",
         "path": [
           {
-            "x": 70.0,
-            "y": 180.0
-          },
-          {
-            "x": 70.0,
-            "y": 235.0
-          },
-          {
-            "x": 20.0,
-            "y": 235.0
+            "x": 10.0,
+            "y": 260.0
           },
           {
-            "x": 20.0,
-            "y": 380.0
+            "x": 10.0,
+            "y": 50.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SQ"
+          "compName": "_submodelinterface",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SC"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
-          },
-          {
-            "x": 75.0,
-            "y": 240.0
-          },
-          {
-            "x": 30.0,
-            "y": 240.0
+            "x": 15.0,
+            "y": 300.0
           },
           {
-            "x": 30.0,
-            "y": 600.0
+            "x": 15.0,
+            "y": 390.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SA"
+          "compName": "_submodelinterface",
+          "pinName": "D2"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SA"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 60.0,
-            "y": 200.0
-          },
-          {
-            "x": 60.0,
-            "y": 225.0
-          },
-          {
-            "x": 40.0,
-            "y": 225.0
+            "x": 10.0,
+            "y": 340.0
           },
           {
-            "x": 40.0,
-            "y": 580.0
+            "x": 10.0,
+            "y": 400.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2901SourceDecode#0",
-          "pinName": "SB"
+          "compName": "_submodelinterface",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIsel3_4#0",
-          "pinName": "SB"
+          "compName": "GUIsel2_4#0",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#9",
         "path": [
           {
-            "x": 65.0,
-            "y": 190.0
-          },
-          {
-            "x": 65.0,
-            "y": 230.0
-          },
-          {
-            "x": 35.0,
-            "y": 230.0
+            "x": 5.0,
+            "y": 380.0
           },
           {
-            "x": 35.0,
-            "y": 590.0
+            "x": 5.0,
+            "y": 410.0
           }
         ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1360,5 +1389,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index b32a2b1..1fd3ed8 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 90.0,
@@ -6,95 +5,106 @@ mograsim version: 0.1.3
     {
       "location": {
         "x": 0.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "R",
-      "logicWidth": 1
+      "name": "Cin",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 55.0
+        "y": 25.0
       },
-      "name": "S",
-      "logicWidth": 1
+      "name": "CinE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 5.0
       },
-      "name": "F",
-      "logicWidth": 1
+      "name": "Cout",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 75.0
+        "y": 15.0
       },
-      "name": "FN",
-      "logicWidth": 1
+      "name": "CoutE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 15.0
       },
-      "name": "Cin",
-      "logicWidth": 1
+      "name": "F",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 65.0
+        "y": 75.0
       },
-      "name": "SN",
-      "logicWidth": 1
+      "name": "FN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 85.0
       },
-      "name": "Cout",
-      "logicWidth": 1
+      "name": "L",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 45.0
+        "y": 35.0
       },
-      "name": "RN",
-      "logicWidth": 1
+      "name": "R",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 85.0
+        "y": 45.0
       },
-      "name": "L",
-      "logicWidth": 1
+      "name": "RN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 55.0
       },
-      "name": "CinE",
-      "logicWidth": 1
+      "name": "S",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 65.0
       },
-      "name": "CoutE",
-      "logicWidth": 1
+      "name": "SN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -105,22 +115,28 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIand",
+        "name": "GUIand#0",
         "pos": {
-          "x": 54.0,
-          "y": 69.0
-        },
-        "params": 1
+          "x": 10.0,
+          "y": 20.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUIand",
+        "name": "GUIand#1",
         "pos": {
-          "x": 49.0,
-          "y": 59.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUIfulladder",
+        "name": "GUIfulladder#0",
+        "pos": {
+          "x": 60.0,
+          "y": 20.0
+        }
       },
       {
         "id": "GUImux1",
@@ -131,11 +147,11 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#0",
+        "id": "GUIxor",
+        "name": "GUIxor#0",
         "pos": {
           "x": 10.0,
-          "y": 20.0
+          "y": 190.0
         }
       },
       {
@@ -155,284 +171,264 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIfulladder",
-        "name": "GUIfulladder#0",
-        "pos": {
-          "x": 60.0,
-          "y": 20.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "GUIxor#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 10.0,
-          "y": 190.0
-        }
+          "x": 49.0,
+          "y": 59.0
+        },
+        "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "GUIand#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 135.0,
-          "y": 20.0
-        }
+          "x": 54.0,
+          "y": 69.0
+        },
+        "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cin"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "C"
+          "compName": "GUIand#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#0",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "CoutE"
+        },
+        "pin2": {
+          "compName": "GUIand#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 55.0,
-            "y": 45.0
+            "x": 5.0,
+            "y": 75.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 10.0
+          },
+          {
+            "x": 130.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#1",
+          "compName": "GUIxor#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 55.0,
-            "y": 295.0
+            "x": 50.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I0"
+          "compName": "GUIfulladder#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 100.0,
-            "y": 25.0
-          },
-          {
-            "x": 100.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 65.0
-          },
-          {
-            "x": 85.0,
-            "y": 85.0
+            "x": 50.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
+          "compName": "GUIxor#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUImux1#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 82.5,
-            "y": 65.0
-          },
-          {
-            "x": 82.5,
-            "y": 95.0
+            "x": 55.0,
+            "y": 295.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIfulladder#0",
-          "pinName": "Z"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "B"
+          "compName": "GUIfulladder#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUImux1#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIand#0",
-          "pinName": "Y"
-        },
-        "pin2": {
           "compName": "GUIfulladder#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "L"
+          "pinName": "Y"
         },
         "pin2": {
           "compName": "GUImux1#0",
-          "pinName": "S0"
+          "pinName": "I0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 87.5,
-            "y": 425.0
+            "x": 100.0,
+            "y": 25.0
           },
           {
-            "x": 87.5,
-            "y": 75.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "FN"
-        },
-        "pin2": {
-          "compName": "GUIxor#2",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#7",
-        "path": [
+            "x": 100.0,
+            "y": 65.0
+          },
           {
-            "x": 130.0,
-            "y": 375.0
+            "x": 85.0,
+            "y": 65.0
           },
           {
-            "x": 130.0,
+            "x": 85.0,
             "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "SN"
+          "compName": "GUIfulladder#0",
+          "pinName": "Z"
         },
         "pin2": {
-          "compName": "GUIxor#1",
+          "compName": "GUIand#1",
           "pinName": "B"
         },
-        "name": "unnamedWire#6"
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CoutE"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#1",
-          "pinName": "A"
+          "compName": "GUImux1#0",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 5.0,
-            "y": 75.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          },
-          {
-            "x": 130.0,
-            "y": 10.0
+            "x": 82.5,
+            "y": 65.0
           },
           {
-            "x": 130.0,
-            "y": 25.0
+            "x": 82.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Cin"
+          "compName": "GUImux1#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "S"
+          "pinName": "CinE"
         },
         "pin2": {
-          "compName": "GUIxor#1",
-          "pinName": "A"
+          "compName": "GUIand#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5"
+        "name": "unnamedWire#2",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 125.0
+          },
+          {
+            "x": 7.5,
+            "y": 35.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIxor#0",
+          "compName": "GUIand#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Cout"
         },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#20",
+        "path": []
       },
       {
         "pin1": {
@@ -449,88 +445,103 @@ mograsim version: 0.1.3
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "RN"
+          "pinName": "R"
         },
         "pin2": {
           "compName": "GUIxor#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4"
+        "name": "unnamedWire#3"
       },
       {
         "pin1": {
-          "compName": "GUIand#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "RN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cout"
+          "compName": "GUIxor#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#20",
-        "path": []
+        "name": "unnamedWire#4"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "R"
+          "pinName": "S"
         },
         "pin2": {
-          "compName": "GUIxor#0",
+          "compName": "GUIxor#1",
           "pinName": "A"
         },
-        "name": "unnamedWire#3"
+        "name": "unnamedWire#5"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "SN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIxor#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
-        "path": []
+        "name": "unnamedWire#6"
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "CinE"
+          "pinName": "FN"
         },
         "pin2": {
-          "compName": "GUIand#0",
+          "compName": "GUIxor#2",
           "pinName": "B"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": [
           {
-            "x": 7.5,
-            "y": 125.0
+            "x": 130.0,
+            "y": 375.0
           },
           {
-            "x": 7.5,
-            "y": 35.0
+            "x": 130.0,
+            "y": 85.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "L"
         },
         "pin2": {
-          "compName": "GUIfulladder#0",
-          "pinName": "B"
+          "compName": "GUImux1#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#8",
         "path": [
           {
-            "x": 50.0,
-            "y": 35.0
+            "x": 87.5,
+            "y": 425.0
+          },
+          {
+            "x": 87.5,
+            "y": 75.0
           }
         ]
+      },
+      {
+        "pin1": {
+          "compName": "GUIand#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIfulladder#0",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -540,5 +551,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index 38f5fa6..0b2d611 100644 (file)
@@ -1,55 +1,60 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 60.0,
   "interfacePins": [
     {
       "location": {
-        "x": 35.0,
-        "y": 45.0
+        "x": 0.0,
+        "y": 25.0
       },
-      "name": "LSH",
-      "logicWidth": 1
+      "name": "I6",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 5.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "NSH",
-      "logicWidth": 1
+      "name": "I7",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.0,
-        "y": 15.0
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "RSH",
-      "logicWidth": 1
+      "name": "I8",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 25.0
+        "x": 35.0,
+        "y": 45.0
       },
-      "name": "I6",
-      "logicWidth": 1
+      "name": "LSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 5.0
       },
-      "name": "YF",
-      "logicWidth": 1
+      "name": "NSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 15.0
+        "x": 35.0,
+        "y": 55.0
       },
-      "name": "I7",
-      "logicWidth": 1
+      "name": "QWE",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -57,70 +62,73 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "RAMWE",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 55.0
+        "y": 15.0
       },
-      "name": "QWE",
-      "logicWidth": 1
+      "name": "RSH",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 35.0,
+        "y": 35.0
       },
-      "name": "I8",
-      "logicWidth": 1
+      "name": "YF",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 15.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 74.0,
-          "y": 159.0
+          "x": 15.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 15.0,
-          "y": 10.0
+          "x": 80.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 74.0,
-          "y": 104.0
+          "x": 110.0,
+          "y": 105.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 15.0,
-          "y": 150.0
+          "x": 115.0,
+          "y": 210.0
         },
         "params": 1
       },
@@ -134,300 +142,313 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 109.0,
-          "y": 214.0
+          "x": 15.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 4.0,
-          "y": 14.0
+          "x": 50.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 50.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 9.0,
-          "y": 59.0
+          "x": 50.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 4.0,
-          "y": 24.0
+          "x": 50.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 9.0,
-          "y": 104.0
+          "x": 80.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 9.0,
-          "y": 64.0
+          "x": 80.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 39.0,
-          "y": 59.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "name": "WireCrossPoint#1",
         "pos": {
           "x": 4.0,
-          "y": 154.0
+          "y": 14.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 44.0,
-          "y": 54.0
+          "x": 39.0,
+          "y": 134.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 44.0,
+          "x": 74.0,
           "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 39.0,
-          "y": 134.0
+          "x": 74.0,
+          "y": 99.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#13",
         "pos": {
           "x": 74.0,
-          "y": 99.0
+          "y": 104.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#14",
         "pos": {
           "x": 74.0,
-          "y": 19.0
+          "y": 159.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 115.0,
-          "y": 210.0
+          "x": 109.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 110.0,
-          "y": 105.0
+          "x": 4.0,
+          "y": 24.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 80.0,
-          "y": 145.0
+          "x": 9.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 80.0,
-          "y": 90.0
+          "x": 9.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 80.0,
-          "y": 10.0
+          "x": 9.0,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 50.0,
-          "y": 50.0
+          "x": 4.0,
+          "y": 154.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 50.0,
-          "y": 10.0
+          "x": 39.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 50.0,
-          "y": 130.0
+          "x": 44.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 50.0,
-          "y": 90.0
+          "x": 44.0,
+          "y": 54.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I8"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 165.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "LSH"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 125.0,
-            "y": 140.0
-          },
-          {
-            "x": 125.0,
-            "y": 180.0
-          }
-        ]
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I6"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#13",
         "path": []
       },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#3",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 165.0
+          }
+        ]
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -455,20 +476,15 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#16",
+        "path": []
       },
       {
         "pin1": {
@@ -476,14 +492,14 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#4",
           "pinName": "B"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#17",
         "path": [
           {
             "x": 40.0,
-            "y": 65.0
+            "y": 25.0
           }
         ]
       },
@@ -493,29 +509,17 @@ mograsim version: 0.1.3
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": [
           {
             "x": 40.0,
-            "y": 25.0
+            "y": 65.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "GUINandGate#0",
@@ -530,33 +534,38 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#41"
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "RSH"
+          "pinName": "NSH"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 130.0,
-            "y": 20.0
+            "x": 45.0,
+            "y": 5.0
           },
           {
-            "x": 130.0,
-            "y": 60.0
+            "x": 135.0,
+            "y": 5.0
+          },
+          {
+            "x": 135.0,
+            "y": 20.0
           }
         ]
       },
@@ -574,503 +583,503 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#43",
-        "path": [
-          {
-            "x": 110.0,
-            "y": 155.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "NSH"
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#23",
         "path": [
           {
             "x": 45.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 5.0
-          },
-          {
-            "x": 135.0,
-            "y": 20.0
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#24",
         "path": [
           {
-            "x": 75.0,
-            "y": 170.0
+            "x": 10.0,
+            "y": 115.0
           },
           {
-            "x": 105.0,
-            "y": 170.0
+            "x": 45.0,
+            "y": 115.0
           },
           {
-            "x": 105.0,
-            "y": 120.0
+            "x": 45.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#25",
         "path": [
           {
-            "x": 45.0,
-            "y": 95.0
+            "x": 40.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#7",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#26",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#27",
         "path": [
           {
-            "x": 110.0,
-            "y": 225.0
+            "x": 40.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#8",
           "pinName": "A"
         },
-        "name": "unnamedWire#44",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#29",
         "path": [
           {
-            "x": 40.0,
-            "y": 100.0
+            "x": 75.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "QWE"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#8",
           "pinName": "B"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 10.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 115.0
-          },
-          {
-            "x": 45.0,
-            "y": 105.0
+            "x": 75.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#5",
           "pinName": "Y"
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YF"
-        },
-        "name": "unnamedWire#46"
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "pinName": "RAMWE"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 40.0,
-            "y": 145.0
+            "x": 125.0,
+            "y": 60.0
+          },
+          {
+            "x": 125.0,
+            "y": 100.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#33",
         "path": [
           {
             "x": 75.0,
-            "y": 15.0
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
-        },
-        "name": "unnamedWire#28",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#34",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#9",
           "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "LSH"
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#36",
+        "path": [
+          {
+            "x": 125.0,
+            "y": 140.0
+          },
+          {
+            "x": 125.0,
+            "y": 180.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#10",
           "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 10.0,
-            "y": 55.0
+            "x": 75.0,
+            "y": 150.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I8"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#0",
           "pinName": "B"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#4",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "RSH"
+        },
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 75.0,
-            "y": 25.0
+            "x": 130.0,
+            "y": 20.0
+          },
+          {
+            "x": 130.0,
+            "y": 60.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I7"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#41"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
-        "path": []
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 170.0
+          },
+          {
+            "x": 105.0,
+            "y": 120.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
+          "compName": "GUINandGate#10",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
-        "name": "unnamedWire#32",
-        "path": []
+        "name": "unnamedWire#43",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 155.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RAMWE"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 125.0,
-            "y": 60.0
-          },
-          {
-            "x": 125.0,
-            "y": 100.0
+            "x": 110.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YF"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#46"
+      },
+      {
+        "pin1": {
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "QWE"
+        },
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "I6"
+          "pinName": "I7"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#34",
-        "path": []
+        "name": "unnamedWire#6",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 75.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1080,5 +1089,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index cb28db6..112fecb 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 35.0,
   "height": 50.0,
   "interfacePins": [
-    {
-      "location": {
-        "x": 35.0,
-        "y": 45.0
-      },
-      "name": "RD",
-      "logicWidth": 1
-    },
     {
       "location": {
         "x": 0.0,
         "y": 25.0
       },
       "name": "I0",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,7 +17,8 @@ mograsim version: 0.1.3
         "y": 15.0
       },
       "name": "I1",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -33,31 +26,35 @@ mograsim version: 0.1.3
         "y": 5.0
       },
       "name": "I2",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 5.0
+        "y": 15.0
       },
-      "name": "SQ",
-      "logicWidth": 1
+      "name": "RA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 35.0
+        "y": 45.0
       },
-      "name": "SA",
-      "logicWidth": 1
+      "name": "RD",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 35.0,
-        "y": 15.0
+        "y": 35.0
       },
-      "name": "RA",
-      "logicWidth": 1
+      "name": "SA",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,162 +62,172 @@ mograsim version: 0.1.3
         "y": 25.0
       },
       "name": "SB",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
+    },
+    {
+      "location": {
+        "x": 35.0,
+        "y": 5.0
+      },
+      "name": "SQ",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.25,
   "submodel": {
-    "innerScale": 0.25,
-    "subComps": [
+    "components": [
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "name": "GUINandGate#0",
         "pos": {
           "x": 10.0,
-          "y": 50.0
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 94.0,
-          "y": 19.0
+          "x": 10.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 10.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUINandGate",
+        "name": "GUINandGate#11",
         "pos": {
-          "x": 64.0,
-          "y": 139.0
+          "x": 70.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#3",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 40.0,
-          "y": 10.0
+          "x": 70.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#13",
         "pos": {
-          "x": 10.0,
-          "y": 90.0
+          "x": 100.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUINandGate",
+        "name": "GUINandGate#14",
         "pos": {
-          "x": 94.0,
-          "y": 179.0
+          "x": 100.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 6.5,
-          "y": 19.0
+          "x": 10.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#3",
         "pos": {
-          "x": 4.0,
-          "y": 19.0
+          "x": 40.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 6.5,
-          "y": 59.0
+          "x": 40.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 4.0,
-          "y": 144.0
+          "x": 40.0,
+          "y": 90.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 6.5,
-          "y": 104.0
+          "x": 40.0,
+          "y": 130.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 6.5,
-          "y": 99.0
+          "x": 40.0,
+          "y": 170.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 34.0,
-          "y": 59.0
+          "x": 70.0,
+          "y": 10.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
         "pos": {
-          "x": 31.5,
-          "y": 54.0
+          "x": 70.0,
+          "y": 50.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 34.0,
-          "y": 134.0
+          "x": 4.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 34.0,
-          "y": 64.0
+          "x": 6.5,
+          "y": 19.0
         },
         "params": 1
       },
@@ -235,481 +242,472 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "name": "WireCrossPoint#11",
         "pos": {
           "x": 64.0,
-          "y": 99.0
+          "y": 59.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "name": "WireCrossPoint#12",
         "pos": {
           "x": 64.0,
-          "y": 59.0
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 70.0,
-          "y": 170.0
+          "x": 64.0,
+          "y": 139.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 70.0,
-          "y": 130.0
+          "x": 94.0,
+          "y": 19.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#14",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 100.0,
-          "y": 170.0
+          "x": 94.0,
+          "y": 179.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 100.0,
-          "y": 10.0
+          "x": 4.0,
+          "y": 144.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 70.0,
-          "y": 90.0
+          "x": 6.5,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 70.0,
-          "y": 50.0
+          "x": 6.5,
+          "y": 99.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 70.0,
-          "y": 10.0
+          "x": 6.5,
+          "y": 104.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 40.0,
-          "y": 90.0
+          "x": 31.5,
+          "y": 54.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 40.0,
-          "y": 50.0
+          "x": 34.0,
+          "y": 59.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 40.0,
-          "y": 170.0
+          "x": 34.0,
+          "y": 64.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 40.0,
-          "y": 130.0
+          "x": 34.0,
+          "y": 134.0
         },
         "params": 1
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#0",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 65.0,
-            "y": 105.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#38",
-        "path": [
+            "x": 5.0,
+            "y": 5.0
+          },
           {
-            "x": 65.0,
-            "y": 145.0
+            "x": 35.0,
+            "y": 5.0
+          },
+          {
+            "x": 35.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#11",
-          "pinName": "A"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#10",
         "path": [
           {
-            "x": 65.0,
-            "y": 135.0
+            "x": 7.5,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#39"
+        "name": "unnamedWire#11",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
+          "compName": "GUINandGate#2",
           "pinName": "A"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 95.0,
-            "y": 15.0
+            "x": 7.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RA"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#13",
+          "compName": "GUINandGate#5",
           "pinName": "B"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 95.0,
-            "y": 25.0
+            "x": 7.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 112.5
+          },
+          {
+            "x": 32.5,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#11",
+          "compName": "GUINandGate#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SA"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#45",
-        "path": []
+        "name": "unnamedWire#16",
+        "path": [
+          {
+            "x": 32.5,
+            "y": 20.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SB"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#5",
           "pinName": "A"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 95.0,
-            "y": 175.0
+            "x": 32.5,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SQ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#3",
           "pinName": "B"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 95.0,
-            "y": 185.0
+            "x": 35.0,
+            "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#9",
-        "path": [
-          {
-            "x": 7.5,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#23",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
           "compName": "GUINandGate#6",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#7",
           "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#25",
         "path": [
-          {
-            "x": 5.0,
-            "y": 5.0
-          },
-          {
-            "x": 35.0,
-            "y": 5.0
-          },
           {
             "x": 35.0,
-            "y": 15.0
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#14",
+          "compName": "GUINandGate#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "RD"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I2"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 37.5,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 35.0
+          },
+          {
+            "x": 65.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#10",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#7",
           "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 7.5,
-            "y": 65.0
+            "x": 37.5,
+            "y": 185.0
           }
         ]
       },
+      {
+        "pin1": {
+          "compName": "GUINandGate#3",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUINandGate#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#29"
+      },
       {
         "pin1": {
           "compName": "WireCrossPoint#1",
@@ -717,404 +715,414 @@ mograsim version: 0.1.3
         },
         "pin2": {
           "compName": "GUINandGate#0",
-          "pinName": "B"
+          "pinName": "A"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#3",
         "path": [
           {
             "x": 7.5,
-            "y": 25.0
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
+        },
+        "name": "unnamedWire#30",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#0",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 7.5,
-            "y": 15.0
+            "x": 65.0,
+            "y": 55.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 7.5,
-            "y": 95.0
+            "x": 65.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
-        "path": []
+        "name": "unnamedWire#34",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
+          "compName": "GUINandGate#10",
           "pinName": "B"
         },
-        "name": "unnamedWire#14",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 105.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "A"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#37",
         "path": [
           {
-            "x": 32.5,
-            "y": 20.0
+            "x": 65.0,
+            "y": 135.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#11",
           "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#38",
         "path": [
           {
-            "x": 7.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 112.5
-          },
-          {
-            "x": 32.5,
-            "y": 105.0
+            "x": 65.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
+          "compName": "GUINandGate#12",
           "pinName": "A"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 32.5,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#39"
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#8",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#13",
+          "pinName": "A"
         },
-        "name": "unnamedWire#21",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 15.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#13",
           "pinName": "B"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 35.0,
+            "x": 95.0,
             "y": 25.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RA"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "_submodelinterface",
+          "pinName": "SB"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "SA"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 175.0
-          }
-        ]
+        "name": "unnamedWire#45",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "GUINandGate#14",
+          "pinName": "A"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#47",
         "path": [
           {
-            "x": 37.5,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 35.0
-          },
-          {
-            "x": 65.0,
-            "y": 25.0
+            "x": 95.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#14",
+          "pinName": "B"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#48",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#13",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "SQ"
         },
-        "name": "unnamedWire#29"
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 37.5,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
+          "compName": "GUINandGate#14",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "RD"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
+          "compName": "GUINandGate#6",
           "pinName": "B"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#7",
         "path": [
+          {
+            "x": 5.0,
+            "y": 195.0
+          },
           {
             "x": 65.0,
-            "y": 55.0
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#33",
-        "path": []
+        "name": "unnamedWire#9",
+        "path": [
+          {
+            "x": 7.5,
+            "y": 55.0
+          }
+        ]
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1124,5 +1132,7 @@ mograsim version: 0.1.3
     "pinLabelHeight": 3.5,
     "pinLabelMargin": 0.5
   },
-  "outlineRendererSnippetID": "default"
+  "outlineRendererSnippetID": "default",
+  "highLevelStateHandlerSnippetID": "default",
+  "version": "0.1.5"
 }
\ No newline at end of file
index dd1723b..82d233c 100644 (file)
     {
       "location": {
         "x": 0.0,
-        "y": 25.0
+        "y": 5.0
       },
-      "name": "IOVR",
-      "logicWidth": 1
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 30.0
+        "x": 120.0,
+        "y": 108.0
       },
-      "name": "_CEM",
-      "logicWidth": 1
+      "name": "C0",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 120.0,
+        "y": 60.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "CT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 61.0
+        "y": 110.0
       },
-      "name": "I",
-      "logicWidth": 13
+      "name": "Cx",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 40.0
+        "y": 61.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 13,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 17.0
+        "x": 0.0,
+        "y": 15.0
       },
-      "name": "YC",
-      "logicWidth": 1
+      "name": "IC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 108.0
+        "x": 0.0,
+        "y": 20.0
       },
-      "name": "C0",
-      "logicWidth": 1
+      "name": "IN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 36.0
+        "y": 25.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "IOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 110.0
+        "y": 10.0
       },
-      "name": "Cx",
-      "logicWidth": 1
+      "name": "IZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 21.0
+        "y": 128.0
       },
-      "name": "YN",
-      "logicWidth": 1
+      "name": "QIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 15.0
+        "y": 128.0
       },
-      "name": "IC",
-      "logicWidth": 1
+      "name": "QIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 42.0
+        "x": 120.0,
+        "y": 118.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "SIO0",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 11.0
+        "x": 0.0,
+        "y": 119.0
       },
-      "name": "YZ",
-      "logicWidth": 1
+      "name": "SIOn",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 20.0
+        "x": 120.0,
+        "y": 17.0
       },
-      "name": "IN",
-      "logicWidth": 1
+      "name": "YC",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 61.0,
-        "y": 0.0
+        "x": 120.0,
+        "y": 21.0
       },
-      "name": "_OEY",
-      "logicWidth": 1
+      "name": "YN",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 83.0
+        "x": 120.0,
+        "y": 25.0
       },
-      "name": "_SE",
-      "logicWidth": 1
+      "name": "YOVR",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 118.0
+        "y": 11.0
       },
-      "name": "SIO0",
-      "logicWidth": 1
+      "name": "YZ",
+      "logicWidth": 1,
+      "usage": "TRISTATE"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 10.0
+        "y": 30.0
       },
-      "name": "IZ",
-      "logicWidth": 1
+      "name": "_CEM",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 33.0
       },
-      "name": "CT",
-      "logicWidth": 1
+      "name": "_CEmu",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 128.0
+        "y": 38.0
       },
-      "name": "QIOn",
-      "logicWidth": 1
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 119.0
+        "y": 40.0
       },
-      "name": "SIOn",
-      "logicWidth": 1
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 33.0
+        "y": 42.0
       },
-      "name": "_CEmu",
-      "logicWidth": 1
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 51.0
+        "x": 0.0,
+        "y": 36.0
       },
-      "name": "_OECT",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 120.0,
-        "y": 25.0
+        "y": 51.0
       },
-      "name": "YOVR",
-      "logicWidth": 1
+      "name": "_OECT",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 120.0,
-        "y": 128.0
+        "x": 61.0,
+        "y": 0.0
       },
-      "name": "QIO0",
-      "logicWidth": 1
+      "name": "_OEY",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 83.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_SE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.2,
   "submodel": {
     "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2904MSR",
+        "name": "DeserializedSubmodelComponent#0",
         "pos": {
-          "x": 130.0,
-          "y": 5.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 95.0
+        }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#10",
+        "id": "GUIAm2904muSR",
+        "name": "DeserializedSubmodelComponent#1",
         "pos": {
-          "x": 340.0,
-          "y": 120.0
-        },
-        "params": 1
+          "x": 270.0,
+          "y": 250.0
+        }
       },
       {
         "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#21",
+        "name": "DeserializedSubmodelComponent#10",
         "pos": {
-          "x": 250.0,
-          "y": 820.0
+          "x": 455.0,
+          "y": 355.0
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#15",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#11",
         "pos": {
-          "x": 435.0,
-          "y": 575.0
+          "x": 265.0,
+          "y": 515.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#12",
         "pos": {
-          "x": 330.0,
-          "y": 125.0
-        },
-        "params": 1
+          "x": 315.0,
+          "y": 505.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#27",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#13",
         "pos": {
-          "x": 440.0,
-          "y": 385.0
-        },
-        "params": 1
+          "x": 365.0,
+          "y": 485.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#14",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
-        },
-        "params": 1
+          "x": 415.0,
+          "y": 465.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#18",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#15",
         "pos": {
-          "x": 35.0,
-          "y": 640.0
-        },
-        "params": 1
+          "x": 435.0,
+          "y": 575.0
+        }
       },
       {
-        "id": "GUIAm2904ShiftInstrDecode",
-        "name": "GUIAm2904ShiftInstrDecode#0",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#16",
         "pos": {
-          "x": 50.0,
-          "y": 360.0
+          "x": 435.0,
+          "y": 655.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#6",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#17",
         "pos": {
-          "x": 285.0,
-          "y": 320.0
-        },
-        "params": 3
+          "x": 190.0,
+          "y": 460.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#12",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#18",
         "pos": {
-          "x": 195.0,
-          "y": 35.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 470.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#12",
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
-          "x": 315.0,
-          "y": 505.0
+          "x": 380.0,
+          "y": 125.0
         }
       },
       {
-        "id": "GUIAm2904TestLogic",
-        "name": "DeserializedSubmodelComponent#6",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#21",
         "pos": {
-          "x": 225.0,
-          "y": 340.0
+          "x": 250.0,
+          "y": 820.0
         }
       },
       {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "GUImux2",
+        "name": "DeserializedSubmodelComponent#22",
+        "pos": {
+          "x": 120.0,
+          "y": 720.0
+        }
+      },
+      {
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#23",
         "pos": {
           "x": 300.0,
-          "y": 310.0
+          "y": 715.0
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#3",
         "pos": {
-          "x": 530.0,
-          "y": 70.0
-        },
-        "params": 4
+          "x": 470.0,
+          "y": 160.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#22",
+        "id": "GUInot4",
+        "name": "DeserializedSubmodelComponent#4",
         "pos": {
-          "x": 250.0,
-          "y": 540.0
-        },
-        "params": 1
+          "x": 135.0,
+          "y": 40.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#14",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
         "pos": {
           "x": 415.0,
-          "y": 465.0
+          "y": 210.0
         }
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#7",
+        "id": "GUIAm2904TestLogic",
+        "name": "DeserializedSubmodelComponent#6",
         "pos": {
-          "x": 205.0,
-          "y": 50.0
-        },
-        "params": 1
+          "x": 225.0,
+          "y": 340.0
+        }
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#17",
+        "id": "GUImux3",
+        "name": "DeserializedSubmodelComponent#7",
         "pos": {
-          "x": 190.0,
-          "y": 460.0
+          "x": 300.0,
+          "y": 310.0
         }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#11",
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#8",
         "pos": {
-          "x": 405.0,
-          "y": 575.0
-        },
-        "params": 3
+          "x": 495.0,
+          "y": 295.0
+        }
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#10",
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#9",
         "pos": {
-          "x": 455.0,
-          "y": 355.0
+          "x": 450.0,
+          "y": 310.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "id": "GUIAm2904RegCTInstrDecode",
+        "name": "GUIAm2904RegCTInstrDecode#0",
         "pos": {
-          "x": 150.0,
-          "y": 160.0
-        },
-        "params": 1
+          "x": 50.0,
+          "y": 240.0
+        }
       },
       {
-        "id": "GUInot4",
-        "name": "DeserializedSubmodelComponent#4",
+        "id": "GUIAm2904ShiftInstrDecode",
+        "name": "GUIAm2904ShiftInstrDecode#0",
         "pos": {
-          "x": 135.0,
-          "y": 40.0
+          "x": 50.0,
+          "y": 360.0
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#30",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
         "pos": {
-          "x": 550.0,
-          "y": 570.0
+          "x": 530.0,
+          "y": 70.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#2",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
         "pos": {
-          "x": 10.0,
-          "y": 605.0
+          "x": 565.0,
+          "y": 180.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 4
       },
       {
-        "id": "GUIAm2904muSR",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
         "pos": {
-          "x": 270.0,
-          "y": 250.0
-        }
+          "x": 530.0,
+          "y": 200.0
+        },
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#7",
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
         "pos": {
-          "x": 420.0,
-          "y": 325.0
+          "x": 560.0,
+          "y": 150.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
         "pos": {
-          "x": 255.0,
-          "y": 265.0
+          "x": 25.0,
+          "y": 245.0
         },
-        "params": 4
+        "params": 6
       },
       {
-        "id": "GUIAm2904RegCTInstrDecode",
-        "name": "GUIAm2904RegCTInstrDecode#0",
+        "id": "GUIMerger",
+        "name": "GUIMerger#1",
         "pos": {
-          "x": 50.0,
-          "y": 240.0
-        }
+          "x": 25.0,
+          "y": 305.0
+        },
+        "params": 5
+      },
+      {
+        "id": "GUIMerger",
+        "name": "GUIMerger#2",
+        "pos": {
+          "x": 15.0,
+          "y": 65.0
+        },
+        "params": 4
       },
       {
         "id": "GUIMerger",
         "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#10",
+        "id": "GUIMerger",
+        "name": "GUIMerger#4",
         "pos": {
-          "x": 420.0,
-          "y": 410.0
+          "x": 25.0,
+          "y": 355.0
         },
-        "params": 4
+        "params": 2
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#33",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 530.0,
-          "y": 270.0
+          "x": 190.0,
+          "y": 145.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#3",
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
         "pos": {
-          "x": 560.0,
-          "y": 595.0
+          "x": 130.0,
+          "y": 5.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#11",
+        "id": "GUINandGate",
+        "name": "GUINandGate#10",
         "pos": {
-          "x": 195.0,
-          "y": 15.0
+          "x": 340.0,
+          "y": 120.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#12",
         "pos": {
-          "x": 10.0,
-          "y": 245.0
+          "x": 540.0,
+          "y": 265.0
         },
-        "params": 13
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 215.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 195.0
         },
         "params": 1
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "name": "GUINandGate#3",
         "pos": {
           "x": 225.0,
-          "y": 175.0
+          "y": 215.0
         },
         "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 565.0,
-          "y": 180.0
+          "x": 225.0,
+          "y": 155.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 530.0,
-          "y": 200.0
+          "x": 225.0,
+          "y": 175.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#21",
+        "id": "GUINandGate",
+        "name": "GUINandGate#6",
         "pos": {
-          "x": 585.0,
-          "y": 640.0
+          "x": 205.0,
+          "y": 70.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
+        "id": "GUINandGate",
+        "name": "GUINandGate#7",
         "pos": {
-          "x": 255.0,
-          "y": 255.0
+          "x": 205.0,
+          "y": 50.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#8",
         "pos": {
-          "x": 560.0,
-          "y": 290.0
+          "x": 205.0,
+          "y": 30.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#9",
+        "pos": {
+          "x": 205.0,
+          "y": 10.0
+        },
+        "params": 1
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#14",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 90.0,
-          "y": 720.0
+          "x": 10.0,
+          "y": 245.0
         },
-        "params": 3
+        "params": 13
       },
       {
         "id": "GUISplitter",
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#10",
         "pos": {
-          "x": 225.0,
-          "y": 195.0
+          "x": 420.0,
+          "y": 410.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#3",
+        "name": "GUISplitter#11",
         "pos": {
-          "x": 450.0,
-          "y": 175.0
+          "x": 405.0,
+          "y": 575.0
         },
-        "params": 4
+        "params": 3
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#12",
         "pos": {
-          "x": 190.0,
-          "y": 145.0
+          "x": 405.0,
+          "y": 655.0
         },
-        "params": 1
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#13",
+        "pos": {
+          "x": 265.0,
+          "y": 725.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#14",
+        "pos": {
+          "x": 90.0,
+          "y": 720.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#15",
+        "pos": {
+          "x": 120.0,
+          "y": 455.0
+        },
+        "params": 2
+      },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
+        "pos": {
+          "x": 395.0,
+          "y": 195.0
+        },
+        "params": 2
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#9",
+        "name": "GUISplitter#3",
         "pos": {
-          "x": 240.0,
-          "y": 475.0
+          "x": 450.0,
+          "y": 175.0
         },
         "params": 4
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#13",
+        "name": "GUISplitter#4",
         "pos": {
-          "x": 265.0,
-          "y": 725.0
+          "x": 395.0,
+          "y": 225.0
         },
-        "params": 3
+        "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#2",
+        "id": "GUISplitter",
+        "name": "GUISplitter#5",
         "pos": {
-          "x": 15.0,
-          "y": 65.0
+          "x": 395.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#24",
+        "id": "GUISplitter",
+        "name": "GUISplitter#6",
         "pos": {
           "x": 285.0,
-          "y": 725.0
+          "y": 320.0
         },
-        "params": 1
+        "params": 3
       },
       {
-        "id": "GUIAm2904MSR",
-        "name": "DeserializedSubmodelComponent#0",
+        "id": "GUISplitter",
+        "name": "GUISplitter#7",
         "pos": {
-          "x": 225.0,
-          "y": 95.0
-        }
+          "x": 420.0,
+          "y": 325.0
+        },
+        "params": 4
       },
       {
         "id": "GUISplitter",
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 215.0,
-          "y": 160.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUImux3",
-        "name": "DeserializedSubmodelComponent#23",
-        "pos": {
-          "x": 300.0,
-          "y": 715.0
-        }
-      },
-      {
-        "id": "GUIMerger",
-        "name": "GUIMerger#4",
-        "pos": {
-          "x": 25.0,
-          "y": 355.0
-        },
-        "params": 2
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUISplitter",
+        "name": "GUISplitter#9",
         "pos": {
-          "x": 335.0,
-          "y": 270.0
+          "x": 240.0,
+          "y": 475.0
         },
         "params": 4
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
         "pos": {
-          "x": 25.0,
-          "y": 245.0
+          "x": 535.0,
+          "y": 165.0
         },
-        "params": 6
-      },
-      {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#9",
-        "pos": {
-          "x": 450.0,
-          "y": 310.0
+        "params": {
+          "logicWidth": 4,
+          "orientation": "RIGHT"
         }
       },
       {
         }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 530.0,
-          "y": 100.0
-        },
-        "params": 4
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 225.0,
-          "y": 155.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#2",
         "pos": {
-          "x": 295.0,
-          "y": 120.0
+          "x": 10.0,
+          "y": 605.0
         },
-        "params": 4
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#3",
         "pos": {
-          "x": 395.0,
-          "y": 195.0
+          "x": 560.0,
+          "y": 595.0
         },
-        "params": 2
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
+        }
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#5",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#4",
         "pos": {
-          "x": 395.0,
-          "y": 265.0
+          "x": 565.0,
+          "y": 655.0
         },
-        "params": 4
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#3",
-        "pos": {
-          "x": 470.0,
-          "y": 160.0
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#16",
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#5",
         "pos": {
-          "x": 435.0,
-          "y": 655.0
+          "x": 560.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 1,
+          "orientation": "RIGHT"
         }
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#28",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 440.0,
-          "y": 345.0
+          "x": 165.0,
+          "y": 150.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#17",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 360.0,
-          "y": 495.0
+          "x": 180.0,
+          "y": 135.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#26",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 290.0,
-          "y": 805.0
+          "x": 195.0,
+          "y": 55.0
         },
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#15",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#11",
         "pos": {
-          "x": 120.0,
-          "y": 455.0
+          "x": 195.0,
+          "y": 15.0
         },
-        "params": 2
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#12",
         "pos": {
-          "x": 165.0,
-          "y": 150.0
+          "x": 195.0,
+          "y": 35.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 215.0,
-          "y": 200.0
+          "x": 330.0,
+          "y": 125.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 205.0,
-          "y": 30.0
+          "x": 520.0,
+          "y": 190.0
         },
-        "params": 1
+        "params": 4
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 395.0,
-          "y": 225.0
+          "x": 255.0,
+          "y": 265.0
         },
         "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#11",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 265.0,
-          "y": 515.0
-        }
+          "x": 255.0,
+          "y": 255.0
+        },
+        "params": 4
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#17",
         "pos": {
-          "x": 560.0,
-          "y": 150.0
+          "x": 360.0,
+          "y": 495.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#3",
-        "pos": {
-          "x": 225.0,
-          "y": 215.0
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#18",
+        "pos": {
+          "x": 35.0,
+          "y": 640.0
         },
         "params": 1
       },
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 520.0,
-          "y": 190.0
+          "x": 295.0,
+          "y": 120.0
         },
         "params": 4
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#9",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#20",
         "pos": {
-          "x": 205.0,
-          "y": 10.0
+          "x": 585.0,
+          "y": 590.0
         },
         "params": 1
       },
       {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#21",
         "pos": {
-          "x": 380.0,
-          "y": 125.0
-        }
+          "x": 585.0,
+          "y": 640.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#13",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#22",
         "pos": {
-          "x": 365.0,
-          "y": 485.0
-        }
+          "x": 250.0,
+          "y": 540.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#25",
+        "name": "WireCrossPoint#23",
         "pos": {
-          "x": 285.0,
-          "y": 755.0
+          "x": 330.0,
+          "y": 640.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#24",
         "pos": {
-          "x": 540.0,
-          "y": 265.0
+          "x": 285.0,
+          "y": 725.0
         },
         "params": 1
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#4",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#25",
         "pos": {
-          "x": 565.0,
-          "y": 655.0
+          "x": 285.0,
+          "y": 755.0
         },
-        "params": {
-          "logicWidth": 1,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#20",
+        "name": "WireCrossPoint#26",
         "pos": {
-          "x": 585.0,
-          "y": 590.0
+          "x": 290.0,
+          "y": 805.0
         },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#6",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#27",
         "pos": {
-          "x": 205.0,
-          "y": 70.0
+          "x": 440.0,
+          "y": 385.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#28",
         "pos": {
-          "x": 195.0,
-          "y": 55.0
+          "x": 440.0,
+          "y": 345.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#8",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 495.0,
-          "y": 295.0
-        }
+          "x": 335.0,
+          "y": 270.0
+        },
+        "params": 4
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#18",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#30",
         "pos": {
-          "x": 135.0,
-          "y": 470.0
-        }
+          "x": 550.0,
+          "y": 570.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#32",
         "pos": {
-          "x": 415.0,
-          "y": 210.0
-        }
+          "x": 85.0,
+          "y": 590.0
+        },
+        "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#12",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#33",
         "pos": {
-          "x": 405.0,
-          "y": 655.0
+          "x": 530.0,
+          "y": 270.0
         },
-        "params": 3
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "name": "WireCrossPoint#4",
         "pos": {
-          "x": 180.0,
-          "y": 135.0
+          "x": 150.0,
+          "y": 160.0
         },
-        "params": 4
+        "params": 1
       },
       {
-        "id": "GUImux2",
-        "name": "DeserializedSubmodelComponent#22",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 120.0,
-          "y": 720.0
-        }
+          "x": 530.0,
+          "y": 100.0
+        },
+        "params": 4
       },
       {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#6",
         "pos": {
-          "x": 535.0,
-          "y": 165.0
+          "x": 120.0,
+          "y": 15.0
         },
-        "params": {
-          "logicWidth": 4,
-          "orientation": "RIGHT"
-        }
+        "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 25.0,
-          "y": 305.0
+          "x": 215.0,
+          "y": 180.0
         },
-        "params": 5
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#32",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 85.0,
-          "y": 590.0
+          "x": 215.0,
+          "y": 160.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#23",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 330.0,
-          "y": 640.0
+          "x": 215.0,
+          "y": 200.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": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#172",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#19",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I01"
-        },
-        "name": "unnamedWire#170",
-        "path": []
+        "name": "unnamedWire#0",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 25.0
+          },
+          {
+            "x": 5.0,
+            "y": 10.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_MUX"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OEn"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#202",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O1"
+          "compName": "GUISplitter#0",
+          "pinName": "O6"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "GUIMerger#1",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#103",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y010"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#119",
+        "name": "unnamedWire#100",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YOVR"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#101",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUISplitter#4",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#102",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#4",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EN"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#103",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUISplitter#4",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#104",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
-          "pinName": "I1"
+          "compName": "GUISplitter#4",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O12"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#140",
+        "name": "unnamedWire#105",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "OUT"
+          "compName": "GUISplitter#4",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CT"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#236",
+        "name": "unnamedWire#106",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IN"
+          "compName": "GUISplitter#5",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 100.0
-          },
-          {
-            "x": 5.0,
-            "y": 85.0
-          }
-        ]
+        "name": "unnamedWire#107",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "GUISplitter#5",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#108",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEC"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "B"
+          "compName": "GUISplitter#5",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#109",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I01"
+          "compName": "GUIMerger#1",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O7"
         },
-        "name": "unnamedWire#197",
+        "name": "unnamedWire#11",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "O"
+          "compName": "GUISplitter#5",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#110",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O0"
+          "compName": "GUISplitter#5",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#102",
+        "name": "unnamedWire#111",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#5",
-          "pinName": "EN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#122",
+        "name": "unnamedWire#112",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I"
         },
-        "name": "unnamedWire#55",
+        "name": "unnamedWire#113",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#108",
+        "name": "unnamedWire#114",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
+          "compName": "DeserializedSubmodelComponent#7",
           "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y110"
         },
-        "name": "unnamedWire#196",
+        "name": "unnamedWire#115",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y101"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#184",
+        "name": "unnamedWire#116",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#105",
+        "name": "unnamedWire#117",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "EN"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y011"
         },
         "pin2": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#218",
+        "name": "unnamedWire#118",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y010"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I010"
         },
-        "name": "unnamedWire#123",
+        "name": "unnamedWire#119",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O8"
         },
         "pin2": {
-          "compName": "GUINandGate#8",
-          "pinName": "A"
+          "compName": "GUIMerger#1",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#12",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUISplitter#12",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y001"
         },
-        "name": "unnamedWire#175",
+        "name": "unnamedWire#120",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y000"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EOVR"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#121",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "GUINandGate#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I10"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#171",
+        "name": "unnamedWire#122",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#229",
+        "name": "unnamedWire#123",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "Y"
+          "compName": "GUISplitter#6",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I111"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_MUX"
         },
-        "name": "unnamedWire#194",
+        "name": "unnamedWire#124",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#6",
-          "pinName": "O2"
+          "pinName": "O0"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S2"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#127",
+        "name": "unnamedWire#125",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#32",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "EN"
+          "compName": "GUISplitter#6",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#219",
+        "name": "unnamedWire#126",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUISplitter#6",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#127",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_EXP"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#9",
           "pinName": "S0"
         },
-        "name": "unnamedWire#95",
+        "name": "unnamedWire#128",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#183",
+        "name": "unnamedWire#129",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O9"
         },
-        "name": "unnamedWire#200",
+        "name": "unnamedWire#13",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUISplitter#4",
-          "pinName": "O2"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "CT_INV"
         },
-        "name": "unnamedWire#104",
+        "name": "unnamedWire#130",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#9",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#72",
+        "name": "unnamedWire#131",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "I"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I"
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 395.0
-          },
-          {
-            "x": 40.0,
-            "y": 325.0
-          }
-        ]
+        "name": "unnamedWire#132",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIO0"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "I"
         },
-        "name": "unnamedWire#160",
+        "name": "unnamedWire#133",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "GUISplitter#7",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#134",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I10"
+          "compName": "GUISplitter#8",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#27",
           "pinName": ""
         },
-        "name": "unnamedWire#198",
+        "name": "unnamedWire#135",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#16",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "M"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#136",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y000"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I000"
+          "compName": "GUISplitter#8",
+          "pinName": "I"
         },
-        "name": "unnamedWire#121",
+        "name": "unnamedWire#137",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#21",
-          "pinName": "B"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "OEN"
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#206",
+        "name": "unnamedWire#138",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y111"
+          "compName": "GUISplitter#0",
+          "pinName": "O11"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I111"
+          "compName": "GUIMerger#4",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#114",
+        "name": "unnamedWire#139",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#10",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O10"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIMerger#1",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#144",
+        "name": "unnamedWire#14",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I000"
+          "compName": "GUISplitter#0",
+          "pinName": "O12"
         },
-        "name": "unnamedWire#186",
+        "name": "unnamedWire#140",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUIMerger#4",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I101"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "I12-11"
         },
-        "name": "unnamedWire#199",
+        "name": "unnamedWire#141",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "C0_MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEmu"
+          "compName": "GUISplitter#9",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#142",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I01"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
-        "name": "unnamedWire#179",
+        "name": "unnamedWire#143",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "GUISplitter#10",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#230",
+        "name": "unnamedWire#144",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "GUISplitter#10",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIMerger#3",
+          "compName": "DeserializedSubmodelComponent#11",
           "pinName": "I0"
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#145",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#12",
-          "pinName": "B"
+          "compName": "GUISplitter#9",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#33",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#234",
+        "name": "unnamedWire#146",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Q"
+          "compName": "DeserializedSubmodelComponent#11",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "B"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#147",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIO0_MUX"
+          "compName": "GUISplitter#9",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#178",
+        "name": "unnamedWire#148",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
+          "compName": "GUISplitter#9",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#17",
+          "pinName": ""
         },
-        "name": "unnamedWire#208",
+        "name": "unnamedWire#149",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#4",
+          "compName": "GUIMerger#0",
           "pinName": "O"
         },
         "pin2": {
           "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I12-11"
+          "pinName": "I5-0"
         },
-        "name": "unnamedWire#141",
+        "name": "unnamedWire#15",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I10"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#180",
+        "name": "unnamedWire#150",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#12",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#212",
+        "name": "unnamedWire#151",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
+          "compName": "_submodelinterface",
+          "pinName": "Cx"
         },
-        "name": "unnamedWire#90",
+        "name": "unnamedWire#152",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEOVR"
+          "compName": "DeserializedSubmodelComponent#13",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#153",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
+          "compName": "WireCrossPoint#17",
           "pinName": ""
         },
-        "name": "unnamedWire#70",
+        "name": "unnamedWire#154",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "S0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUISplitter#9",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#193",
+        "name": "unnamedWire#155",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I100"
+          "compName": "DeserializedSubmodelComponent#14",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y100"
+          "compName": "_submodelinterface",
+          "pinName": "C0"
         },
-        "name": "unnamedWire#117",
+        "name": "unnamedWire#156",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A1"
+          "compName": "_submodelinterface",
+          "pinName": "QIOn"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#157",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "C0_MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "SIOn"
         },
-        "name": "unnamedWire#142",
+        "name": "unnamedWire#158",
         "path": []
       },
       {
         "pin1": {
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
+        },
+        "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "IZ"
+          "pinName": "SIO0"
+        },
+        "name": "unnamedWire#159",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I0"
+          "compName": "GUIMerger#1",
+          "pinName": "O"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 5.0,
-            "y": 50.0
+            "x": 40.0,
+            "y": 395.0
           },
           {
-            "x": 5.0,
-            "y": 65.0
+            "x": 40.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I001"
+          "compName": "_submodelinterface",
+          "pinName": "QIO0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y001"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#120",
+        "name": "unnamedWire#160",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
+          "compName": "GUITriStateBuffer#1",
           "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
-        "name": "unnamedWire#79",
+        "name": "unnamedWire#161",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "MSR_MUX"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#162",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O1"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#209",
+        "name": "unnamedWire#163",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#21",
           "pinName": ""
         },
-        "name": "unnamedWire#36",
+        "name": "unnamedWire#164",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Q"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#165",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EC"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIO0_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUISplitter#11",
+          "pinName": "I"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#166",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I0"
+          "compName": "GUISplitter#11",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Cx"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#152",
+        "name": "unnamedWire#167",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#11",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S1"
+        },
+        "name": "unnamedWire#168",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "S0"
+        },
+        "pin2": {
+          "compName": "GUISplitter#11",
+          "pinName": "O1"
+        },
+        "name": "unnamedWire#169",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O8"
+          "compName": "_submodelinterface",
+          "pinName": "IOVR"
+        },
+        "pin2": {
+          "compName": "GUIMerger#2",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#17",
+        "path": [
+          {
+            "x": 10.0,
+            "y": 125.0
+          },
+          {
+            "x": 10.0,
+            "y": 95.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#170",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#18",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OECT"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#235",
+        "name": "unnamedWire#171",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O4"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I4"
+          "compName": "GUISplitter#8",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#172",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#22",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#153",
+        "name": "unnamedWire#173",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#8",
-          "pinName": "O2"
+          "compName": "GUISplitter#12",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#27",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#135",
+        "name": "unnamedWire#174",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#6",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "S1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EOVR"
+          "compName": "GUISplitter#12",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#66",
+        "name": "unnamedWire#175",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "GUISplitter#12",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#6",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#176",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "I5-0"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#177",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUISplitter#12",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "C"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIO0_MUX"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#178",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I01"
         },
-        "name": "unnamedWire#232",
+        "name": "unnamedWire#179",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "C"
+          "compName": "GUIMerger#2",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#30",
-        "path": []
+        "name": "unnamedWire#18",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 100.0
+          },
+          {
+            "x": 5.0,
+            "y": 85.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#18",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I10"
         },
-        "name": "unnamedWire#214",
+        "name": "unnamedWire#180",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#16",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#129",
+        "name": "unnamedWire#181",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I001"
+          "compName": "DeserializedSubmodelComponent#15",
+          "pinName": "I11"
         },
         "pin2": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#23",
           "pinName": ""
         },
-        "name": "unnamedWire#187",
+        "name": "unnamedWire#182",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#13",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
+        "name": "unnamedWire#183",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#24",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#223",
+        "name": "unnamedWire#184",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#24",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#185",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I000"
         },
-        "name": "unnamedWire#146",
+        "name": "unnamedWire#186",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_SE"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I001"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "_SE"
+          "compName": "WireCrossPoint#25",
+          "pinName": ""
         },
-        "name": "unnamedWire#213",
+        "name": "unnamedWire#187",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "YC"
+          "compName": "GUISplitter#13",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "SIOn_MUX"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#188",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "GUISplitter#13",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S2"
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#189",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y101"
+          "compName": "_submodelinterface",
+          "pinName": "IC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I101"
+          "compName": "GUIMerger#2",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#116",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "O0"
+          "compName": "GUISplitter#13",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#125",
+        "name": "unnamedWire#190",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I010"
         },
         "pin2": {
           "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#224",
+        "name": "unnamedWire#191",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#2",
-          "pinName": "O"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I011"
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#192",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I100"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#23",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#193",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#16",
+          "compName": "DeserializedSubmodelComponent#21",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I111"
         },
-        "name": "unnamedWire#177",
+        "name": "unnamedWire#194",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#195",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I110"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#231",
+        "name": "unnamedWire#196",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I01"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#20",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#197",
         "path": []
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "Y"
+          "pinName": "I10"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
-        "name": "unnamedWire#207",
+        "name": "unnamedWire#198",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_EXP"
+          "compName": "WireCrossPoint#26",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#23",
+          "pinName": "I101"
         },
-        "name": "unnamedWire#128",
+        "name": "unnamedWire#199",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S0"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_OVRRET"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "OVRRET"
         },
-        "name": "unnamedWire#169",
+        "name": "unnamedWire#2",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "IZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
+          "compName": "GUIMerger#2",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#54",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 50.0
+          },
+          {
+            "x": 5.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#27",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I00"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "B"
         },
-        "name": "unnamedWire#176",
+        "name": "unnamedWire#200",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#26",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIO0"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I11"
         },
-        "name": "unnamedWire#159",
+        "name": "unnamedWire#201",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#30",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OEn"
         },
-        "name": "unnamedWire#215",
+        "name": "unnamedWire#202",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_2"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "OE0"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#98",
+        "name": "unnamedWire#203",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S1"
+          "compName": "WireCrossPoint#28",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#6",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#126",
+        "name": "unnamedWire#204",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#27",
+          "compName": "WireCrossPoint#28",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "A"
         },
-        "name": "unnamedWire#195",
+        "name": "unnamedWire#205",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#21",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#7",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#206",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I110"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y110"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "IN"
         },
-        "name": "unnamedWire#115",
+        "name": "unnamedWire#207",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_MUX"
+          "compName": "GUISplitter#14",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUISplitter#15",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S1"
         },
-        "name": "unnamedWire#226",
+        "name": "unnamedWire#208",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "SIOn"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#158",
+        "name": "unnamedWire#209",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O10"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_CINV"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "CINV"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "S0"
+          "compName": "GUISplitter#14",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O3"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "QIOn_MUX"
         },
-        "name": "unnamedWire#155",
+        "name": "unnamedWire#210",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#14",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#22",
+          "pinName": "I00"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#211",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#5",
+          "compName": "GUITriStateBuffer#2",
           "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
+          "compName": "DeserializedSubmodelComponent#23",
           "pinName": "Y"
         },
-        "name": "unnamedWire#237",
+        "name": "unnamedWire#212",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_SE"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "_SE"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#213",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O0"
+          "compName": "GUITriStateBuffer#3",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
-        "name": "unnamedWire#227",
+        "name": "unnamedWire#214",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#30",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I00"
+          "compName": "GUITriStateBuffer#4",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#211",
+        "name": "unnamedWire#215",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#1",
-          "pinName": "OUT"
+          "compName": "GUITriStateBuffer#2",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
+          "compName": "WireCrossPoint#32",
           "pinName": ""
         },
-        "name": "unnamedWire#161",
+        "name": "unnamedWire#218",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#32",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S1"
+          "compName": "GUITriStateBuffer#1",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#190",
+        "name": "unnamedWire#219",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#12",
-          "pinName": "O1"
+          "compName": "GUIMerger#2",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#174",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#221",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_V"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#222",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEN"
+          "compName": "WireCrossPoint#19",
+          "pinName": ""
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#223",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#20",
+          "pinName": ""
         },
-        "name": "unnamedWire#132",
+        "name": "unnamedWire#224",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "QIOn"
+          "compName": "WireCrossPoint#21",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#18",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "I1"
         },
-        "name": "unnamedWire#157",
+        "name": "unnamedWire#225",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EN"
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_MUX"
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "Y"
+          "compName": "GUISplitter#15",
+          "pinName": "I"
         },
-        "name": "unnamedWire#67",
+        "name": "unnamedWire#226",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "B"
+          "compName": "GUISplitter#15",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_WEZ"
+          "compName": "DeserializedSubmodelComponent#18",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#227",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "GUISplitter#15",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#17",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#87",
+        "name": "unnamedWire#228",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "Y"
+          "compName": "GUIBitDisplay#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#9",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#131",
+        "name": "unnamedWire#229",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#150",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "O2"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "S2"
+          "compName": "GUIBitDisplay#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#189",
+        "name": "unnamedWire#230",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#16",
-          "pinName": "I11"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#181",
+        "name": "unnamedWire#231",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "Y"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "C0"
+          "compName": "GUIBitDisplay#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#156",
+        "name": "unnamedWire#232",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_MUX"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "MUX"
+          "compName": "GUINandGate#12",
+          "pinName": "A"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#233",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O6"
+          "compName": "GUINandGate#12",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUIMerger#1",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#234",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#33",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_V"
+          "compName": "_submodelinterface",
+          "pinName": "_OECT"
         },
-        "name": "unnamedWire#222",
+        "name": "unnamedWire#235",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "Y_MUX"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "_submodelinterface",
+          "pinName": "CT"
         },
-        "name": "unnamedWire#94",
+        "name": "unnamedWire#236",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUITriStateBuffer#5",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A4"
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#237",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#15",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "mu"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#86",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "B"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#147",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I010"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Q"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#191",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#33",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#12",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "mu"
         },
-        "name": "unnamedWire#233",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CEM"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#7",
-          "pinName": "A"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "C"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "MSR_MUX"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I"
+          "pinName": "MUX"
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#31",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "GUIAm2904ShiftInstrDecode#0",
+          "pinName": "MC_EN"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "COVD_EN"
         },
-        "name": "unnamedWire#225",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#9",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#33",
         "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": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
           "compName": "_submodelinterface",
-          "pinName": "YZ"
+          "pinName": "_CEmu"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#4",
-          "pinName": "I"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#106",
+        "name": "unnamedWire#36",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#7",
-          "pinName": "B"
+          "compName": "GUINandGate#4",
+          "pinName": "A"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O11"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#4",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#139",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "A"
         },
-        "name": "unnamedWire#143",
+        "name": "unnamedWire#39",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_OVRRET"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "OVRRET"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#40",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#113",
+        "name": "unnamedWire#41",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "OEN"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#138",
+        "name": "unnamedWire#42",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#8",
+          "compName": "GUINandGate#3",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#65",
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IC"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I1"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#45",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "OE0"
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#30",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#203",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#22",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEZ"
         },
-        "name": "unnamedWire#173",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I11"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEC"
         },
         "pin2": {
-          "compName": "WireCrossPoint#23",
-          "pinName": ""
+          "compName": "GUINandGate#5",
+          "pinName": "B"
         },
-        "name": "unnamedWire#182",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "IN"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "YZ"
         },
-        "name": "unnamedWire#165",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "YC"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_INV"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#130",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#4",
-          "pinName": "OUT"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#21",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "YN"
         },
-        "name": "unnamedWire#164",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I3"
+          "compName": "_submodelinterface",
+          "pinName": "YOVR"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O9"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "MC_EN"
+          "compName": "GUISplitter#1",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#53",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#7",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#133",
+        "name": "unnamedWire#54",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "M"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#136",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#101",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_CEM"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#0",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 25.0
-          },
-          {
-            "x": 5.0,
-            "y": 10.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "GUISplitter#5",
-          "pinName": "O2"
-        },
-        "name": "unnamedWire#109",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_1"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEN"
         },
-        "name": "unnamedWire#97",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y011"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "muSR_WEOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I011"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
-        "name": "unnamedWire#118",
+        "name": "unnamedWire#59",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#6",
-          "pinName": "I"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "CT_MUX"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#124",
+        "name": "unnamedWire#6",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#7",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "A"
         },
-        "name": "unnamedWire#134",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#3",
-          "pinName": "I3"
+          "compName": "GUINandGate#7",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#92",
+        "name": "unnamedWire#61",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
+          "compName": "GUINandGate#8",
+          "pinName": "A"
         },
-        "name": "unnamedWire#110",
+        "name": "unnamedWire#62",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
+          "compName": "GUINandGate#9",
           "pinName": "A"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#25",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#24",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
-        "name": "unnamedWire#185",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#4",
-          "pinName": "A"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "A"
+          "compName": "GUINandGate#6",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUISplitter#9",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EOVR"
         },
-        "name": "unnamedWire#148",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I5"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EN"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O5"
+          "compName": "GUINandGate#7",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#67",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#9",
-          "pinName": "O2"
+          "compName": "GUINandGate#8",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EC"
         },
-        "name": "unnamedWire#149",
+        "name": "unnamedWire#68",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#14",
-          "pinName": "I"
+          "compName": "GUINandGate#9",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "QIOn_MUX"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#210",
+        "name": "unnamedWire#69",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#7",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
-        "name": "unnamedWire#112",
+        "name": "unnamedWire#70",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "IOVR"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIMerger#2",
-          "pinName": "I3"
+          "compName": "GUINandGate#9",
+          "pinName": "B"
         },
-        "name": "unnamedWire#17",
-        "path": [
-          {
-            "x": 10.0,
-            "y": 125.0
-          },
-          {
-            "x": 10.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#71",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#8",
+          "pinName": "B"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "A2"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#72",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#28",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#10",
-          "pinName": "A"
+          "compName": "GUINandGate#7",
+          "pinName": "B"
         },
-        "name": "unnamedWire#204",
+        "name": "unnamedWire#73",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#3",
-          "pinName": "OUT"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#20",
-          "pinName": ""
+          "compName": "GUINandGate#6",
+          "pinName": "B"
         },
-        "name": "unnamedWire#163",
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#9",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
-        "pin1": {
-          "compName": "GUIAm2904RegCTInstrDecode#0",
-          "pinName": "muSR_CINV"
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "CINV"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A2"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#10",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O2"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "S1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "A4"
         },
-        "name": "unnamedWire#168",
+        "name": "unnamedWire#78",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#14",
-          "pinName": "I0"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#17",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#154",
+        "name": "unnamedWire#79",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#18",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
-          "pinName": "I0"
+          "compName": "GUIMerger#0",
+          "pinName": "I4"
         },
-        "name": "unnamedWire#221",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#21",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#23",
-          "pinName": "I011"
+          "compName": "GUINandGate#10",
+          "pinName": "A"
         },
-        "name": "unnamedWire#192",
+        "name": "unnamedWire#80",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#11",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#15",
-          "pinName": "I00"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#167",
+        "name": "unnamedWire#81",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_OEY"
         },
-        "name": "unnamedWire#96",
+        "name": "unnamedWire#82",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "O0"
+          "compName": "GUINandGate#10",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#107",
+        "name": "unnamedWire#83",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "YN"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#84",
         "path": []
       },
       {
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I1_4"
+          "pinName": "I1_2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#86",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#12",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#13",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#151",
+        "name": "unnamedWire#87",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#1",
-          "pinName": "I1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O7"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#88",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIO0_MUX"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#11",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#166",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "I5"
         },
         "pin2": {
-          "compName": "GUINandGate#10",
-          "pinName": "A"
+          "compName": "GUISplitter#0",
+          "pinName": "O5"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "I0_3"
+          "compName": "GUIMerger#3",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#99",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "GUIMerger#3",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#2",
-          "pinName": "OUT"
+          "compName": "GUIMerger#3",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#19",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#162",
+        "name": "unnamedWire#92",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#13",
-          "pinName": "I"
+          "compName": "GUIMerger#3",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "GUIAm2904ShiftInstrDecode#0",
-          "pinName": "SIOn_MUX"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#188",
+        "name": "unnamedWire#93",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#5",
-          "pinName": "I"
+          "compName": "GUIAm2904RegCTInstrDecode#0",
+          "pinName": "Y_MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#111",
+        "name": "unnamedWire#94",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#15",
-          "pinName": "O1"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#17",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "S0"
         },
-        "name": "unnamedWire#228",
+        "name": "unnamedWire#95",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#26",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#22",
-          "pinName": "I11"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#201",
+        "name": "unnamedWire#96",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "_EZ"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#97",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "GUISplitter#8",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#137",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUISplitter#10",
+          "compName": "GUISplitter#3",
           "pinName": "O1"
         },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#11",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#145",
+        "name": "unnamedWire#98",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OEY"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#99",
         "path": []
       }
     ],
   "outlineRendererSnippetID": "default",
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
+    "subcomponentHighLevelStates": {
+      "musr": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "DeserializedSubmodelComponent#1"
+        }
+      },
+      "msr": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "DeserializedSubmodelComponent#0"
+        }
+      }
+    },
     "atomicHighLevelStates": {}
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 4a24464..6e93abf 100644 (file)
@@ -4,19 +4,12 @@
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 3
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 46.0
       },
       "name": "COVD_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
+        "x": 37.5,
         "y": 46.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "COVD_V",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "COVD_V",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 3,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 5.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "mu",
-      "logicWidth": 4
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "y": 18.0
       },
       "name": "Y",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 15.5,
+        "y": 0.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "_EC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
         "y": 0.0
       },
       "name": "_EN",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 15.5,
+        "x": 35.5,
+        "y": 0.2
+      },
+      "name": "_EOVR",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
         "y": 0.0
       },
-      "name": "_EC",
-      "logicWidth": 1
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 35.5,
-        "y": 0.2
+        "x": 0.0,
+        "y": 5.0
       },
-      "name": "_EOVR",
-      "logicWidth": 1
+      "name": "mu",
+      "logicWidth": 4,
+      "usage": "INPUT"
     }
   ],
   "innerScale": 0.1,
   "submodel": {
     "components": [
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 419.0,
-          "y": 184.0
-        },
-        "params": 1
-      },
       {
         "id": "GUImux1_4",
         "name": "DeserializedSubmodelComponent#0",
           "y": 110.0
         }
       },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 35.0,
+          "y": 250.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#2",
+        "pos": {
+          "x": 150.0,
+          "y": 280.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": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#5",
+        "pos": {
+          "x": 200.0,
+          "y": 230.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#6",
+        "pos": {
+          "x": 250.0,
+          "y": 180.0
+        }
+      },
+      {
+        "id": "GUImux1",
+        "name": "DeserializedSubmodelComponent#7",
+        "pos": {
+          "x": 325.0,
+          "y": 290.0
+        }
+      },
+      {
+        "id": "GUIand",
+        "name": "DeserializedSubmodelComponent#8",
+        "pos": {
+          "x": 380.0,
+          "y": 85.0
+        }
+      },
       {
         "id": "GUIMerger",
         "name": "GUIMerger#0",
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
         "pos": {
-          "x": 84.0,
-          "y": 344.0
+          "x": 325.0,
+          "y": 90.0
         },
         "params": 1
       },
         "params": 4
       },
       {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 74.0,
-          "y": 314.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "id": "GUISplitter",
+        "name": "GUISplitter#1",
         "pos": {
-          "x": 424.0,
-          "y": 194.0
+          "x": 5.0,
+          "y": 165.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUISplitter",
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#1",
+        "name": "GUISplitter#3",
         "pos": {
           "x": 5.0,
-          "y": 165.0
+          "y": 295.0
         },
         "params": 4
       },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
+      },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
+        "name": "WireCrossPoint#0",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 29.0,
+          "y": 284.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
+        "pos": {
+          "x": 414.0,
+          "y": 174.0
+        },
+        "params": 1
+      },
+      {
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#10",
+        "pos": {
+          "x": 89.0,
+          "y": 84.0
         },
         "params": 1
       },
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#13",
         "pos": {
-          "x": 325.0,
-          "y": 90.0
+          "x": 194.0,
+          "y": 234.0
         },
         "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#14",
         "pos": {
-          "x": 200.0,
-          "y": 230.0
-        }
+          "x": 89.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1",
-        "name": "DeserializedSubmodelComponent#7",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#15",
         "pos": {
-          "x": 325.0,
-          "y": 290.0
-        }
+          "x": 319.0,
+          "y": 294.0
+        },
+        "params": 1
       },
       {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#2",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#16",
         "pos": {
-          "x": 150.0,
-          "y": 280.0
-        }
+          "x": 319.0,
+          "y": 104.0
+        },
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 29.0,
-          "y": 284.0
+          "x": 419.0,
+          "y": 184.0
         },
         "params": 1
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#1",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#3",
         "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
-        }
+          "x": 424.0,
+          "y": 194.0
+        },
+        "params": 1
       },
       {
         "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#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 29.0,
-          "y": 254.0
+          "x": 84.0,
+          "y": 344.0
         },
         "params": 1
       },
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#14",
-        "pos": {
-          "x": 89.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 89.0,
-          "y": 84.0
+          "x": 29.0,
+          "y": 254.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#15",
+        "name": "WireCrossPoint#8",
         "pos": {
-          "x": 319.0,
-          "y": 294.0
+          "x": 74.0,
+          "y": 314.0
         },
         "params": 1
       },
           "y": 114.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#16",
-        "pos": {
-          "x": 319.0,
-          "y": 104.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#13",
-        "pos": {
-          "x": 194.0,
-          "y": 234.0
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "params": 1
-      },
-      {
-        "id": "GUIand",
-        "name": "DeserializedSubmodelComponent#8",
-        "pos": {
-          "x": 380.0,
-          "y": 85.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#6",
-        "pos": {
-          "x": 250.0,
-          "y": 180.0
-        }
+        "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
+          }
+        ]
       },
-      {
-        "id": "GUISplitter",
-        "name": "GUISplitter#3",
-        "pos": {
-          "x": 5.0,
-          "y": 295.0
-        },
-        "params": 4
-      }
-    ],
-    "wires": [
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#1",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 355.0,
+            "y": 30.0
           },
           {
-            "x": 35.0,
-            "y": 125.0
+            "x": 355.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "mu"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "S0"
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#68",
+        "name": "unnamedWire#10",
         "path": []
       },
       {
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#61",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 75.0,
-            "y": 265.0
+            "x": 35.0,
+            "y": 35.0
+          },
+          {
+            "x": 35.0,
+            "y": 125.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 135.0
+          },
+          {
+            "x": 30.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
+          "compName": "GUISplitter#0",
           "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#82",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 245.0,
-            "y": 445.0
+            "x": 25.0,
+            "y": 55.0
           },
           {
-            "x": 245.0,
-            "y": 185.0
+            "x": 25.0,
+            "y": 145.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "S0"
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
         },
-        "name": "unnamedWire#43",
-        "path": []
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 155.0
+          },
+          {
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y2"
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#13",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#67",
-        "path": [
-          {
-            "x": 195.0,
-            "y": 435.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A3"
-        },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 425.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 390.0
-          },
-          {
-            "x": 90.0,
-            "y": 355.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
-        },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_4"
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_2"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#53",
+        "name": "unnamedWire#19",
         "path": []
       },
       {
         "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "C"
+          "pinName": "_EN"
         },
         "pin2": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "pinName": "_WE3"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#2",
         "path": [
-          {
-            "x": 140.0,
-            "y": 415.0
-          },
-          {
-            "x": 255.0,
-            "y": 415.0
-          },
           {
             "x": 255.0,
-            "y": 280.0
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 280.0
+            "x": 360.0,
+            "y": 25.0
           },
           {
-            "x": 340.0,
-            "y": 175.0
+            "x": 360.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_2"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y2"
-        },
-        "name": "unnamedWire#31",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#20",
         "path": [
           {
-            "x": 420.0,
-            "y": 385.0
-          },
-          {
-            "x": 85.0,
-            "y": 385.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_EN"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#84",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 295.0
-          }
-        ]
+        "name": "unnamedWire#21",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#3",
+          "pinName": "I"
         },
-        "name": "unnamedWire#79",
-        "path": [
-          {
-            "x": 205.0,
-            "y": 85.0
-          },
-          {
-            "x": 205.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#22",
+        "path": []
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#89",
+        "name": "unnamedWire#24",
+        "path": [
+          {
+            "x": 60.0,
+            "y": 425.0
+          },
+          {
+            "x": 60.0,
+            "y": 415.0
+          },
+          {
+            "x": 30.0,
+            "y": 415.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "A"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#77",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_1"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#57",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
         },
         "pin2": {
-          "compName": "GUISplitter#3",
-          "pinName": "I"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#28",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q4"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#29",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#3",
         "path": [
           {
-            "x": 25.0,
-            "y": 55.0
+            "x": 155.0,
+            "y": 20.0
           },
           {
-            "x": 25.0,
-            "y": 145.0
+            "x": 365.0,
+            "y": 20.0
+          },
+          {
+            "x": 365.0,
+            "y": 90.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
+          "compName": "DeserializedSubmodelComponent#3",
           "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "I1_1"
         },
-        "name": "unnamedWire#63",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 135.0
-          },
-          {
-            "x": 30.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#31",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#44",
+        "name": "unnamedWire#32",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#33",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_4"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A1"
         },
-        "name": "unnamedWire#78",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 200.0,
-            "y": 225.0
+            "x": 415.0,
+            "y": 380.0
           },
           {
-            "x": 200.0,
-            "y": 95.0
+            "x": 80.0,
+            "y": 380.0
+          },
+          {
+            "x": 80.0,
+            "y": 335.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#65",
-        "path": []
+        "name": "unnamedWire#35",
+        "path": [
+          {
+            "x": 420.0,
+            "y": 385.0
+          },
+          {
+            "x": 85.0,
+            "y": 385.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A3"
         },
-        "name": "unnamedWire#20",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 425.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 390.0
+          },
+          {
+            "x": 90.0,
+            "y": 355.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 430.0,
+            "y": 395.0
+          },
+          {
+            "x": 95.0,
+            "y": 395.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "GUISplitter#3",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#38",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#54",
+        "name": "unnamedWire#39",
         "path": [
           {
-            "x": 90.0,
-            "y": 75.0
+            "x": 85.0,
+            "y": 325.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y3"
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
-        "name": "unnamedWire#32",
-        "path": []
+        "name": "unnamedWire#4",
+        "path": [
+          {
+            "x": 55.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 15.0
+          },
+          {
+            "x": 370.0,
+            "y": 185.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#6",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#40",
+        "path": [
+          {
+            "x": 95.0,
+            "y": 305.0
+          }
+        ]
       },
       {
         "pin1": {
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
+        },
+        "name": "unnamedWire#42",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 230.0
+          },
+          {
+            "x": 50.0,
+            "y": 230.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "S0"
+        },
+        "name": "unnamedWire#43",
+        "path": []
+      },
+      {
+        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#19",
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_1"
+        },
+        "name": "unnamedWire#44",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A1"
+          "compName": "WireCrossPoint#14",
+          "pinName": ""
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 415.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 380.0
-          },
-          {
-            "x": 80.0,
-            "y": 335.0
+            "x": 50.0,
+            "y": 105.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "mu"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_3"
+        },
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O0"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#48",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 50.0,
-            "y": 105.0
-          }
-        ]
+        "name": "unnamedWire#49",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#92",
-        "path": [
-          {
-            "x": 320.0,
-            "y": 95.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "I0_3"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
           "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#50",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#11",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#14",
           "pinName": ""
         },
-        "name": "unnamedWire#24",
-        "path": [
-          {
-            "x": 60.0,
-            "y": 425.0
-          },
-          {
-            "x": 60.0,
-            "y": 415.0
-          },
-          {
-            "x": 30.0,
-            "y": 415.0
-          }
-        ]
+        "name": "unnamedWire#51",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#11",
           "pinName": ""
         },
-        "name": "unnamedWire#37",
-        "path": [
-          {
-            "x": 430.0,
-            "y": 395.0
-          },
-          {
-            "x": 95.0,
-            "y": 395.0
-          }
-        ]
+        "name": "unnamedWire#52",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#53",
         "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#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#93",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
+          "compName": "DeserializedSubmodelComponent#3",
+          "pinName": "A2"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#5",
+        "name": "unnamedWire#56",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y3"
+          "compName": "WireCrossPoint#12",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#75",
+        "name": "unnamedWire#57",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A2"
+          "compName": "GUISplitter#3",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#8",
           "pinName": ""
         },
-        "name": "unnamedWire#56",
+        "name": "unnamedWire#58",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "COVD_V"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "I1"
-        },
-        "name": "unnamedWire#86",
-        "path": [
-          {
-            "x": 375.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 325.0
-          },
-          {
-            "x": 320.0,
-            "y": 315.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#13",
+          "compName": "WireCrossPoint#12",
           "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#69",
+        "name": "unnamedWire#59",
         "path": [
           {
-            "x": 105.0,
-            "y": 235.0
-          },
-          {
-            "x": 105.0,
-            "y": 65.0
+            "x": 20.0,
+            "y": 245.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#6",
         "path": []
       },
-      {
-        "pin1": {
-          "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"
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#64",
+        "name": "unnamedWire#60",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
-        "path": []
+        "name": "unnamedWire#61",
+        "path": [
+          {
+            "x": 75.0,
+            "y": 265.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_4"
+          "compName": "GUISplitter#3",
+          "pinName": "O3"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#62",
         "path": [
           {
-            "x": 85.0,
+            "x": 80.0,
             "y": 325.0
+          },
+          {
+            "x": 80.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#60",
+        "name": "unnamedWire#63",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "S0"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#85",
+        "name": "unnamedWire#64",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y3"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_3"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#65",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "I1_4"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#91",
+        "name": "unnamedWire#66",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I0_2"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#67",
         "path": [
           {
-            "x": 95.0,
-            "y": 305.0
+            "x": 195.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#13",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 230.0
-          },
-          {
-            "x": 50.0,
-            "y": 230.0
-          }
-        ]
+        "name": "unnamedWire#68",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#13",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#81",
+        "name": "unnamedWire#69",
         "path": [
           {
-            "x": 215.0,
-            "y": 65.0
+            "x": 105.0,
+            "y": 235.0
           },
           {
-            "x": 215.0,
-            "y": 195.0
+            "x": 105.0,
+            "y": 65.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#4",
-        "path": [
-          {
-            "x": 55.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 15.0
-          },
-          {
-            "x": 370.0,
-            "y": 185.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y4"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
         },
-        "name": "unnamedWire#73",
+        "name": "unnamedWire#70",
         "path": [
           {
-            "x": 310.0,
-            "y": 225.0
+            "x": 295.0,
+            "y": 215.0
           },
           {
-            "x": 310.0,
-            "y": 185.0
+            "x": 295.0,
+            "y": 255.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#66",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#71",
         "path": [
           {
-            "x": 255.0,
-            "y": 25.0
-          },
-          {
-            "x": 360.0,
-            "y": 25.0
+            "x": 300.0,
+            "y": 245.0
           },
           {
-            "x": 360.0,
+            "x": 300.0,
             "y": 205.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "A4"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#55",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y4"
-        },
-        "name": "unnamedWire#33",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#8",
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#14",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#51",
+        "name": "unnamedWire#73",
+        "path": [
+          {
+            "x": 310.0,
+            "y": 225.0
+          },
+          {
+            "x": 310.0,
+            "y": 185.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_4"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y4"
+        },
+        "name": "unnamedWire#74",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
+          "compName": "DeserializedSubmodelComponent#5",
           "pinName": "Y3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
+          "compName": "DeserializedSubmodelComponent#6",
           "pinName": "I1_3"
         },
-        "name": "unnamedWire#47",
+        "name": "unnamedWire#75",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_2"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#83",
+        "name": "unnamedWire#76",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#5",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#58",
+        "name": "unnamedWire#77",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_4"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#26",
-        "path": []
+        "name": "unnamedWire#78",
+        "path": [
+          {
+            "x": 200.0,
+            "y": 225.0
+          },
+          {
+            "x": 200.0,
+            "y": 95.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y3"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "Y3"
+          "pinName": "I0_3"
         },
-        "name": "unnamedWire#71",
+        "name": "unnamedWire#79",
         "path": [
           {
-            "x": 300.0,
-            "y": 245.0
+            "x": 205.0,
+            "y": 85.0
           },
           {
-            "x": 300.0,
-            "y": 205.0
+            "x": 205.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#12",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_1"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y2"
         },
-        "name": "unnamedWire#59",
+        "name": "unnamedWire#80",
         "path": [
           {
-            "x": 20.0,
-            "y": 245.0
+            "x": 210.0,
+            "y": 205.0
+          },
+          {
+            "x": 210.0,
+            "y": 75.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#4",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "I0_1"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#81",
         "path": [
           {
-            "x": 20.0,
-            "y": 155.0
+            "x": 215.0,
+            "y": 65.0
           },
           {
-            "x": 20.0,
-            "y": 65.0
+            "x": 215.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I0_2"
+          "compName": "GUISplitter#2",
+          "pinName": "O2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#4",
-          "pinName": "Y2"
+          "compName": "DeserializedSubmodelComponent#6",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#80",
+        "name": "unnamedWire#82",
         "path": [
           {
-            "x": 210.0,
-            "y": 205.0
+            "x": 245.0,
+            "y": 445.0
           },
           {
-            "x": 210.0,
-            "y": 75.0
+            "x": 245.0,
+            "y": 185.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#7",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#88",
+        "name": "unnamedWire#83",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_EN"
+        },
+        "name": "unnamedWire#84",
         "path": [
           {
-            "x": 365.0,
+            "x": 275.0,
             "y": 295.0
-          },
-          {
-            "x": 365.0,
-            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#3",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "I0_4"
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#62",
+        "name": "unnamedWire#85",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "COVD_V"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "I1"
+        },
+        "name": "unnamedWire#86",
         "path": [
           {
-            "x": 80.0,
+            "x": 375.0,
             "y": 325.0
           },
           {
-            "x": 80.0,
-            "y": 275.0
+            "x": 320.0,
+            "y": 325.0
+          },
+          {
+            "x": 320.0,
+            "y": 315.0
           }
         ]
       },
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#16",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#7",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#15",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#90",
-        "path": []
+        "name": "unnamedWire#88",
+        "path": [
+          {
+            "x": 365.0,
+            "y": 295.0
+          },
+          {
+            "x": 365.0,
+            "y": 235.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#11",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#8",
+          "pinName": "B"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#89",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y2"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#76",
+        "name": "unnamedWire#9",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#3",
-          "pinName": "Y1"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "I1_1"
+          "compName": "WireCrossPoint#15",
+          "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#90",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#6",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#5",
-          "pinName": "Y4"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#74",
+        "name": "unnamedWire#91",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#8",
-          "pinName": "A"
+          "compName": "WireCrossPoint#16",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#92",
         "path": [
           {
-            "x": 155.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 20.0
-          },
-          {
-            "x": 365.0,
-            "y": 90.0
+            "x": 320.0,
+            "y": 95.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#93",
         "path": []
       }
     ],
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff4_finewe#0",
+          "subStateID": "q"
+        }
+      }
+    }
   },
-  "version": "0.1.4"
+  "version": "0.1.5"
 }
\ No newline at end of file
index 5b35584..93b91e5 100644 (file)
@@ -1,63 +1,69 @@
-mograsim version: 0.1.3
 {
   "width": 60.0,
   "height": 90.0,
   "interfacePins": [
     {
       "location": {
-        "x": 60.0,
-        "y": 60.0
+        "x": 0.0,
+        "y": 50.0
       },
-      "name": "Y101",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 20.0
+        "y": 10.0
       },
-      "name": "Y001",
-      "logicWidth": 1
+      "name": "Y000",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 50.0
+        "y": 20.0
       },
-      "name": "Y100",
-      "logicWidth": 1
+      "name": "Y001",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 80.0
+        "y": 30.0
       },
-      "name": "Y111",
-      "logicWidth": 1
+      "name": "Y010",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 50.0
+        "x": 60.0,
+        "y": 40.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "Y011",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 40.0
+        "y": 50.0
       },
-      "name": "Y011",
-      "logicWidth": 1
+      "name": "Y100",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 10.0
+        "y": 60.0
       },
-      "name": "Y000",
-      "logicWidth": 1
+      "name": "Y101",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -65,20 +71,39 @@ mograsim version: 0.1.3
         "y": 70.0
       },
       "name": "Y110",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 60.0,
-        "y": 30.0
+        "y": 80.0
       },
-      "name": "Y010",
-      "logicWidth": 1
+      "name": "Y111",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.4,
   "submodel": {
-    "innerScale": 0.4,
-    "subComps": [
+    "components": [
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 40.0,
+          "y": 20.0
+        }
+      },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#0",
+        "pos": {
+          "x": 85.0,
+          "y": 20.0
+        },
+        "params": 1
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#1",
@@ -90,10 +115,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#0",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 85.0,
-          "y": 20.0
+          "x": 120.0,
+          "y": 15.0
         },
         "params": 1
       },
@@ -108,22 +133,31 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#4",
         "pos": {
-          "x": 120.0,
-          "y": 15.0
+          "x": 80.0,
+          "y": 115.0
         },
         "params": 1
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUINandGate",
+        "name": "GUINandGate#5",
         "pos": {
-          "x": 34.0,
-          "y": 99.0
+          "x": 80.0,
+          "y": 165.0
         },
         "params": 1
       },
+      {
+        "id": "GUISplitter",
+        "name": "GUISplitter#0",
+        "pos": {
+          "x": 5.0,
+          "y": 110.0
+        },
+        "params": 4
+      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#0",
@@ -134,20 +168,20 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 110.0
+          "x": 34.0,
+          "y": 99.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#10",
         "pos": {
-          "x": 79.0,
-          "y": 24.0
+          "x": 39.0,
+          "y": 109.0
         },
         "params": 1
       },
@@ -162,10 +196,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 24.0,
-          "y": 119.0
+          "x": 79.0,
+          "y": 24.0
         },
         "params": 1
       },
@@ -180,10 +214,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 74.0,
-          "y": 59.0
+          "x": 24.0,
+          "y": 119.0
         },
         "params": 1
       },
@@ -198,10 +232,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
-          "x": 24.0,
-          "y": 149.0
+          "x": 74.0,
+          "y": 59.0
         },
         "params": 1
       },
@@ -215,60 +249,92 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#5",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 80.0,
-          "y": 165.0
+          "x": 24.0,
+          "y": 149.0
         },
         "params": 1
-      },
+      }
+    ],
+    "wires": [
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#10",
-        "pos": {
-          "x": 39.0,
-          "y": 109.0
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
-        "params": 1
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 40.0,
-          "y": 20.0
-        }
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#4",
-        "pos": {
-          "x": 80.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "params": 1
-      }
-    ],
-    "innerWires": [
+        "pin2": {
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 110.0,
+            "y": 20.0
+          },
+          {
+            "x": 110.0,
+            "y": 30.0
+          }
+        ]
+      },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 115.0,
-            "y": 60.0
-          },
+            "x": 20.0,
+            "y": 65.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#1",
+          "pinName": "A"
+        },
+        "name": "unnamedWire#12",
+        "path": [
           {
-            "x": 115.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 55.0
           }
         ]
       },
@@ -286,15 +352,24 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y000"
+          "compName": "GUINandGate#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#16",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 60.0
+          },
+          {
+            "x": 115.0,
+            "y": 30.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -315,14 +390,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y000"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
@@ -344,30 +419,42 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#18",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#19",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "name": "unnamedWire#2",
         "path": [
           {
-            "x": 20.0,
-            "y": 110.0
+            "x": 35.0,
+            "y": 140.0
           }
         ]
       },
@@ -385,15 +472,20 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#4",
-          "pinName": "Y"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y100"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#21",
+        "path": [
+          {
+            "x": 20.0,
+            "y": 110.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -409,14 +501,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUINandGate#4",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y100"
         },
-        "name": "unnamedWire#25",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
@@ -442,14 +534,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#10",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#3",
-          "pinName": "A"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
@@ -466,14 +558,14 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y110"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#5",
-          "pinName": "Y"
+          "compName": "GUINandGate#3",
+          "pinName": "A"
         },
-        "name": "unnamedWire#29",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
@@ -490,75 +582,32 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y110"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUINandGate#5",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#0",
           "pinName": ""
         },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#0",
-        "path": []
+        "name": "unnamedWire#3",
+        "path": [
+          {
+            "x": 30.0,
+            "y": 25.0
+          }
+        ]
       },
       {
         "pin1": {
@@ -579,37 +628,21 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUINandGate#3",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#10",
+          "pinName": ""
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 110.0,
-            "y": 20.0
-          },
-          {
-            "x": 110.0,
-            "y": 30.0
+            "x": 40.0,
+            "y": 120.0
           }
         ]
       },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
       {
         "pin1": {
           "compName": "WireCrossPoint#9",
@@ -629,124 +662,100 @@ mograsim version: 0.1.3
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Y111"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 35.0,
-            "y": 35.0
+            "x": 30.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#3",
-          "pinName": "B"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#10",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#4",
         "path": [
           {
-            "x": 40.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 35.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "A"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#3",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 25.0
-          }
-        ]
+        "name": "unnamedWire#5",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUINandGate#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 40.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 140.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#2",
           "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 20.0,
-            "y": 65.0
-          }
-        ]
+        "name": "unnamedWire#8",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "Y111"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#7",
           "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 30.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -761,5 +770,6 @@ mograsim version: 0.1.3
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index fa3ed35..05fbd4e 100644 (file)
@@ -1,23 +1,15 @@
-mograsim version: 0.1.3
 {
   "width": 45.0,
   "height": 46.0,
   "interfacePins": [
     {
       "location": {
-        "x": 4.0,
+        "x": 14.0,
         "y": 46.0
       },
-      "name": "MUX",
-      "logicWidth": 2
-    },
-    {
-      "location": {
-        "x": 45.0,
-        "y": 19.0
-      },
-      "name": "Q",
-      "logicWidth": 4
+      "name": "C",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,47 +17,53 @@ mograsim version: 0.1.3
         "y": 46.0
       },
       "name": "CINV",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 14.0,
-        "y": 46.0
+        "x": 0.0,
+        "y": 31.0
       },
-      "name": "C",
-      "logicWidth": 1
+      "name": "I",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 5.5,
-        "y": 0.0
+        "x": 0.0,
+        "y": 13.5
       },
-      "name": "_EZ",
-      "logicWidth": 1
+      "name": "M",
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 37.5,
+        "x": 4.0,
         "y": 46.0
       },
-      "name": "OVRRET",
-      "logicWidth": 1
+      "name": "MUX",
+      "logicWidth": 2,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 31.0
+        "x": 37.5,
+        "y": 46.0
       },
-      "name": "I",
-      "logicWidth": 4
+      "name": "OVRRET",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.5,
-        "y": 0.0
+        "x": 45.0,
+        "y": 19.0
       },
-      "name": "_EN",
-      "logicWidth": 1
+      "name": "Q",
+      "logicWidth": 4,
+      "usage": "OUTPUT"
     },
     {
       "location": {
@@ -73,15 +71,17 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EC",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 13.5
+        "x": 25.5,
+        "y": 0.0
       },
-      "name": "M",
-      "logicWidth": 4
+      "name": "_EN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -89,20 +89,54 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "_EOVR",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 5.5,
+        "y": 0.0
+      },
+      "name": "_EZ",
+      "logicWidth": 1,
+      "usage": "INPUT"
     }
   ],
+  "innerScale": 0.1,
   "submodel": {
-    "innerScale": 0.1,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#0",
+        "pos": {
+          "x": 45.0,
+          "y": 240.0
+        }
+      },
+      {
+        "id": "GUImux1_4",
+        "name": "DeserializedSubmodelComponent#1",
+        "pos": {
+          "x": 100.0,
+          "y": 190.0
+        }
+      },
+      {
+        "id": "GUIxor",
+        "name": "DeserializedSubmodelComponent#2",
         "pos": {
           "x": 215.0,
-          "y": 255.0
+          "y": 200.0
+        }
+      },
+      {
+        "id": "GUIMerger",
+        "name": "GUIMerger#0",
+        "pos": {
+          "x": 435.0,
+          "y": 175.0
         },
-        "params": 1
+        "params": 4
       },
       {
         "id": "GUINandGate",
@@ -115,30 +149,30 @@ mograsim version: 0.1.3
       },
       {
         "id": "GUINandGate",
-        "name": "GUINandGate#2",
+        "name": "GUINandGate#1",
         "pos": {
           "x": 215.0,
-          "y": 235.0
+          "y": 255.0
         },
         "params": 1
       },
       {
-        "id": "GUIMerger",
-        "name": "GUIMerger#0",
+        "id": "GUINandGate",
+        "name": "GUINandGate#2",
         "pos": {
-          "x": 435.0,
-          "y": 175.0
+          "x": 215.0,
+          "y": 235.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "GUISplitter",
-        "name": "GUISplitter#2",
+        "name": "GUISplitter#0",
         "pos": {
-          "x": 45.0,
-          "y": 430.0
+          "x": 5.0,
+          "y": 120.0
         },
-        "params": 2
+        "params": 4
       },
       {
         "id": "GUISplitter",
@@ -150,13 +184,21 @@ mograsim version: 0.1.3
         "params": 4
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUISplitter",
+        "name": "GUISplitter#2",
         "pos": {
-          "x": 89.0,
-          "y": 224.0
+          "x": 45.0,
+          "y": 430.0
         },
-        "params": 1
+        "params": 2
+      },
+      {
+        "id": "GUIdff4_finewe",
+        "name": "GUIdff4_finewe#0",
+        "pos": {
+          "x": 375.0,
+          "y": 170.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -168,29 +210,29 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUISplitter",
-        "name": "GUISplitter#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 5.0,
-          "y": 120.0
+          "x": 89.0,
+          "y": 224.0
         },
-        "params": 4
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#2",
         "pos": {
-          "x": 429.0,
-          "y": 204.0
+          "x": 89.0,
+          "y": 214.0
         },
         "params": 1
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 89.0,
-          "y": 214.0
+          "x": 429.0,
+          "y": 204.0
         },
         "params": 1
       },
@@ -202,867 +244,836 @@ mograsim version: 0.1.3
           "y": 244.0
         },
         "params": 1
-      },
-      {
-        "id": "GUIdff4_finewe",
-        "name": "GUIdff4_finewe#0",
-        "pos": {
-          "x": 375.0,
-          "y": 170.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#1",
-        "pos": {
-          "x": 100.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUImux1_4",
-        "name": "DeserializedSubmodelComponent#0",
-        "pos": {
-          "x": 45.0,
-          "y": 240.0
-        }
-      },
-      {
-        "id": "GUIxor",
-        "name": "DeserializedSubmodelComponent#2",
-        "pos": {
-          "x": 215.0,
-          "y": 200.0
-        }
       }
     ],
-    "innerWires": [
+    "wires": [
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "CINV"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "B"
+          "compName": "GUIMerger#0",
+          "pinName": "I0"
         },
-        "name": "unnamedWire#36",
-        "path": [
-          {
-            "x": 275.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 390.0
-          },
-          {
-            "x": 190.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y2"
+          "compName": "GUIMerger#0",
+          "pinName": "I1"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q2"
         },
-        "name": "unnamedWire#35",
+        "name": "unnamedWire#1",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "C"
+          "compName": "GUISplitter#1",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#38",
+        "name": "unnamedWire#10",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#0",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_4"
+        },
+        "name": "unnamedWire#11",
         "path": [
           {
-            "x": 140.0,
-            "y": 325.0
-          },
-          {
-            "x": 345.0,
-            "y": 325.0
+            "x": 20.0,
+            "y": 150.0
           },
           {
-            "x": 345.0,
-            "y": 175.0
+            "x": 20.0,
+            "y": 285.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EZ"
+          "compName": "GUISplitter#0",
+          "pinName": "O2"
         },
-        "name": "unnamedWire#37",
+        "name": "unnamedWire#12",
         "path": [
           {
-            "x": 370.0,
-            "y": 185.0
-          },
-          {
-            "x": 370.0,
-            "y": 5.0
+            "x": 25.0,
+            "y": 275.0
           },
           {
-            "x": 55.0,
-            "y": 5.0
+            "x": 25.0,
+            "y": 140.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EOVR"
+          "compName": "GUISplitter#0",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#39",
+        "name": "unnamedWire#13",
         "path": [
           {
-            "x": 355.0,
-            "y": 215.0
+            "x": 30.0,
+            "y": 130.0
+          },
+          {
+            "x": 30.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_EC"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE2"
+          "compName": "GUISplitter#0",
+          "pinName": "O0"
         },
-        "name": "unnamedWire#41",
+        "name": "unnamedWire#14",
         "path": [
           {
-            "x": 155.0,
-            "y": 10.0
-          },
-          {
-            "x": 365.0,
-            "y": 10.0
+            "x": 35.0,
+            "y": 255.0
           },
           {
-            "x": 365.0,
-            "y": 195.0
+            "x": 35.0,
+            "y": 120.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "_WE3"
+          "compName": "_submodelinterface",
+          "pinName": "MUX"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_EN"
+          "compName": "GUISplitter#2",
+          "pinName": "I"
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#15",
         "path": [
           {
-            "x": 360.0,
-            "y": 205.0
-          },
-          {
-            "x": 360.0,
-            "y": 15.0
-          },
-          {
-            "x": 255.0,
-            "y": 15.0
+            "x": 40.0,
+            "y": 435.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#2",
-          "pinName": "Y"
+          "compName": "GUISplitter#2",
+          "pinName": "O0"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D2"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#16",
         "path": [
           {
-            "x": 310.0,
-            "y": 205.0
-          },
-          {
-            "x": 310.0,
-            "y": 235.0
+            "x": 90.0,
+            "y": 430.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D1"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y4"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y1"
+          "pinName": "I1_4"
         },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 315.0,
-            "y": 225.0
-          },
-          {
-            "x": 315.0,
-            "y": 195.0
-          }
-        ]
+        "name": "unnamedWire#17",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y4"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 160.0,
-            "y": 245.0
-          },
-          {
-            "x": 160.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#18",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D3"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y2"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "Y3"
+          "pinName": "I1_2"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 305.0,
-            "y": 245.0
-          },
-          {
-            "x": 305.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 225.0
-          },
-          {
-            "x": 170.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#19",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "Q3"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "A"
+          "compName": "GUIMerger#0",
+          "pinName": "I2"
         },
-        "name": "unnamedWire#47",
-        "path": [
-          {
-            "x": 210.0,
-            "y": 240.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "Y1"
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "D4"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I1_1"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#20",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_1"
         },
         "pin2": {
-          "compName": "GUINandGate#2",
-          "pinName": "B"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#21",
         "path": [
           {
-            "x": 210.0,
-            "y": 250.0
+            "x": 90.0,
+            "y": 205.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O1"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_2"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_3"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_3"
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O2"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
-        "name": "unnamedWire#8",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#1",
-          "pinName": "O3"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_4"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "WireCrossPoint#1",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "I"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#25",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "I1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "I0_4"
         },
-        "name": "unnamedWire#1",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q1"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I0"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "M"
-        },
-        "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I1_1"
-        },
-        "pin2": {
-          "compName": "GUISplitter#1",
-          "pinName": "O0"
-        },
-        "name": "unnamedWire#10",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIMerger#0",
-          "pinName": "O"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Q"
+          "pinName": "S0"
         },
-        "name": "unnamedWire#4",
-        "path": []
+        "name": "unnamedWire#27",
+        "path": [
+          {
+            "x": 40.0,
+            "y": 235.0
+          },
+          {
+            "x": 40.0,
+            "y": 245.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_3"
+          "compName": "GUISplitter#2",
+          "pinName": "O1"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O2"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "S0"
         },
-        "name": "unnamedWire#12",
+        "name": "unnamedWire#28",
         "path": [
           {
-            "x": 25.0,
-            "y": 275.0
+            "x": 85.0,
+            "y": 440.0
           },
           {
-            "x": 25.0,
-            "y": 140.0
+            "x": 85.0,
+            "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIdff4_finewe#0",
-          "pinName": "Q4"
-        },
-        "pin2": {
           "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#3",
+        "pin2": {
+          "compName": "GUIMerger#0",
+          "pinName": "I3"
+        },
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIdff4_finewe#0",
-          "pinName": "Q3"
+          "pinName": "Q4"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I2"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O3"
+          "compName": "GUINandGate#2",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_4"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#11",
+        "name": "unnamedWire#30",
         "path": [
           {
-            "x": 20.0,
-            "y": 150.0
+            "x": 240.0,
+            "y": 245.0
           },
           {
-            "x": 20.0,
-            "y": 285.0
+            "x": 240.0,
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_1"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "GUISplitter#0",
-          "pinName": "O0"
+          "compName": "GUINandGate#1",
+          "pinName": "Y"
         },
-        "name": "unnamedWire#14",
+        "name": "unnamedWire#31",
         "path": [
           {
-            "x": 35.0,
-            "y": 255.0
+            "x": 240.0,
+            "y": 260.0
           },
           {
-            "x": 35.0,
-            "y": 120.0
+            "x": 240.0,
+            "y": 265.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#0",
-          "pinName": "O1"
+          "compName": "_submodelinterface",
+          "pinName": "OVRRET"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "I0_2"
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#32",
         "path": [
           {
-            "x": 30.0,
-            "y": 130.0
+            "x": 375.0,
+            "y": 360.0
           },
           {
-            "x": 30.0,
-            "y": 265.0
+            "x": 205.0,
+            "y": 360.0
+          },
+          {
+            "x": 205.0,
+            "y": 260.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O0"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
+          "compName": "WireCrossPoint#3",
           "pinName": ""
         },
-        "name": "unnamedWire#16",
-        "path": [
-          {
-            "x": 90.0,
-            "y": 430.0
-          }
-        ]
+        "name": "unnamedWire#33",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "MUX"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUISplitter#2",
-          "pinName": "I"
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#34",
         "path": [
           {
-            "x": 40.0,
-            "y": 435.0
+            "x": 430.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 280.0
+          },
+          {
+            "x": 210.0,
+            "y": 270.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_3"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y3"
-        },
-        "name": "unnamedWire#18",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y4"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_4"
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
           "pinName": "Y2"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_2"
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#19",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_1"
+          "compName": "_submodelinterface",
+          "pinName": "CINV"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "DeserializedSubmodelComponent#2",
+          "pinName": "B"
         },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#36",
         "path": [
           {
-            "x": 90.0,
-            "y": 205.0
+            "x": 275.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 390.0
+          },
+          {
+            "x": 190.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "Y1"
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I1_1"
-        },
-        "name": "unnamedWire#20",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE1"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EZ"
         },
-        "name": "unnamedWire#23",
-        "path": []
+        "name": "unnamedWire#37",
+        "path": [
+          {
+            "x": 370.0,
+            "y": 185.0
+          },
+          {
+            "x": 370.0,
+            "y": 5.0
+          },
+          {
+            "x": 55.0,
+            "y": 5.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_2"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#22",
-        "path": []
+        "name": "unnamedWire#38",
+        "path": [
+          {
+            "x": 140.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 325.0
+          },
+          {
+            "x": 345.0,
+            "y": 175.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EOVR"
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE4"
         },
-        "name": "unnamedWire#25",
-        "path": []
+        "name": "unnamedWire#39",
+        "path": [
+          {
+            "x": 355.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIMerger#0",
+          "pinName": "O"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "Q"
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE3"
         },
         "pin2": {
-          "compName": "DeserializedSubmodelComponent#0",
-          "pinName": "S0"
+          "compName": "_submodelinterface",
+          "pinName": "_EN"
         },
-        "name": "unnamedWire#27",
+        "name": "unnamedWire#40",
         "path": [
           {
-            "x": 40.0,
-            "y": 235.0
+            "x": 360.0,
+            "y": 205.0
           },
           {
-            "x": 40.0,
-            "y": 245.0
+            "x": 360.0,
+            "y": 15.0
+          },
+          {
+            "x": 255.0,
+            "y": 15.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "I0_4"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_EC"
         },
         "pin2": {
-          "compName": "GUIMerger#0",
-          "pinName": "I3"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "_WE2"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#41",
+        "path": [
+          {
+            "x": 155.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 10.0
+          },
+          {
+            "x": 365.0,
+            "y": 195.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUISplitter#2",
-          "pinName": "O1"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D1"
         },
         "pin2": {
           "compName": "DeserializedSubmodelComponent#1",
-          "pinName": "S0"
+          "pinName": "Y1"
         },
-        "name": "unnamedWire#28",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 85.0,
-            "y": 440.0
+            "x": 315.0,
+            "y": 225.0
           },
           {
-            "x": 85.0,
+            "x": 315.0,
             "y": 195.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#2",
+          "compName": "DeserializedSubmodelComponent#2",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D2"
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#43",
         "path": [
           {
-            "x": 240.0,
-            "y": 245.0
+            "x": 310.0,
+            "y": 205.0
           },
           {
-            "x": 240.0,
-            "y": 250.0
+            "x": 310.0,
+            "y": 235.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "OVRRET"
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D3"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y3"
         },
-        "name": "unnamedWire#32",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 375.0,
-            "y": 360.0
+            "x": 305.0,
+            "y": 245.0
           },
           {
-            "x": 205.0,
-            "y": 360.0
+            "x": 305.0,
+            "y": 225.0
           },
           {
-            "x": 205.0,
-            "y": 260.0
+            "x": 170.0,
+            "y": 225.0
+          },
+          {
+            "x": 170.0,
+            "y": 215.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
+          "compName": "DeserializedSubmodelComponent#1",
+          "pinName": "Y4"
         },
-        "name": "unnamedWire#31",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 240.0,
-            "y": 260.0
+            "x": 160.0,
+            "y": 245.0
           },
           {
-            "x": 240.0,
-            "y": 265.0
+            "x": 160.0,
+            "y": 225.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
+        },
+        "pin2": {
+          "compName": "GUIdff4_finewe#0",
+          "pinName": "D4"
+        },
+        "name": "unnamedWire#46",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUINandGate#2",
+          "pinName": "A"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#47",
         "path": [
-          {
-            "x": 430.0,
-            "y": 280.0
-          },
           {
             "x": 210.0,
-            "y": 280.0
-          },
+            "y": 240.0
+          }
+        ]
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "GUINandGate#2",
+          "pinName": "B"
+        },
+        "name": "unnamedWire#48",
+        "path": [
           {
             "x": 210.0,
-            "y": 270.0
+            "y": 250.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "M"
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUISplitter#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#33",
+        "name": "unnamedWire#5",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "_submodelinterface",
+          "pinName": "I"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "I"
+        },
+        "name": "unnamedWire#6",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O3"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_4"
+        },
+        "name": "unnamedWire#7",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_3"
+        },
+        "pin2": {
+          "compName": "GUISplitter#1",
+          "pinName": "O2"
+        },
+        "name": "unnamedWire#8",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "GUISplitter#1",
+          "pinName": "O1"
+        },
+        "pin2": {
+          "compName": "DeserializedSubmodelComponent#0",
+          "pinName": "I1_2"
+        },
+        "name": "unnamedWire#9",
         "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1076,6 +1087,15 @@ mograsim version: 0.1.3
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
     "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
+    "atomicHighLevelStates": {
+      "q": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff4_finewe#0",
+          "subStateID": "q"
+        }
+      }
+    }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
index e410f3b..a568150 100644 (file)
@@ -1,4 +1,3 @@
-mograsim version: 0.1.3
 {
   "width": 72.0,
   "height": 67.0,
@@ -9,15 +8,8 @@ mograsim version: 0.1.3
         "y": 0.0
       },
       "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -25,15 +17,17 @@ mograsim version: 0.1.3
         "y": 40.0
       },
       "name": "CI",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 0.0,
-        "y": 6.0
+        "x": 36.0,
+        "y": 0.0
       },
-      "name": "_RLD",
-      "logicWidth": 1
+      "name": "D",
+      "logicWidth": 12,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -41,31 +35,35 @@ mograsim version: 0.1.3
         "y": 50.0
       },
       "name": "I",
-      "logicWidth": 4
+      "logicWidth": 4,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 19.0,
+        "x": 38.0,
         "y": 67.0
       },
-      "name": "_MAP",
-      "logicWidth": 1
+      "name": "Y",
+      "logicWidth": 12,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 44.0
+        "y": 38.0
       },
-      "name": "_CCEN",
-      "logicWidth": 1
+      "name": "_CC",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 49.0,
-        "y": 67.0
+        "x": 0.0,
+        "y": 44.0
       },
-      "name": "_OE",
-      "logicWidth": 1
+      "name": "_CCEN",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
@@ -73,61 +71,136 @@ mograsim version: 0.1.3
         "y": 14.0
       },
       "name": "_FULL",
-      "logicWidth": 1
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 38.0,
+        "x": 19.0,
         "y": 67.0
       },
-      "name": "Y",
-      "logicWidth": 12
+      "name": "_MAP",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
-        "x": 13.0,
+        "x": 49.0,
         "y": 67.0
       },
-      "name": "_PL",
-      "logicWidth": 1
+      "name": "_OE",
+      "logicWidth": 1,
+      "usage": "INPUT"
     },
     {
       "location": {
-        "x": 25.0,
+        "x": 13.0,
         "y": 67.0
       },
-      "name": "_VECT",
-      "logicWidth": 1
+      "name": "_PL",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     },
     {
       "location": {
         "x": 0.0,
-        "y": 38.0
+        "y": 6.0
       },
-      "name": "_CC",
-      "logicWidth": 1
+      "name": "_RLD",
+      "logicWidth": 1,
+      "usage": "INPUT"
+    },
+    {
+      "location": {
+        "x": 25.0,
+        "y": 67.0
+      },
+      "name": "_VECT",
+      "logicWidth": 1,
+      "usage": "OUTPUT"
     }
   ],
+  "innerScale": 0.2,
   "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
+    "components": [
       {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
+        "id": "GUIAm2910InstrPLA",
+        "name": "GUIAm2910InstrPLA#0",
         "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
+          "x": 80.0,
+          "y": 155.0
+        }
       },
       {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
+        "id": "GUIAm2910RegCntr",
+        "name": "GUIAm2910RegCntr#0",
+        "pos": {
+          "x": 160.0,
+          "y": 25.0
+        }
+      },
+      {
+        "id": "GUIAm2910SP",
+        "name": "GUIAm2910SP#0",
         "pos": {
           "x": 305.0,
-          "y": 100.0
+          "y": 55.0
         }
       },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#0",
+        "pos": {
+          "x": 160.0,
+          "y": 95.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#1",
+        "pos": {
+          "x": 260.0,
+          "y": 115.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#2",
+        "pos": {
+          "x": 345.0,
+          "y": 180.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#3",
+        "pos": {
+          "x": 265.0,
+          "y": 150.0
+        },
+        "params": 12
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#4",
+        "pos": {
+          "x": 260.0,
+          "y": 85.0
+        },
+        "params": 3
+      },
+      {
+        "id": "GUIBitDisplay",
+        "name": "GUIBitDisplay#5",
+        "pos": {
+          "x": 260.0,
+          "y": 70.0
+        },
+        "params": 3
+      },
       {
         "id": "GUINandGate",
         "name": "GUINandGate#0",
@@ -137,6 +210,27 @@ mograsim version: 0.1.3
         },
         "params": 1
       },
+      {
+        "id": "GUINandGate",
+        "name": "GUINandGate#1",
+        "pos": {
+          "x": 10.0,
+          "y": 210.0
+        },
+        "params": 1
+      },
+      {
+        "id": "GUITriStateBuffer",
+        "name": "GUITriStateBuffer#0",
+        "pos": {
+          "x": 180.0,
+          "y": 290.0
+        },
+        "params": {
+          "logicWidth": 12,
+          "orientation": "DOWN"
+        }
+      },
       {
         "id": "GUIdff12",
         "name": "GUIdff12#0",
@@ -154,22 +248,28 @@ mograsim version: 0.1.3
         }
       },
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
+        "id": "GUInor12",
+        "name": "GUInor12#0",
         "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
+          "x": 190.0,
+          "y": 80.0
+        }
       },
       {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
+        "id": "GUIram5_12",
+        "name": "GUIram5_12#0",
         "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
+          "x": 305.0,
+          "y": 100.0
+        }
+      },
+      {
+        "id": "GUIsel4_12",
+        "name": "GUIsel4_12#0",
+        "pos": {
+          "x": 150.0,
+          "y": 175.0
+        }
       },
       {
         "id": "WireCrossPoint",
@@ -182,12 +282,12 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
+        "name": "WireCrossPoint#1",
         "pos": {
-          "x": 179.0,
-          "y": 89.0
+          "x": 294.0,
+          "y": 104.0
         },
-        "params": 12
+        "params": 1
       },
       {
         "id": "WireCrossPoint",
@@ -200,12 +300,12 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
+        "name": "WireCrossPoint#3",
         "pos": {
-          "x": 4.0,
-          "y": 219.0
+          "x": 179.0,
+          "y": 89.0
         },
-        "params": 1
+        "params": 12
       },
       {
         "id": "WireCrossPoint",
@@ -218,25 +318,13 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
+        "name": "WireCrossPoint#5",
         "pos": {
-          "x": 299.0,
-          "y": 44.0
+          "x": 4.0,
+          "y": 219.0
         },
         "params": 1
       },
-      {
-        "id": "GUITriStateBuffer",
-        "name": "GUITriStateBuffer#0",
-        "pos": {
-          "x": 180.0,
-          "y": 290.0
-        },
-        "params": {
-          "logicWidth": 12,
-          "orientation": "DOWN_ALT"
-        }
-      },
       {
         "id": "WireCrossPoint",
         "name": "WireCrossPoint#6",
@@ -248,10 +336,10 @@ mograsim version: 0.1.3
       },
       {
         "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
+        "name": "WireCrossPoint#7",
         "pos": {
           "x": 299.0,
-          "y": 114.0
+          "y": 44.0
         },
         "params": 1
       },
@@ -265,615 +353,651 @@ mograsim version: 0.1.3
         "params": 1
       },
       {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
+        "id": "WireCrossPoint",
+        "name": "WireCrossPoint#9",
         "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
+          "x": 299.0,
+          "y": 114.0
+        },
+        "params": 1
+      }
+    ],
+    "wires": [
       {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
+        "pin1": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YD"
         },
-        "params": 12
+        "pin2": {
+          "compName": "GUIsel4_12#0",
+          "pinName": "SA"
+        },
+        "name": "unnamedWire#0",
+        "path": []
       },
       {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
+        "pin1": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "YR"
+        },
+        "pin2": {
+          "compName": "GUIsel4_12#0",
+          "pinName": "SB"
+        },
+        "name": "unnamedWire#1",
+        "path": []
       },
       {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
+        "pin1": {
+          "compName": "GUInor12#0",
+          "pinName": "Y"
         },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
+        "pin2": {
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "R\u003d0"
         },
-        "params": 12
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
+        "name": "unnamedWire#10",
+        "path": [
+          {
+            "x": 230.0,
+            "y": 90.0
+          },
+          {
+            "x": 230.0,
+            "y": 120.0
+          },
+          {
+            "x": 95.0,
+            "y": 120.0
+          }
+        ]
       },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RWE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "WE"
         },
-        "name": "unnamedWire#36",
-        "path": []
+        "name": "unnamedWire#11",
+        "path": [
+          {
+            "x": 115.0,
+            "y": 160.0
+          },
+          {
+            "x": 115.0,
+            "y": 45.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "RDEC"
         },
         "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "DEC"
         },
-        "name": "unnamedWire#35",
-        "path": []
+        "name": "unnamedWire#12",
+        "path": [
+          {
+            "x": 120.0,
+            "y": 170.0
+          },
+          {
+            "x": 120.0,
+            "y": 55.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI0"
         },
         "pin2": {
-          "compName": "WireCrossPoint#6",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#38",
-        "path": []
+        "name": "unnamedWire#13",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 220.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "STKI1"
         },
         "pin2": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "C"
+          "pinName": "STKI1"
         },
-        "name": "unnamedWire#37",
-        "path": []
+        "name": "unnamedWire#14",
+        "path": [
+          {
+            "x": 290.0,
+            "y": 230.0
+          },
+          {
+            "x": 290.0,
+            "y": 70.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "STKI0"
         },
-        "name": "unnamedWire#41",
-        "path": []
+        "name": "unnamedWire#15",
+        "path": [
+          {
+            "x": 295.0,
+            "y": 60.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
+          "compName": "GUIram5_12#0",
+          "pinName": "WE"
         },
         "pin2": {
-          "compName": "WireCrossPoint#7",
+          "compName": "WireCrossPoint#1",
           "pinName": ""
         },
-        "name": "unnamedWire#40",
+        "name": "unnamedWire#16",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
+          "compName": "GUIsel4_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#43",
+        "name": "unnamedWire#17",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
+          "compName": "GUIinc12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#42",
+        "name": "unnamedWire#18",
         "path": [
           {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
+            "x": 325.0,
+            "y": 275.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
+          "compName": "GUIram5_12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
+          "compName": "GUIsel4_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#45",
+        "name": "unnamedWire#19",
         "path": [
           {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
+            "x": 200.0,
+            "y": 130.0
           }
         ]
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
+          "pinName": "YF"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
+          "compName": "GUIsel4_12#0",
+          "pinName": "SC"
         },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
+        "name": "unnamedWire#2",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#47",
-        "path": []
+        "name": "unnamedWire#20",
+        "path": [
+          {
+            "x": 220.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
+          "compName": "GUIsel4_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#46",
+        "name": "unnamedWire#21",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
+          "compName": "GUInor12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#49",
+        "name": "unnamedWire#22",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "_submodelinterface",
+          "pinName": "D"
         },
         "pin2": {
-          "compName": "GUIBitDisplay#2",
+          "compName": "WireCrossPoint#4",
           "pinName": ""
         },
-        "name": "unnamedWire#48",
+        "name": "unnamedWire#23",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#9",
+        "name": "unnamedWire#24",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#4",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
+          "compName": "GUIsel4_12#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#8",
-        "path": []
+        "name": "unnamedWire#25",
+        "path": [
+          {
+            "x": 145.0,
+            "y": 15.0
+          },
+          {
+            "x": 145.0,
+            "y": 150.0
+          },
+          {
+            "x": 160.0,
+            "y": 150.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_RLD"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
+          "compName": "GUIAm2910RegCntr#0",
+          "pinName": "_RLD"
         },
-        "name": "unnamedWire#7",
+        "name": "unnamedWire#26",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "IN"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#6",
+        "name": "unnamedWire#27",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
+          "compName": "GUINandGate#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "PASS"
         },
-        "name": "unnamedWire#1",
-        "path": []
+        "name": "unnamedWire#28",
+        "path": [
+          {
+            "x": 65.0,
+            "y": 195.0
+          },
+          {
+            "x": 65.0,
+            "y": 160.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_CC"
         },
         "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
+          "compName": "GUINandGate#0",
+          "pinName": "A"
         },
-        "name": "unnamedWire#50",
+        "name": "unnamedWire#29",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
+          "pinName": "YmuPC"
         },
         "pin2": {
           "compName": "GUIsel4_12#0",
-          "pinName": "SA"
+          "pinName": "SD"
         },
-        "name": "unnamedWire#0",
+        "name": "unnamedWire#3",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "OUT"
+          "compName": "_submodelinterface",
+          "pinName": "_CCEN"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#52",
+        "name": "unnamedWire#30",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#9",
+          "compName": "WireCrossPoint#5",
           "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "A"
         },
-        "name": "unnamedWire#51",
-        "path": []
+        "name": "unnamedWire#31",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 215.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
+          "compName": "WireCrossPoint#5",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUINandGate#1",
+          "pinName": "B"
         },
-        "name": "unnamedWire#5",
-        "path": []
+        "name": "unnamedWire#32",
+        "path": [
+          {
+            "x": 5.0,
+            "y": 225.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUInor12#0",
+          "compName": "GUINandGate#1",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
+          "compName": "GUINandGate#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#10",
+        "name": "unnamedWire#33",
         "path": [
           {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 220.0
           },
           {
-            "x": 95.0,
-            "y": 120.0
+            "x": 35.0,
+            "y": 200.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "_FULL"
+        },
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_FULL"
+        },
+        "name": "unnamedWire#34",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIdff12#0",
-          "pinName": "D"
+          "pinName": "C"
         },
-        "name": "unnamedWire#4",
+        "name": "unnamedWire#35",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUITriStateBuffer#0",
-          "pinName": "EN"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_OE"
+          "compName": "WireCrossPoint#9",
+          "pinName": ""
         },
-        "name": "unnamedWire#53",
-        "path": [
-          {
-            "x": 245.0,
-            "y": 300.0
-          }
-        ]
+        "name": "unnamedWire#36",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#3",
+        "name": "unnamedWire#37",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
+        },
+        "pin2": {
+          "compName": "WireCrossPoint#6",
+          "pinName": ""
+        },
+        "name": "unnamedWire#38",
+        "path": []
+      },
+      {
+        "pin1": {
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
         "pin2": {
           "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
+          "pinName": "C"
         },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
+        "name": "unnamedWire#39",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
+          "compName": "GUIdff12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#2",
+        "name": "unnamedWire#4",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
+          "compName": "_submodelinterface",
+          "pinName": "C"
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
+          "compName": "WireCrossPoint#7",
+          "pinName": ""
         },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
+        "name": "unnamedWire#40",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
+          "compName": "GUIinc12#0",
+          "pinName": "CI"
         },
         "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
+          "compName": "_submodelinterface",
+          "pinName": "CI"
         },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
+        "name": "unnamedWire#41",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
+          "pinName": "_PL"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_PL"
         },
-        "name": "unnamedWire#13",
+        "name": "unnamedWire#42",
         "path": [
           {
-            "x": 295.0,
-            "y": 220.0
+            "x": 85.0,
+            "y": 290.0
+          },
+          {
+            "x": 65.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_MAP"
         },
         "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "_MAP"
         },
-        "name": "unnamedWire#16",
+        "name": "unnamedWire#43",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "_VECT"
         },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
+        "pin2": {
+          "compName": "_submodelinterface",
+          "pinName": "_VECT"
         },
-        "name": "unnamedWire#15",
+        "name": "unnamedWire#44",
         "path": [
           {
-            "x": 295.0,
-            "y": 60.0
+            "x": 105.0,
+            "y": 290.0
+          },
+          {
+            "x": 125.0,
+            "y": 290.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
+          "compName": "_submodelinterface",
+          "pinName": "I"
         },
         "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
+          "compName": "GUIAm2910InstrPLA#0",
+          "pinName": "I"
         },
-        "name": "unnamedWire#18",
+        "name": "unnamedWire#45",
         "path": [
           {
-            "x": 325.0,
-            "y": 275.0
+            "x": 70.0,
+            "y": 250.0
+          },
+          {
+            "x": 70.0,
+            "y": 175.0
           }
         ]
       },
       {
         "pin1": {
-          "compName": "GUIsel4_12#0",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
+          "compName": "GUIBitDisplay#0",
           "pinName": ""
         },
-        "name": "unnamedWire#17",
+        "name": "unnamedWire#46",
         "path": []
       },
       {
@@ -882,244 +1006,175 @@ mograsim version: 0.1.3
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
+          "compName": "GUIBitDisplay#1",
           "pinName": ""
         },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
+        "name": "unnamedWire#47",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
+          "compName": "GUIinc12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
+          "compName": "GUIBitDisplay#2",
+          "pinName": ""
         },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#48",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "WireCrossPoint#4",
+          "compName": "GUIBitDisplay#3",
           "pinName": ""
         },
-        "name": "unnamedWire#23",
+        "name": "unnamedWire#49",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
+          "compName": "GUIdff12#0",
+          "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#0",
+          "pinName": ""
         },
-        "name": "unnamedWire#22",
+        "name": "unnamedWire#5",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
+          "compName": "GUIram5_12#0",
+          "pinName": "C"
         },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
+        "name": "unnamedWire#50",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#4",
+          "compName": "WireCrossPoint#9",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
+          "compName": "WireCrossPoint#8",
+          "pinName": ""
         },
-        "name": "unnamedWire#24",
+        "name": "unnamedWire#51",
         "path": []
       },
       {
         "pin1": {
           "compName": "GUITriStateBuffer#0",
-          "pinName": "IN"
+          "pinName": "OUT"
         },
         "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
           "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
+          "pinName": "Y"
         },
-        "name": "unnamedWire#26",
+        "name": "unnamedWire#52",
         "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
+          "compName": "GUITriStateBuffer#0",
+          "pinName": "EN"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
+          "compName": "_submodelinterface",
+          "pinName": "_OE"
         },
-        "name": "unnamedWire#29",
-        "path": []
+        "name": "unnamedWire#53",
+        "path": [
+          {
+            "x": 245.0,
+            "y": 300.0
+          }
+        ]
       },
       {
         "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
+          "compName": "GUIBitDisplay#5",
+          "pinName": ""
         },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
+        "name": "unnamedWire#54",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
+          "compName": "GUIAm2910SP#0",
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "WireCrossPoint#5",
+          "compName": "GUIBitDisplay#4",
           "pinName": ""
         },
-        "name": "unnamedWire#30",
+        "name": "unnamedWire#55",
         "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
+          "compName": "WireCrossPoint#0",
           "pinName": ""
         },
         "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
+          "compName": "GUIram5_12#0",
+          "pinName": "D"
         },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
+        "name": "unnamedWire#6",
+        "path": []
       },
       {
         "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
+          "compName": "GUIAm2910SP#0",
+          "pinName": "A"
         },
         "pin2": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIram5_12#0",
           "pinName": "A"
         },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
+        "name": "unnamedWire#7",
+        "path": []
       },
       {
         "pin1": {
           "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
+          "pinName": "B"
         },
         "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
+          "compName": "GUIram5_12#0",
+          "pinName": "B"
         },
-        "name": "unnamedWire#34",
+        "name": "unnamedWire#8",
         "path": []
       },
       {
         "pin1": {
-          "compName": "GUINandGate#1",
+          "compName": "GUIAm2910RegCntr#0",
           "pinName": "Y"
         },
         "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
+          "compName": "WireCrossPoint#3",
+          "pinName": ""
         },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
+        "name": "unnamedWire#9",
+        "path": []
       }
-    ]
+    ],
+    "version": "0.1.1"
   },
   "symbolRendererSnippetID": "simpleRectangularLike",
   "symbolRendererParams": {
@@ -1132,7 +1187,33 @@ mograsim version: 0.1.3
   "outlineRendererSnippetID": "default",
   "highLevelStateHandlerSnippetID": "standard",
   "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
+    "subcomponentHighLevelStates": {
+      "r": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIAm2910RegCntr#0"
+        }
+      },
+      "stack": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIram5_12#0"
+        }
+      },
+      "mupc": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIdff12#0"
+        }
+      },
+      "sp": {
+        "id": "delegating",
+        "params": {
+          "delegateTarget": "GUIAm2910SP#0"
+        }
+      }
+    },
     "atomicHighLevelStates": {}
-  }
+  },
+  "version": "0.1.5"
 }
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json b/net.mograsim.logic.model.editor/components/am2910/GUIAm2910_old.json
deleted file mode 100644 (file)
index 20f9ac0..0000000
+++ /dev/null
@@ -1,1089 +0,0 @@
-mograsim version: 0.1.3
-{
-  "width": 72.0,
-  "height": 61.0,
-  "interfacePins": [
-    {
-      "location": {
-        "x": 19.0,
-        "y": 61.0
-      },
-      "name": "_MAP",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 44.0
-      },
-      "name": "_CCEN",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 60.0,
-        "y": 0.0
-      },
-      "name": "C",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 36.0,
-        "y": 0.0
-      },
-      "name": "D",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 14.0
-      },
-      "name": "_FULL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 72.0,
-        "y": 40.0
-      },
-      "name": "CI",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 6.0
-      },
-      "name": "_RLD",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 50.0
-      },
-      "name": "I",
-      "logicWidth": 4
-    },
-    {
-      "location": {
-        "x": 38.0,
-        "y": 61.0
-      },
-      "name": "Y",
-      "logicWidth": 12
-    },
-    {
-      "location": {
-        "x": 13.0,
-        "y": 61.0
-      },
-      "name": "_PL",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 25.0,
-        "y": 61.0
-      },
-      "name": "_VECT",
-      "logicWidth": 1
-    },
-    {
-      "location": {
-        "x": 0.0,
-        "y": 38.0
-      },
-      "name": "_CC",
-      "logicWidth": 1
-    }
-  ],
-  "submodel": {
-    "innerScale": 0.2,
-    "subComps": [
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#1",
-        "pos": {
-          "x": 10.0,
-          "y": 210.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIram5_12",
-        "name": "GUIram5_12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 100.0
-        }
-      },
-      {
-        "id": "GUINandGate",
-        "name": "GUINandGate#0",
-        "pos": {
-          "x": 40.0,
-          "y": 185.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIdff12",
-        "name": "GUIdff12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 160.0
-        }
-      },
-      {
-        "id": "GUIinc12",
-        "name": "GUIinc12#0",
-        "pos": {
-          "x": 305.0,
-          "y": 190.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#3",
-        "pos": {
-          "x": 265.0,
-          "y": 150.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#1",
-        "pos": {
-          "x": 294.0,
-          "y": 104.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#0",
-        "pos": {
-          "x": 324.0,
-          "y": 149.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#3",
-        "pos": {
-          "x": 179.0,
-          "y": 89.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#2",
-        "pos": {
-          "x": 189.0,
-          "y": 274.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#5",
-        "pos": {
-          "x": 4.0,
-          "y": 219.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#4",
-        "pos": {
-          "x": 179.0,
-          "y": 14.0
-        },
-        "params": 12
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#7",
-        "pos": {
-          "x": 299.0,
-          "y": 44.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#6",
-        "pos": {
-          "x": 299.0,
-          "y": 79.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#9",
-        "pos": {
-          "x": 299.0,
-          "y": 114.0
-        },
-        "params": 1
-      },
-      {
-        "id": "WireCrossPoint",
-        "name": "WireCrossPoint#8",
-        "pos": {
-          "x": 299.0,
-          "y": 169.0
-        },
-        "params": 1
-      },
-      {
-        "id": "GUIsel4_12",
-        "name": "GUIsel4_12#0",
-        "pos": {
-          "x": 150.0,
-          "y": 175.0
-        }
-      },
-      {
-        "id": "GUInor12",
-        "name": "GUInor12#0",
-        "pos": {
-          "x": 190.0,
-          "y": 80.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#0",
-        "pos": {
-          "x": 160.0,
-          "y": 95.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910InstrPLA",
-        "name": "GUIAm2910InstrPLA#0",
-        "pos": {
-          "x": 80.0,
-          "y": 155.0
-        }
-      },
-      {
-        "id": "GUIAm2910SP",
-        "name": "GUIAm2910SP#0",
-        "pos": {
-          "x": 305.0,
-          "y": 55.0
-        }
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#1",
-        "pos": {
-          "x": 260.0,
-          "y": 115.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIBitDisplay",
-        "name": "GUIBitDisplay#2",
-        "pos": {
-          "x": 345.0,
-          "y": 180.0
-        },
-        "params": 12
-      },
-      {
-        "id": "GUIAm2910RegCntr",
-        "name": "GUIAm2910RegCntr#0",
-        "pos": {
-          "x": 160.0,
-          "y": 25.0
-        }
-      }
-    ],
-    "innerWires": [
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "name": "unnamedWire#36",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#35",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "name": "unnamedWire#38",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#6",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#37",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#39",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "CI"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "CI"
-        },
-        "name": "unnamedWire#41",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "C"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#7",
-          "pinName": ""
-        },
-        "name": "unnamedWire#40",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_MAP"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_MAP"
-        },
-        "name": "unnamedWire#43",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_PL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_PL"
-        },
-        "name": "unnamedWire#42",
-        "path": [
-          {
-            "x": 85.0,
-            "y": 290.0
-          },
-          {
-            "x": 65.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "I"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "I"
-        },
-        "name": "unnamedWire#45",
-        "path": [
-          {
-            "x": 70.0,
-            "y": 250.0
-          },
-          {
-            "x": 70.0,
-            "y": 175.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "_VECT"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_VECT"
-        },
-        "name": "unnamedWire#44",
-        "path": [
-          {
-            "x": 105.0,
-            "y": 290.0
-          },
-          {
-            "x": 125.0,
-            "y": 290.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#47",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#46",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#49",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIBitDisplay#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#48",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "name": "unnamedWire#9",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "B"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#8",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "A"
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#7",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#6",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YR"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SB"
-        },
-        "name": "unnamedWire#1",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIram5_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#50",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YD"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SA"
-        },
-        "name": "unnamedWire#0",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#9",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#8",
-          "pinName": ""
-        },
-        "name": "unnamedWire#51",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIdff12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "name": "unnamedWire#5",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUInor12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "R\u003d0"
-        },
-        "name": "unnamedWire#10",
-        "path": [
-          {
-            "x": 230.0,
-            "y": 90.0
-          },
-          {
-            "x": 230.0,
-            "y": 120.0
-          },
-          {
-            "x": 95.0,
-            "y": 120.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIinc12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIdff12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#4",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YmuPC"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SD"
-        },
-        "name": "unnamedWire#3",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RDEC"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "DEC"
-        },
-        "name": "unnamedWire#12",
-        "path": [
-          {
-            "x": 120.0,
-            "y": 170.0
-          },
-          {
-            "x": 120.0,
-            "y": 55.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "YF"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "SC"
-        },
-        "name": "unnamedWire#2",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "RWE"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "WE"
-        },
-        "name": "unnamedWire#11",
-        "path": [
-          {
-            "x": 115.0,
-            "y": 160.0
-          },
-          {
-            "x": 115.0,
-            "y": 45.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI1"
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI1"
-        },
-        "name": "unnamedWire#14",
-        "path": [
-          {
-            "x": 290.0,
-            "y": 230.0
-          },
-          {
-            "x": 290.0,
-            "y": 70.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "STKI0"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#13",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 220.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "WE"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "name": "unnamedWire#16",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#1",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "STKI0"
-        },
-        "name": "unnamedWire#15",
-        "path": [
-          {
-            "x": 295.0,
-            "y": 60.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIinc12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#18",
-        "path": [
-          {
-            "x": 325.0,
-            "y": 275.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "name": "unnamedWire#17",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUIram5_12#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "C"
-        },
-        "name": "unnamedWire#19",
-        "path": [
-          {
-            "x": 200.0,
-            "y": 130.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#21",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#0",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#20",
-        "path": [
-          {
-            "x": 220.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "D"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "name": "unnamedWire#23",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#3",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUInor12#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#22",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIsel4_12#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#25",
-        "path": [
-          {
-            "x": 145.0,
-            "y": 15.0
-          },
-          {
-            "x": 145.0,
-            "y": 150.0
-          },
-          {
-            "x": 160.0,
-            "y": 150.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#4",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "D"
-        },
-        "name": "unnamedWire#24",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#2",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "Y"
-        },
-        "name": "unnamedWire#27",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_RLD"
-        },
-        "pin2": {
-          "compName": "GUIAm2910RegCntr#0",
-          "pinName": "_RLD"
-        },
-        "name": "unnamedWire#26",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CC"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#29",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#0",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUIAm2910InstrPLA#0",
-          "pinName": "PASS"
-        },
-        "name": "unnamedWire#28",
-        "path": [
-          {
-            "x": 65.0,
-            "y": 195.0
-          },
-          {
-            "x": 65.0,
-            "y": 160.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "_submodelinterface",
-          "pinName": "_CCEN"
-        },
-        "pin2": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "name": "unnamedWire#30",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#32",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 225.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "WireCrossPoint#5",
-          "pinName": ""
-        },
-        "pin2": {
-          "compName": "GUINandGate#1",
-          "pinName": "A"
-        },
-        "name": "unnamedWire#31",
-        "path": [
-          {
-            "x": 5.0,
-            "y": 215.0
-          }
-        ]
-      },
-      {
-        "pin1": {
-          "compName": "GUIAm2910SP#0",
-          "pinName": "_FULL"
-        },
-        "pin2": {
-          "compName": "_submodelinterface",
-          "pinName": "_FULL"
-        },
-        "name": "unnamedWire#34",
-        "path": []
-      },
-      {
-        "pin1": {
-          "compName": "GUINandGate#1",
-          "pinName": "Y"
-        },
-        "pin2": {
-          "compName": "GUINandGate#0",
-          "pinName": "B"
-        },
-        "name": "unnamedWire#33",
-        "path": [
-          {
-            "x": 35.0,
-            "y": 220.0
-          },
-          {
-            "x": 35.0,
-            "y": 200.0
-          }
-        ]
-      }
-    ]
-  },
-  "symbolRendererSnippetID": "simpleRectangularLike",
-  "symbolRendererParams": {
-    "centerText": "Am2910",
-    "centerTextHeight": 5.0,
-    "horizontalComponentCenter": 17.5,
-    "pinLabelHeight": 3.5,
-    "pinLabelMargin": 0.5
-  },
-  "outlineRendererSnippetID": "default",
-  "highLevelStateHandlerSnippetID": "standard",
-  "highLevelStateHandlerParams": {
-    "subcomponentHighLevelStates": {},
-    "atomicHighLevelStates": {}
-  }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/EditableSubmodelComponent.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/EditableSubmodelComponent.java
deleted file mode 100644 (file)
index baa02f3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-package net.mograsim.logic.model.editor;
-
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.wires.MovablePin;
-import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
-import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
-import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
-import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
-
-public class EditableSubmodelComponent extends DeserializedSubmodelComponent
-{
-       private static final double labelFontHeight = 5;
-       private static final double pinNameFontHeight = 3;
-       private String label;
-
-       public EditableSubmodelComponent(ViewModelModifiable model, String label)
-       {
-               super(model, label, null, null); // TODO: set name properly
-               this.label = label;
-               setSubmodelScale(0.2);
-               addSubmodelInterface(new MovablePin(this, "A Pin", 1, 0, 10));
-               updateSymbolRenderer();
-               setOutlineRenderer(new DefaultOutlineRenderer(this));
-       }
-
-       private void updateSymbolRenderer()
-       {
-               SimpleRectangularLikeParams rendererParams = new SimpleRectangularLikeParams();
-               rendererParams.centerText = label;
-               rendererParams.centerTextHeight = labelFontHeight;
-               rendererParams.horizontalComponentCenter = getWidth() / 2;
-               rendererParams.pinLabelHeight = pinNameFontHeight;
-               rendererParams.pinLabelMargin = 0;
-               setSymbolRenderer(new SimpleRectangularLikeSymbolRenderer(this, rendererParams));
-       }
-
-       public String getLabel()
-       {
-               return label;
-       }
-
-       public void setLabel(String label)
-       {
-               this.label = label;
-               updateSymbolRenderer();
-       }
-}
index e2dee42..2cc13c1 100644 (file)
@@ -24,6 +24,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.GUIWire;
 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
+import net.mograsim.logic.model.serializing.IdentifierGetter;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 
 public final class Editor
@@ -177,7 +178,7 @@ public final class Editor
        {
                if (identifierPerComponent.containsKey(c))
                        return identifierPerComponent.get(c);
-               return "class:" + c.getClass().getCanonicalName();
+               return new IdentifierGetter().componentIDs.apply(c);
        }
 
        public void duplicate()
index 1e3d271..e690200 100644 (file)
@@ -1,8 +1,6 @@
 package net.mograsim.logic.model.editor;
 
 import java.io.IOException;
-import java.util.Map;
-import java.util.Map.Entry;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
@@ -10,11 +8,8 @@ import org.eclipse.swt.widgets.Shell;
 
 import net.mograsim.logic.model.model.ViewModelModifiable;
 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.serializing.SubmodelComponentSerializer;
-import net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandlerSnippetSuppliers;
 
 public class SaveLoadManager
 {
@@ -53,19 +48,7 @@ public class SaveLoadManager
        {
                try
                {
-                       IdentifierGetter idGetter = new IdentifierGetter();
-                       idGetter.componentIDs = c -> getStandardID(c, IndirectGUIComponentCreator.getStandardComponentIDs(), true);
-                       idGetter.symbolRendererIDs = h -> getStandardID(h,
-                                       SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getStandardSnippetIDs());
-                       idGetter.outlineRendererIDs = h -> getStandardID(h,
-                                       SubmodelComponentSnippetSuppliers.outlineRendererSupplier.getStandardSnippetIDs());
-                       idGetter.highLevelStateHandlerIDs = h -> getStandardID(h,
-                                       SubmodelComponentSnippetSuppliers.highLevelStateHandlerSupplier.getStandardSnippetIDs());
-                       idGetter.atomicHighLevelStateHandlerIDs = h -> getStandardID(h,
-                                       StandardHighLevelStateHandlerSnippetSuppliers.atomicHandlerSupplier.getStandardSnippetIDs());
-                       idGetter.subcomponentHighLevelStateHandlerIDs = h -> getStandardID(h,
-                                       StandardHighLevelStateHandlerSnippetSuppliers.subcomponentHandlerSupplier.getStandardSnippetIDs());
-                       SubmodelComponentSerializer.serialize(editor.toBeEdited, idGetter, savePath);
+                       SubmodelComponentSerializer.serialize(editor.toBeEdited, savePath);
                }
                catch (IOException e)
                {
@@ -75,18 +58,6 @@ public class SaveLoadManager
                }
        }
 
-       private static String getStandardID(Object o, Map<String, String> standardIDs)
-       {
-               return getStandardID(o, standardIDs, false);
-       }
-
-       private static String getStandardID(Object o, Map<String, String> standardIDs, boolean standardIDsHaveClassConcatenated)
-       {
-               String verboseID = (standardIDsHaveClassConcatenated ? "class:" : "") + o.getClass().getCanonicalName();
-               return standardIDs.entrySet().stream().filter(e -> e.getValue().equals(verboseID)).map(Entry::getKey).findAny()
-                               .orElseGet(() -> (standardIDsHaveClassConcatenated ? "" : "class:") + verboseID);
-       }
-
        public static void openLoadDialog() throws IOException
        {
                Shell fdShell = new Shell();
index f6e8ccd..4a02db4 100644 (file)
@@ -15,6 +15,7 @@ import net.mograsim.logic.model.editor.handles.WireHandle.WireHandleClickInfo;
 import net.mograsim.logic.model.editor.ui.DialogManager;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 
 public class SelectionState extends EditorState
 {
@@ -98,19 +99,23 @@ public class SelectionState extends EditorState
                editor.getSelection().clear();
                if ((stateMask & SWT.ALT) == SWT.ALT)
                {
-                       String[] result = DialogManager.openMultiTextDialog("Add Pin...", "Add", "Cancel", "Name", "Logic Width");
+                       String[] result = DialogManager.openMultiTextDialog("Add Pin...", "Add", "Cancel", "Name", "Logic Width", "Usage");
                        if (result != null)
                        {
                                try
                                {
-                                       Pin p = editor.toBeEdited.addSubmodelInterface(
-                                                       new MovablePin(editor.toBeEdited, result[0], Integer.parseInt(result[1]), clicked.x, clicked.y));
+                                       Pin p = editor.toBeEdited.addSubmodelInterface(new MovablePin(editor.toBeEdited, result[0], Integer.parseInt(result[1]),
+                                                       PinUsage.valueOf(result[2]), clicked.x, clicked.y));
                                        editor.handleManager.getInterfacePinHandle(p).reqMove(clicked.x, clicked.y);
                                }
                                catch (NumberFormatException e)
                                {
                                        editor.dialogManager.openWarningDialog("Failed to create Pin!", "Bit width must be a number!");
                                }
+                               catch (IllegalArgumentException e)
+                               {
+                                       editor.dialogManager.openWarningDialog("Failed to create Pin!", "Usage must be one of INPUT, OUTPUT, TRISTATE!");
+                               }
                        }
                }
        }
index b406228..97993a7 100644 (file)
@@ -5,6 +5,7 @@ import java.util.Set;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.GUIWire;
 
+//TODO a ViewModel is modifiable without casting to ViewModelModifiable via GUIWire::destroy and GUIComponent::destroy
 public class ViewModelModifiable extends ViewModel
 {
        public String getDefaultComponentName(GUIComponent component)
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/Orientation.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/Orientation.java
new file mode 100644 (file)
index 0000000..9fba366
--- /dev/null
@@ -0,0 +1,65 @@
+package net.mograsim.logic.model.model.components;
+
+/**
+ * For components that can have different orientations. The meaning is not clearly defined, however it is common that the orientation
+ * denotes the direction the output is facing or the general flow of signals. <code>_ALT</code> represents an alternative, which is normally
+ * a mirrored version. A component can choose to not support some variants.
+ * <p>
+ * In terms of calculation, {@link #RIGHT} is considered the default.
+ * <p>
+ * Note that this needs to be interpreted using the GUI coordinate system, meaning that UP and DOWN are swapped.
+ * 
+ * @author Christian Femers
+ */
+public enum Orientation
+{
+       /**
+        * The orientation <code>RIGHT</code> is the default orientation, all others are defined relative to it.
+        */
+       RIGHT(1, 0, 0, 1), LEFT(-1, 0, 0, -1), UP(0, 1, -1, 0), DOWN(0, -1, 1, 0), RIGHT_ALT(1, 0, 0, -1), LEFT_ALT(-1, 0, 0, 1),
+       UP_ALT(0, -1, -1, 0), DOWN_ALT(0, 1, 1, 0);
+
+       // simple 2D transformation matrix
+       final double trans11;
+       final double trans12;
+       final double trans21;
+       final double trans22;
+
+       private Orientation(double trans11, double trans12, double trans21, double trans22)
+       {
+               this.trans11 = trans11;
+               this.trans12 = trans12;
+               this.trans21 = trans21;
+               this.trans22 = trans22;
+       }
+
+       /**
+        * Performs a simple rotation around the origin. This does not work for the display coordinate system.
+        * 
+        * @return the point's new X coordinate
+        */
+       public double getNewX(double rightX, double rightY)
+       {
+               return rightX * trans11 + rightY * trans12;
+       }
+
+       /**
+        * Performs a simple rotation around the origin. This does not work for the display coordinate system.
+        * 
+        * @return the point's new Y coordinate
+        */
+       public double getNewY(double rightX, double rightY)
+       {
+               return rightX * trans21 + rightY * trans22;
+       }
+
+       public boolean doesMirror()
+       {
+               return ordinal() > 3;
+       }
+
+       public boolean swapsWidthAndHeight()
+       {
+               return trans11 == 0;
+       }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/OrientationCalculator.java
new file mode 100644 (file)
index 0000000..f16eaa9
--- /dev/null
@@ -0,0 +1,76 @@
+package net.mograsim.logic.model.model.components;
+
+/**
+ * This class simplifies the calculation of coordinates, especially for GUI components.
+ * <p>
+ * Supply it with the original width and height and an orientation, and use the methods {@link #newX(double, double)} and
+ * {@link #newY(double, double)} to retrieve the new coordinates, relative to the upper left corner of {@link Orientation#RIGHT}. The
+ * {@link #height()} and {@link #width()} methods return the width and height in the new orientation.
+ * <p>
+ * This is meant to be used in the context of a a classic display coordinate system, as done in the {@link GUIComponent}s.
+ *
+ * @see Orientation
+ * @author Christian Femers
+ */
+public class OrientationCalculator
+{
+       final Orientation o;
+       final double oldWHalf;
+       final double oldHHalf;
+       final double w;
+       final double h;
+       final double wHalf;
+       final double hHalf;
+
+       public OrientationCalculator(Orientation o, double width, double height)
+       {
+               this.o = o;
+               this.oldWHalf = width / 2;
+               this.oldHHalf = height / 2;
+
+               if (o.swapsWidthAndHeight())
+               {
+                       w = height;
+                       h = width;
+                       wHalf = oldHHalf;
+                       hHalf = oldWHalf;
+               } else
+               {
+                       w = width;
+                       h = height;
+                       wHalf = oldWHalf;
+                       hHalf = oldHHalf;
+               }
+       }
+
+       /**
+        * Returns the new height (that equals the old width if {@link Orientation#swapsWidthAndHeight()} is true)
+        */
+       public double height()
+       {
+               return h;
+       }
+
+       /**
+        * Returns the new width (that equals the old height if {@link Orientation#swapsWidthAndHeight()} is true)
+        */
+       public double width()
+       {
+               return w;
+       }
+
+       public double newX(double x, double y)
+       {
+               return (x - oldWHalf) * o.trans11 + (y - oldHHalf) * o.trans12 + wHalf;
+       }
+
+       public double newY(double x, double y)
+       {
+               return (x - oldWHalf) * o.trans21 + (y - oldHHalf) * o.trans22 + hHalf;
+       }
+
+       public final Orientation getOrientation()
+       {
+               return o;
+       }
+}
index 9d6b57e..12c0ee8 100644 (file)
@@ -15,6 +15,7 @@ import net.mograsim.logic.core.types.BitVectorFormatter;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.BitDisplayAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
@@ -45,7 +46,7 @@ public class GUIBitDisplay extends GUIComponent
                logicObs = (i) -> model.requestRedraw();
 
                setSize(width, height);
-               addPin(this.inputPin = new Pin(this, "", logicWidth, 0, height / 2));
+               addPin(this.inputPin = new Pin(this, "", logicWidth, PinUsage.INPUT, 0, height / 2));
        }
 
        @Override
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIClock.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIClock.java
new file mode 100644 (file)
index 0000000..91a4f32
--- /dev/null
@@ -0,0 +1,161 @@
+package net.mograsim.logic.model.model.components.atomic;
+
+import org.eclipse.swt.graphics.Color;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonSyntaxException;
+
+import net.haspamelodica.swt.helper.gcs.GeneralGC;
+import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
+import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
+import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
+import net.mograsim.logic.core.LogicObserver;
+import net.mograsim.logic.core.components.Clock;
+import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.components.GUIComponent;
+import net.mograsim.logic.model.model.components.Orientation;
+import net.mograsim.logic.model.model.components.OrientationCalculator;
+import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
+import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
+import net.mograsim.logic.model.modeladapter.componentadapters.ClockAdapter;
+import net.mograsim.logic.model.serializing.IdentifierGetter;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.preferences.Preferences;
+
+public class GUIClock extends GUIComponent
+{
+       private static final double width = 20;
+       private static final double height = 20;
+       private static final double fontHeight = 5;
+
+       private final Pin outputPin;
+
+       private final LogicObserver logicObs;
+       private GUIClockParams params;
+       private OrientationCalculator oc;
+       private Clock clock;
+
+       public GUIClock(ViewModelModifiable model, GUIClockParams params)
+       {
+               this(model, params, null);
+       }
+
+       public GUIClock(ViewModelModifiable model, GUIClockParams params, String name)
+       {
+               super(model, name);
+               this.params = params;
+               logicObs = (i) -> model.requestRedraw();
+
+               oc = new OrientationCalculator(params.orientation, width, height);
+               setSize(oc.width(), oc.height());
+
+               this.outputPin = new Pin(this, "", 1, PinUsage.OUTPUT, oc.newX(width, height / 2), oc.newY(width, height / 2));
+               addPin(outputPin);
+       }
+
+       @Override
+       public void render(GeneralGC gc, Rectangle visibleRegion)
+       {
+               Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground");
+               if (foreground != null)
+                       gc.setForeground(foreground);
+               gc.drawRectangle(getBounds());
+               String label = clock == null ? "null" : (clock.isOn() ? "|" : "\u2015");
+               Font oldFont = gc.getFont();
+               Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle());
+               gc.setFont(labelFont);
+               Point textExtent = gc.textExtent(label);
+               Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text");
+               if (textColor != null)
+                       gc.setForeground(textColor);
+               gc.drawText(label, getPosX() + (oc.width() - textExtent.x) / 2, getPosY() + (oc.height() - textExtent.y) / 2, true);
+               gc.setFont(oldFont);
+       }
+
+       public void setLogicModelBinding(Clock clock)
+       {
+               if (this.clock != null)
+                       this.clock.deregisterObserver(logicObs);
+               this.clock = clock;
+               if (clock != null)
+                       clock.registerObserver(logicObs);
+       }
+
+       public boolean hasLogicModelBinding()
+       {
+               return clock != null;
+       }
+
+       @Override
+       public Object getHighLevelState(String stateID)
+       {
+               switch (stateID)
+               {
+               case "out":
+                       if (clock != null)
+                               return clock.getOut().getInputValues();
+                       return null;
+               default:
+                       return super.getHighLevelState(stateID);
+               }
+       }
+
+       @Override
+       public void setHighLevelState(String stateID, Object newState)
+       {
+               switch (stateID)
+               {
+               case "out":
+                       throw new UnsupportedOperationException("cannot set state of clock");
+               default:
+                       super.setHighLevelState(stateID, newState);
+               }
+       }
+
+       public Clock getClock()
+       {
+               return clock;
+       }
+
+       public Pin getOutputPin()
+       {
+               return outputPin;
+       }
+
+       public int getDelta()
+       {
+               return params.delta;
+       }
+
+       @Override
+       public JsonElement getParamsForSerializing(IdentifierGetter idGetter)
+       {
+               return new Gson().toJsonTree(params);
+       }
+
+       static
+       {
+               ViewLogicModelAdapter.addComponentAdapter(new ClockAdapter());
+               IndirectGUIComponentCreator.setComponentSupplier(GUIClock.class.getName(), (m, p, n) ->
+               {
+                       GUIClockParams params = new Gson().fromJson(p, GUIClockParams.class);
+                       if (params == null)
+                               throw new JsonSyntaxException("Invalid!!!");
+                       return new GUIClock(m, params, n);
+               });
+       }
+
+       public static class GUIClockParams
+       {
+               int delta;
+               Orientation orientation;
+
+               public GUIClockParams(int delta, Orientation orientation)
+               {
+                       this.delta = delta;
+                       this.orientation = orientation;
+               }
+       }
+}
index b9a09e3..daa7bd9 100644 (file)
@@ -9,15 +9,14 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.core.LogicObservable;
 import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.components.ManualSwitch;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.types.BitVectorFormatter;
-import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.ManualSwitchAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
@@ -35,7 +34,6 @@ public class GUIManualSwitch extends GUIComponent
 
        private final LogicObserver logicObs;
        private ManualSwitch logicSwitch;
-       private ReadEnd end;
 
        public GUIManualSwitch(ViewModelModifiable model, int logicWidth)
        {
@@ -49,18 +47,17 @@ public class GUIManualSwitch extends GUIComponent
                logicObs = (i) -> model.requestRedraw();
 
                setSize(width, height);
-               addPin(this.outputPin = new Pin(this, "", logicWidth, width, height / 2));
+               addPin(this.outputPin = new Pin(this, "", logicWidth, PinUsage.OUTPUT, width, height / 2));
        }
 
        @Override
        public void render(GeneralGC gc, Rectangle visibleRegion)
        {
-               // TODO maybe draw switch state too?
                Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground");
                if (foreground != null)
                        gc.setForeground(foreground);
                gc.drawRectangle(getBounds());
-               String label = BitVectorFormatter.formatValueAsString(end);
+               String label = BitVectorFormatter.formatAsString(logicSwitch == null ? null : logicSwitch.getValues());
                Font oldFont = gc.getFont();
                Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle());
                gc.setFont(labelFont);
@@ -72,14 +69,13 @@ public class GUIManualSwitch extends GUIComponent
                gc.setFont(oldFont);
        }
 
-       public void setLogicModelBinding(ManualSwitch logicSwitch, ReadEnd end)
+       public void setLogicModelBinding(ManualSwitch logicSwitch)
        {
-               deregisterLogicObs(this.end);
-               deregisterLogicObs(this.logicSwitch);
+               if (this.logicSwitch != null)
+                       this.logicSwitch.deregisterObserver(logicObs);
                this.logicSwitch = logicSwitch;
-               this.end = end;
-               registerLogicObs(end);
-               registerLogicObs(logicSwitch);
+               if (logicSwitch != null)
+                       logicSwitch.registerObserver(logicObs);
        }
 
        public boolean hasLogicModelBinding()
@@ -116,18 +112,6 @@ public class GUIManualSwitch extends GUIComponent
                }
        }
 
-       private void registerLogicObs(LogicObservable observable)
-       {
-               if (observable != null)
-                       observable.registerObserver(logicObs);
-       }
-
-       private void deregisterLogicObs(LogicObservable observable)
-       {
-               if (observable != null)
-                       observable.deregisterObserver(logicObs);
-       }
-
        @Override
        public boolean clicked(double x, double y)
        {
index e72cf8a..656c91f 100644 (file)
@@ -12,6 +12,7 @@ import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.MergerAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
@@ -43,8 +44,8 @@ public class GUIMerger extends GUIComponent
                setSize(width, logicWidth * heightPerPin);
                double inputHeight = 0;
                for (int i = 0; i < logicWidth; i++, inputHeight += 10)
-                       addPin(new Pin(this, "I" + i, 1, 0, inputHeight));
-               addPin(this.outputPin = new Pin(this, "O", logicWidth, width, (logicWidth - 1) * heightPerPin / 2));
+                       addPin(new Pin(this, "I" + i, 1, PinUsage.TRISTATE, 0, inputHeight));
+               addPin(this.outputPin = new Pin(this, "O", logicWidth, PinUsage.TRISTATE, width, (logicWidth - 1) * heightPerPin / 2));
                inputEnds = new ReadEnd[logicWidth];
        }
 
index 0ca71c7..63650a6 100644 (file)
@@ -12,6 +12,7 @@ import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
@@ -41,10 +42,10 @@ public class GUISplitter extends GUIComponent
                super(model, name);
                this.logicWidth = logicWidth;
                setSize(width, logicWidth * heightPerPin);
-               addPin(this.inputPin = new Pin(this, "I", logicWidth, 0, (logicWidth - 1) * heightPerPin / 2));
+               addPin(this.inputPin = new Pin(this, "I", logicWidth, PinUsage.TRISTATE, 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));
+                       addPin(new Pin(this, "O" + i, 1, PinUsage.TRISTATE, width, outputHeight));
                outputEnds = new ReadEnd[logicWidth];
        }
 
index bfc49d8..c9036d2 100644 (file)
@@ -10,7 +10,10 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
+import net.mograsim.logic.model.model.components.Orientation;
+import net.mograsim.logic.model.model.components.OrientationCalculator;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.TriStateBufferAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
@@ -28,6 +31,7 @@ public class GUITriStateBuffer extends GUIComponent
        private double[] path;
 
        private GUITriStateBufferParams params;
+       private OrientationCalculator oc;
 
        public GUITriStateBuffer(ViewModelModifiable model, GUITriStateBufferParams params)
        {
@@ -39,26 +43,19 @@ public class GUITriStateBuffer extends GUIComponent
                super(model, name);
                this.params = params;
 
+               oc = new OrientationCalculator(params.orientation, width, height);
+
                double wHalf = width / 2;
                double hHalf = height / 2;
-               double wQuar = width / 4;
                double hQuar = height / 4;
-               int ordi = params.orientation.ordinal();
-               int isVerti = (ordi % 4) / 2;
-               int isHori = 1 ^ isVerti;
-               int isAlt = ordi / 4;
-               int isInv = ordi % 2;
-               int isStd = 1 ^ isInv;
-
-               this.input = new Pin(this, "IN", params.logicWidth, width * isInv * isHori + wHalf * isVerti,
-                               height * isVerti * isStd + hHalf * isHori);
-               this.output = new Pin(this, "OUT", params.logicWidth, width * isStd * isHori + wHalf * isVerti,
-                               height * isVerti * isInv + hHalf * isHori);
-               this.enable = new Pin(this, "EN", 1, wQuar * isVerti + wHalf * (isAlt | isHori), hQuar * isHori + hHalf * (isAlt | isVerti));
-               this.path = new double[] { width * (isStd ^ isHori), height * (isStd ^ isHori), width * isInv, height * isStd,
-                               width * isStd * isHori + wHalf * isVerti, height * isVerti * isInv + hHalf * isHori };
-
-               setSize(width, height);
+
+               this.input = new Pin(this, "IN", params.logicWidth, PinUsage.INPUT, oc.newX(0, hHalf), oc.newY(0, hHalf));
+               this.output = new Pin(this, "OUT", params.logicWidth, PinUsage.OUTPUT, oc.newX(width, hHalf), oc.newY(width, hHalf));
+               this.enable = new Pin(this, "EN", 1, PinUsage.INPUT, oc.newX(wHalf, hQuar), oc.newY(wHalf, hQuar));
+               this.path = new double[] { oc.newX(0, 0), oc.newY(0, 0), oc.newX(width, hHalf), oc.newY(width, hHalf), oc.newX(0, height),
+                               oc.newY(0, height) };
+
+               setSize(oc.width(), oc.height());
                addPin(input);
                addPin(output);
                addPin(enable);
@@ -73,15 +70,6 @@ public class GUITriStateBuffer extends GUIComponent
                double x = getPosX();
                double y = getPosY();
                gc.drawPolygon(new double[] { x + path[0], y + path[1], x + path[2], y + path[3], x + path[4], y + path[5] });
-//             Font oldFont = gc.getFont();
-//             Font labelFont = new Font(oldFont.getName(), fontHeight, oldFont.getStyle());
-//             gc.setFont(labelFont);
-//             Point textExtent = gc.textExtent(label);
-//             Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text");
-//             if (textColor != null)
-//                     gc.setForeground(textColor);
-//             gc.drawText(label, getPosX() + (rectWidth - textExtent.x) / 2, getPosY() + (height - textExtent.y) / 2, true);
-//             gc.setFont(oldFont);
        }
 
        @Override
@@ -102,14 +90,15 @@ public class GUITriStateBuffer extends GUIComponent
                });
        }
 
-       private static class GUITriStateBufferParams
+       public static class GUITriStateBufferParams
        {
                int logicWidth;
                Orientation orientation;
-       }
 
-       public enum Orientation
-       {
-               RIGHT, LEFT, UP, DOWN, RIGHT_ALT, LEFT_ALT, UP_ALT, DOWN_ALT;
+               public GUITriStateBufferParams(int logicWidth, Orientation orientation)
+               {
+                       this.logicWidth = logicWidth;
+                       this.orientation = orientation;
+               }
        }
 }
index ef7d010..e343c58 100644 (file)
@@ -16,6 +16,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
 import net.mograsim.preferences.Preferences;
 
@@ -41,7 +42,7 @@ public class SimpleRectangularGUIGate extends GUIComponent
                this.logicWidth = logicWidth;
                this.isInverted = isInverted;
                this.rectWidth = width - (isInverted ? invertedCircleDiam : 0);
-               this.outputPin = new MovablePin(this, "Y", logicWidth, width, 0);
+               this.outputPin = new MovablePin(this, "Y", logicWidth, PinUsage.OUTPUT, width, 0);
                addPin(outputPin);
                this.inputPins = new ArrayList<>();
                setInputCount(1);
@@ -58,7 +59,7 @@ public class SimpleRectangularGUIGate extends GUIComponent
                        for (int i = oldInputCount; i < inputCount; i++)
                        {
                                // TODO what for more than 24 input pins?
-                               Pin pin = new Pin(this, String.valueOf((char) ('A' + i)), logicWidth, 0, pinDistance / 2 + i * pinDistance);
+                               Pin pin = new Pin(this, String.valueOf((char) ('A' + i)), logicWidth, PinUsage.INPUT, 0, pinDistance / 2 + i * pinDistance);
                                inputPins.add(pin);
                                addPin(pin);
                        }
index 1ced6d4..c06ec14 100644 (file)
@@ -1,7 +1,7 @@
 package net.mograsim.logic.model.model.components.atomic;
 
-import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
@@ -12,6 +12,8 @@ import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SimpleRectangularHardcodedGUIComponentAdapter;
+import net.mograsim.logic.model.serializing.IdentifierGetter;
+import net.mograsim.logic.model.snippets.HighLevelStateHandler;
 import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer.CenteredTextParams;
@@ -25,19 +27,18 @@ public abstract class SimpleRectangularHardcodedGUIComponent extends GUIComponen
        private static final double pinNamesHeight = 3.5;
        private static final double pinNamesMargin = .5;
 
-       // TODO maybe make this more general?
-       private final Map<Pin, Usage> pinUsages;
-
        private final DefaultOutlineRenderer outlineRenderer;
        private final CenteredTextSymbolRenderer centerTextRenderer;
        private final PinNamesSymbolRenderer pinNamesRenderer;
 
+       private AtomicReference<Object> state;
+       private Runnable recalculate;
+
        // creation and destruction
 
        public SimpleRectangularHardcodedGUIComponent(ViewModelModifiable model, String name, String centerText)
        {
                super(model, name);
-               pinUsages = new HashMap<>();
                this.outlineRenderer = new DefaultOutlineRenderer(this);
                CenteredTextParams centeredTextParams = new CenteredTextParams();
                centeredTextParams.text = centerText;
@@ -48,31 +49,67 @@ public abstract class SimpleRectangularHardcodedGUIComponent extends GUIComponen
                pinNamesParams.pinLabelMargin = pinNamesMargin;
                this.pinNamesRenderer = new PinNamesSymbolRenderer(this, pinNamesParams);
                addPinRemovedListener(this::pinRemoved);
+               setHighLevelStateHandler(new HighLevelStateHandler()
+               {
+                       @Override
+                       public Object getParamsForSerializing(IdentifierGetter idGetter)
+                       {
+                               return null;
+                       }
+
+                       @Override
+                       public Object getHighLevelState(String stateID)
+                       {
+                               return SimpleRectangularHardcodedGUIComponent.this.getHighLevelState(state.get(), stateID);
+                       }
+
+                       @Override
+                       public void setHighLevelState(String stateID, Object newState)
+                       {
+                               state.updateAndGet(s -> SimpleRectangularHardcodedGUIComponent.this.setHighLevelState(s, stateID, newState));
+                               recalculate.run();
+                       }
+               });
        }
 
        // pins
 
-       protected void addPin(Pin pin, Usage usage, Position namePosition)
+       protected void addPin(Pin pin, Position namePosition)
        {
                super.addPin(pin); // do this first to catch errors
-               pinUsages.put(pin, usage);
                pinNamesRenderer.setPinPosition(pin, namePosition);
        }
 
        private void pinRemoved(Pin pin)
        {
-               pinUsages.remove(pin);
                pinNamesRenderer.setPinPosition(pin, null);
        }
 
-       public Usage getPinUsage(Pin pin)
+       // high-level access
+
+       @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden
+       protected Object getHighLevelState(Object state, String stateID)
        {
-               return pinUsages.get(pin);
+               throw new IllegalArgumentException("No high level state with ID " + stateID);
+       }
+
+       @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden
+       protected Object setHighLevelState(Object lastState, String stateID, Object newHighLevelState)
+       {
+               throw new IllegalArgumentException("No high level state with ID " + stateID);
        }
 
        // logic
 
-       protected abstract Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds);
+       public abstract Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds);
+
+       // logic model binding
+
+       public void setLogicModelBindingAndResetState(AtomicReference<Object> state, Runnable recalculate)
+       {
+               this.state = state;
+               this.recalculate = recalculate;
+       }
 
        // "graphical" operations
 
@@ -89,16 +126,11 @@ public abstract class SimpleRectangularHardcodedGUIComponent extends GUIComponen
        @Override
        protected void addPin(Pin pin)
        {
-               throw new UnsupportedOperationException("Can't add pins without setting usage, call addPin(Pin, Usage [, Position]) instead");
-       }
-
-       public static enum Usage
-       {
-               INPUT, OUTPUT, TRISTATE;
+               throw new UnsupportedOperationException("Can't add pins without setting usage, call addPin(Pin [, Position]) instead");
        }
 
        static
        {
-               ViewLogicModelAdapter.addComponentAdapter(new SimpleRectangularHardcodedGUIComponentAdapter(c -> c::recalculate));
+               ViewLogicModelAdapter.addComponentAdapter(new SimpleRectangularHardcodedGUIComponentAdapter());
        }
 }
\ No newline at end of file
index 041a41e..33a0bb3 100644 (file)
@@ -9,6 +9,7 @@ import java.util.List;
 import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
@@ -56,15 +57,16 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
 
        protected void setInputPins(String... pinNames)
        {
-               setIOPins(0, inputPinNames, outputPinNames, pinNames);
+               setIOPins(0, inputPinNames, outputPinNames, PinUsage.INPUT, pinNames);
        }
 
        protected void setOutputPins(String... pinNames)
        {
-               setIOPins(width, outputPinNames, inputPinNames, pinNames);
+               setIOPins(width, outputPinNames, inputPinNames, PinUsage.OUTPUT, pinNames);
        }
 
-       private void setIOPins(double relX, List<String> pinNamesListThisSide, List<String> pinNamesListOtherSide, String... newPinNames)
+       private void setIOPins(double relX, List<String> pinNamesListThisSide, List<String> pinNamesListOtherSide, PinUsage usage,
+                       String... newPinNames)
        {
                int inputCount = newPinNames.length;
                List<String> newPinNamesList = Arrays.asList(newPinNames);
@@ -79,7 +81,7 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
                        String pinName = newPinNames[i];
                        int oldPinIndex = pinNamesListThisSide.indexOf(pinName);
                        if (oldPinIndex == -1)
-                               super.addSubmodelInterface(new MovablePin(this, pinName, logicWidth, relX, pinDistance / 2 + i * pinDistance));
+                               super.addSubmodelInterface(new MovablePin(this, pinName, logicWidth, usage, relX, pinDistance / 2 + i * pinDistance));
                        else
                                getSupermodelMovablePin(pinName).setRelPos(relX, pinDistance / 2 + i * pinDistance);
                }
index 6ca7705..621f721 100644 (file)
@@ -16,6 +16,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.snippets.Renderer;
 
 /**
@@ -107,8 +108,8 @@ public abstract class SubmodelComponent extends GUIComponent
                this.submodelInterface = new SubmodelInterface(submodelModifiable, SUBMODEL_INTERFACE_NAME);
 
                this.submodelScale = 1;
-               this.maxVisibleRegionFillRatioForAlpha0 = 0.0;
-               this.minVisibleRegionFillRatioForAlpha1 = 0.0;
+               this.maxVisibleRegionFillRatioForAlpha0 = 0.8;
+               this.minVisibleRegionFillRatioForAlpha1 = 0.9;
                this.renderer = new LogicUIRenderer(submodelModifiable);
 
                Consumer<Runnable> redrawHandlerChangedListener = submodelModifiable::setRedrawHandler;
@@ -137,8 +138,24 @@ public abstract class SubmodelComponent extends GUIComponent
                super.addPin(supermodelPin);// do this first to be fail-fast if the supermodel does not belong to this component
 
                String name = supermodelPin.name;
-               MovablePin submodelPin = new MovablePin(submodelInterface, name, supermodelPin.logicWidth, supermodelPin.getRelX() / submodelScale,
-                               supermodelPin.getRelY() / submodelScale);
+               // TODO if we upgrade to Java 12, replace with switch-expression
+               PinUsage submodelPinUsage;
+               switch (supermodelPin.usage)
+               {
+               case INPUT:
+                       submodelPinUsage = PinUsage.OUTPUT;
+                       break;
+               case OUTPUT:
+                       submodelPinUsage = PinUsage.INPUT;
+                       break;
+               case TRISTATE:
+                       submodelPinUsage = PinUsage.TRISTATE;
+                       break;
+               default:
+                       throw new IllegalArgumentException("Unknown enum constant: " + supermodelPin.usage);
+               }
+               MovablePin submodelPin = new MovablePin(submodelInterface, name, supermodelPin.logicWidth, submodelPinUsage,
+                               supermodelPin.getRelX() / submodelScale, supermodelPin.getRelY() / submodelScale);
 
                submodelPin.addPinMovedListener(p ->
                {
index 06f4de2..ba6d3b7 100644 (file)
@@ -9,9 +9,9 @@ import net.mograsim.logic.model.model.components.GUIComponent;
  */
 public class MovablePin extends Pin
 {
-       public MovablePin(GUIComponent component, String name, int logicWidth, double relX, double relY)
+       public MovablePin(GUIComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY)
        {
-               super(component, name, logicWidth, relX, relY);
+               super(component, name, logicWidth, usage, relX, relY);
        }
 
        @Override
index d200873..5f6504c 100644 (file)
@@ -2,6 +2,7 @@ package net.mograsim.logic.model.model.wires;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.function.Consumer;
 
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
@@ -19,7 +20,7 @@ public class Pin
 {
        // TODO introduce input/output/tristate hints
        /**
-        * The {@link GUIComponent} this pin belongs to
+        * The {@link GUIComponent} this pin belongs to.
         */
        public final GUIComponent component;
        /**
@@ -30,6 +31,11 @@ public class Pin
         * The logical width of this pin. Denotes how many bits this pin consists of.
         */
        public final int logicWidth;
+       /**
+        * How this pin is used by the component it belongs to.<br>
+        * Note that this is only a hint.
+        */
+       public final PinUsage usage;
 
        /**
         * The X position of this pin, relative to its component's location.
@@ -50,11 +56,12 @@ public class Pin
         * 
         * @author Daniel Kirschten
         */
-       public Pin(GUIComponent component, String name, int logicWidth, double relX, double relY)
+       public Pin(GUIComponent component, String name, int logicWidth, PinUsage usage, double relX, double relY)
        {
                this.component = component;
                this.name = name;
                this.logicWidth = logicWidth;
+               this.usage = Objects.requireNonNull(usage);
                this.relX = relX;
                this.relY = relY;
 
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/PinUsage.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/PinUsage.java
new file mode 100644 (file)
index 0000000..f229d02
--- /dev/null
@@ -0,0 +1,18 @@
+package net.mograsim.logic.model.model.wires;
+
+public enum PinUsage
+{
+       /**
+        * The component never affects the value of the wire connected to the pin.
+        */
+       INPUT,
+       /**
+        * The component is never affected by the value of the wire connected to this pin. This includes the look of the component.
+        */
+       OUTPUT,
+       /**
+        * The component (sometimes) affects the value of the wire connected to the pin, but is also (sometimes) affected by the value of this
+        * wire.
+        */
+       TRISTATE;
+}
\ No newline at end of file
index c3f625c..5751596 100644 (file)
@@ -61,7 +61,7 @@ public class WireCrossPoint extends GUIComponent
                logicObs = (i) -> model.requestRedraw();
 
                setSize(CIRCLE_DIAM, CIRCLE_DIAM);
-               addPin(this.pin = new Pin(this, "", logicWidth, CIRCLE_RADIUS, CIRCLE_RADIUS));
+               addPin(this.pin = new Pin(this, "", logicWidth, PinUsage.TRISTATE, CIRCLE_RADIUS, CIRCLE_RADIUS));
        }
 
        // pins
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/componentadapters/ClockAdapter.java
new file mode 100644 (file)
index 0000000..55d3edb
--- /dev/null
@@ -0,0 +1,30 @@
+package net.mograsim.logic.model.modeladapter.componentadapters;
+
+import java.util.Map;
+
+import net.mograsim.logic.core.components.Clock;
+import net.mograsim.logic.core.timeline.Timeline;
+import net.mograsim.logic.core.wires.Wire;
+import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
+import net.mograsim.logic.model.model.components.atomic.GUIClock;
+import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.modeladapter.LogicModelParameters;
+
+public class ClockAdapter implements ComponentAdapter<GUIClock>
+{
+
+       @Override
+       public Class<GUIClock> getSupportedClass()
+       {
+               return GUIClock.class;
+       }
+
+       @Override
+       public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIClock guiClock, Map<Pin, Wire> logicWiresPerPin)
+       {
+               ReadWriteEnd out = logicWiresPerPin.get(guiClock.getOutputPin()).createReadWriteEnd();
+               Clock c = new Clock(timeline, out, guiClock.getDelta());
+               guiClock.setLogicModelBinding(c);
+       }
+
+}
\ No newline at end of file
index 7ba8544..518db91 100644 (file)
@@ -24,6 +24,6 @@ public class ManualSwitchAdapter implements ComponentAdapter<GUIManualSwitch>
        {
                ReadWriteEnd end = logicWiresPerPin.get(guiComponent.getOutputPin()).createReadWriteEnd();
                ManualSwitch manualSwitch = new ManualSwitch(timeline, end);
-               guiComponent.setLogicModelBinding(manualSwitch, end);
+               guiComponent.setLogicModelBinding(manualSwitch);
        }
 }
\ No newline at end of file
index 7eeee59..8ca38c0 100644 (file)
@@ -3,7 +3,6 @@ package net.mograsim.logic.model.modeladapter.componentadapters;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Function;
 
 import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.timeline.Timeline;
@@ -11,21 +10,12 @@ import net.mograsim.logic.core.wires.Wire;
 import net.mograsim.logic.core.wires.Wire.ReadEnd;
 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent;
-import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedGUIComponent.Usage;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.LogicModelParameters;
 
-//TODO support HighLevelStates
 public class SimpleRectangularHardcodedGUIComponentAdapter implements ComponentAdapter<SimpleRectangularHardcodedGUIComponent>
 {
-       private final Function<SimpleRectangularHardcodedGUIComponent, RecalculateFunction> recalculateFunctionGenerator;
-
-       public SimpleRectangularHardcodedGUIComponentAdapter(
-                       Function<SimpleRectangularHardcodedGUIComponent, RecalculateFunction> recalculateFunctionGenerator)
-       {
-               this.recalculateFunctionGenerator = recalculateFunctionGenerator;
-       }
-
        @Override
        public Class<SimpleRectangularHardcodedGUIComponent> getSupportedClass()
        {
@@ -36,20 +26,21 @@ public class SimpleRectangularHardcodedGUIComponentAdapter implements ComponentA
        public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, SimpleRectangularHardcodedGUIComponent guiComponent,
                        Map<Pin, Wire> logicWiresPerPin)
        {
-               RecalculateFunction recalculate = recalculateFunctionGenerator.apply(guiComponent);
                Map<String, ReadEnd> readEnds = new HashMap<>();
                Map<String, ReadWriteEnd> readWriteEnds = new HashMap<>();
 
                AtomicReference<Object> state = new AtomicReference<>();
 
-               LogicObserver logicObs = c -> timeline.addEvent(e -> state.set(recalculate.recalculate(state.get(), readEnds, readWriteEnds)),
-                               params.gateProcessTime);
+               Runnable recalculate = () -> state.updateAndGet(s -> guiComponent.recalculate(s, readEnds, readWriteEnds));
+               LogicObserver logicObs = c -> timeline.addEvent(e -> recalculate.run(), params.gateProcessTime);
+
+               guiComponent.setLogicModelBindingAndResetState(state, recalculate);
 
                for (Pin pin : guiComponent.getPins().values())
                {
                        Wire wire = logicWiresPerPin.get(pin);
                        ReadEnd end;
-                       if (guiComponent.getPinUsage(pin) != Usage.INPUT)
+                       if (pin.usage != PinUsage.INPUT)
                        {
                                ReadWriteEnd rwEnd = wire.createReadWriteEnd();
                                readWriteEnds.put(pin.name, rwEnd);
@@ -57,13 +48,8 @@ public class SimpleRectangularHardcodedGUIComponentAdapter implements ComponentA
                        } else
                                end = wire.createReadOnlyEnd();
                        readEnds.put(pin.name, end);
-                       if (guiComponent.getPinUsage(pin) != Usage.OUTPUT)
+                       if (pin.usage != PinUsage.OUTPUT)
                                end.registerObserver(logicObs);
                }
        }
-
-       public static interface RecalculateFunction
-       {
-               public Object recalculate(Object lastState, Map<String, ReadEnd> readEnds, Map<String, ReadWriteEnd> readWriteEnds);
-       }
 }
\ No newline at end of file
index ba8c484..2dadcd8 100644 (file)
@@ -2,7 +2,6 @@ package net.mograsim.logic.model.modeladapter.componentadapters;
 
 import java.util.Map;
 
-import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.components.TriStateBuffer;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.wires.Wire;
@@ -29,17 +28,5 @@ public class TriStateBufferAdapter implements ComponentAdapter<GUITriStateBuffer
                ReadEnd enable = logicWiresPerPin.get(guiTsb.getPin("EN")).createReadOnlyEnd();
                ReadWriteEnd out = logicWiresPerPin.get(guiTsb.getPin("OUT")).createReadWriteEnd();
                new TriStateBuffer(timeline, params.gateProcessTime, in, out, enable);
-               // TODO debug code below - remove
-               String msgHeader = '<' + guiTsb.name + ">: ";
-               LogicObserver obs = c ->
-               {
-                       System.out.println(msgHeader + "wire states:");
-                       System.out.println(msgHeader + "  in    : " + in.getValues());
-                       System.out.println(msgHeader + "  enable: " + enable.getValues());
-                       System.out.println(msgHeader + "  out   : " + out.getValues());
-               };
-               in.registerObserver(obs);
-               enable.registerObserver(obs);
-               out.registerObserver(obs);
        }
 }
index f1bb5f0..7e2cfd8 100644 (file)
@@ -1,8 +1,17 @@
 package net.mograsim.logic.model.serializing;
 
+import static net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers.highLevelStateHandlerSupplier;
+import static net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers.outlineRendererSupplier;
+import static net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers.symbolRendererSupplier;
+import static net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandlerSnippetSuppliers.atomicHandlerSupplier;
+import static net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandlerSnippetSuppliers.subcomponentHandlerSupplier;
+
+import java.util.Map;
+import java.util.Map.Entry;
 import java.util.function.Function;
 
 import net.mograsim.logic.model.model.components.GUIComponent;
+import net.mograsim.logic.model.snippets.CodeSnippetSupplier;
 import net.mograsim.logic.model.snippets.HighLevelStateHandler;
 import net.mograsim.logic.model.snippets.Renderer;
 import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.AtomicHighLevelStateHandler;
@@ -20,17 +29,33 @@ public class IdentifierGetter
        public Function<AtomicHighLevelStateHandler, String> atomicHighLevelStateHandlerIDs;
 
        /**
-        * Creates a new IdentifierGetter using "class:" concatenated with a component's / snippet's complete (canonical) class name as the
-        * default for all ID getter functions.
+        * Creates a new IdentifierGetter using the following as the default for all ID getter functions: <br>
+        * Define the verbose ID as <code>"class:" + canonicalClassName</code>.<br>
+        * If there is a standard ID mapping to this verbose ID recorded in the matching {@link CodeSnippetSupplier}, use this ID; if not, use
+        * the verbose ID.
         */
        public IdentifierGetter()
        {
-               Function<Object, String> defaultSnippetIDGetter = c -> "class:" + c.getClass().getCanonicalName();
-               this.componentIDs = defaultSnippetIDGetter::apply;
-               this.symbolRendererIDs = defaultSnippetIDGetter::apply;
-               this.outlineRendererIDs = defaultSnippetIDGetter::apply;
-               this.highLevelStateHandlerIDs = defaultSnippetIDGetter::apply;
-               this.subcomponentHighLevelStateHandlerIDs = defaultSnippetIDGetter::apply;
-               this.atomicHighLevelStateHandlerIDs = defaultSnippetIDGetter::apply;
+               componentIDs = generateStandardIDFunction(IndirectGUIComponentCreator.getStandardComponentIDs());
+               symbolRendererIDs = generateStandardIDFunction(symbolRendererSupplier);
+               outlineRendererIDs = generateStandardIDFunction(outlineRendererSupplier);
+               highLevelStateHandlerIDs = generateStandardIDFunction(highLevelStateHandlerSupplier);
+               atomicHighLevelStateHandlerIDs = generateStandardIDFunction(atomicHandlerSupplier);
+               subcomponentHighLevelStateHandlerIDs = generateStandardIDFunction(subcomponentHandlerSupplier);
+       }
+
+       private static <T> Function<T, String> generateStandardIDFunction(CodeSnippetSupplier<?, T> snippetSupplier)
+       {
+               return generateStandardIDFunction(snippetSupplier.getStandardSnippetIDs());
+       }
+
+       private static <T> Function<T, String> generateStandardIDFunction(Map<String, String> standardComponentIDs)
+       {
+               return t ->
+               {
+                       String verboseID = "class:" + t.getClass().getCanonicalName();
+                       return standardComponentIDs.entrySet().stream().filter(e -> e.getValue().equals(verboseID)).map(Entry::getKey).findAny()
+                                       .orElse(verboseID);
+               };
        }
 }
\ No newline at end of file
index 2ede422..f60fe5f 100644 (file)
@@ -15,6 +15,7 @@ import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.GUIWire;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.LegacySubmodelComponentParams.LegacyInterfacePinParams;
 import net.mograsim.logic.model.serializing.LegacySubmodelComponentParams.LegacySubmodelParameters;
 import net.mograsim.logic.model.serializing.LegacySubmodelComponentParams.LegacySubmodelParameters.LegacyInnerComponentParams;
@@ -171,8 +172,9 @@ public final class LegacySubmodelComponentSerializer
                comp.setSubmodelScale(params.submodel.innerScale);
                comp.setSize(params.width, params.height);
                for (LegacyInterfacePinParams iPinParams : params.interfacePins)
-                       comp.addSubmodelInterface(
-                                       new MovablePin(comp, iPinParams.name, iPinParams.logicWidth, iPinParams.location.x, iPinParams.location.y));
+                       // TRISTATE because we don't have a better choice
+                       comp.addSubmodelInterface(new MovablePin(comp, iPinParams.name, iPinParams.logicWidth, PinUsage.TRISTATE, iPinParams.location.x,
+                                       iPinParams.location.y));
                LegacySubmodelParameters submodelParams = params.submodel;
                ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
                Map<String, GUIComponent> componentsByName = submodelModifiable.getComponentsByName();
index 155b658..1cb5fcb 100644 (file)
@@ -4,6 +4,7 @@ import com.google.gson.JsonElement;
 
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.util.Version;
 
 /**
@@ -37,5 +38,6 @@ public class SubmodelComponentParams extends SerializablePojo
                public Point location;
                public String name;
                public int logicWidth;
+               public PinUsage usage;
        }
 }
\ No newline at end of file
index 126e2aa..a062eaa 100644 (file)
@@ -1,6 +1,8 @@
 package net.mograsim.logic.model.serializing;
 
 import java.io.IOException;
+import java.util.Arrays;
+import java.util.Comparator;
 
 import com.google.gson.JsonElement;
 
@@ -8,6 +10,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.serializing.SubmodelComponentParams.InterfacePinParams;
 import net.mograsim.logic.model.snippets.HighLevelStateHandler;
 import net.mograsim.logic.model.snippets.Renderer;
@@ -23,7 +26,9 @@ import net.mograsim.logic.model.util.Version;
  */
 public final class SubmodelComponentSerializer
 {
-       public static final Version CURRENT_JSON_VERSION = Version.parseSemver("0.1.4");
+       public static final Version JSON_VERSION_CURRENT_SERIALIZING = Version.parseSemver("0.1.5");
+       public static final Version JSON_VERSION_LATEST_SUPPORTED_DESERIALIZING = Version.parseSemver("0.1.5");
+       public static final Version JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED = Version.parseSemver("0.1.5");
        // convenience methods
 
        /**
@@ -157,13 +162,18 @@ public final class SubmodelComponentSerializer
        public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params, String name,
                        String idForSerializingOverride, JsonElement paramsForSerializingOverride)
        {
+               Version version = params.version;
+               if (version.compareTo(JSON_VERSION_LATEST_SUPPORTED_DESERIALIZING) > 0)
+                       throw new IllegalArgumentException("JSON version " + version + " not supported yet");
+               boolean hasUsageSerialized = version.compareTo(JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED) >= 0;
                DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name, idForSerializingOverride,
                                paramsForSerializingOverride);
                comp.setSubmodelScale(params.innerScale);
                comp.setSize(params.width, params.height);
                for (InterfacePinParams iPinParams : params.interfacePins)
-                       comp.addSubmodelInterface(
-                                       new MovablePin(comp, iPinParams.name, iPinParams.logicWidth, iPinParams.location.x, iPinParams.location.y));
+                       // TRISTATE because we don't have a better choice
+                       comp.addSubmodelInterface(new MovablePin(comp, iPinParams.name, iPinParams.logicWidth,
+                                       hasUsageSerialized ? iPinParams.usage : PinUsage.TRISTATE, iPinParams.location.x, iPinParams.location.y));
                ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
                ViewModelSerializer.deserialize(comp.getSubmodelModifiable(), params.submodel);
                comp.setSymbolRenderer(SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getSnippetSupplier(params.symbolRendererSnippetID)
@@ -187,7 +197,7 @@ public final class SubmodelComponentSerializer
         */
        public static SubmodelComponentParams serialize(SubmodelComponent comp, IdentifierGetter idGetter)
        {
-               SubmodelComponentParams params = new SubmodelComponentParams(CURRENT_JSON_VERSION);
+               SubmodelComponentParams params = new SubmodelComponentParams(JSON_VERSION_CURRENT_SERIALIZING);
                params.innerScale = comp.getSubmodelScale();
                params.submodel = ViewModelSerializer.serialize(comp.submodel, idGetter);
 
@@ -203,9 +213,11 @@ public final class SubmodelComponentSerializer
                        iPinParams.location = p.getRelPos();
                        iPinParams.name = p.name;
                        iPinParams.logicWidth = p.logicWidth;
+                       iPinParams.usage = p.usage;
                        i++;
                }
                params.interfacePins = iPins;
+               Arrays.sort(params.interfacePins, Comparator.comparing(p -> p.name));
 
                Renderer symbolRenderer = comp.getSymbolRenderer();
                if (symbolRenderer != null)
index ffd18c9..38bdf9c 100644 (file)
@@ -1,7 +1,9 @@
 package net.mograsim.logic.model.serializing;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -161,6 +163,7 @@ public class ViewModelSerializer
                        compParams.name = component.name;
                }
                modelParams.components = componentsParams.toArray(ComponentParams[]::new);
+               Arrays.sort(modelParams.components, Comparator.comparing(c -> c.name));
 
                Collection<GUIWire> wires = model.getWiresByName().values();
                Set<WireParams> wiresParams = new HashSet<>();
@@ -180,6 +183,7 @@ public class ViewModelSerializer
                        innerWireParams.path = innerWire.getPath();
                }
                modelParams.wires = wiresParams.toArray(WireParams[]::new);
+               Arrays.sort(modelParams.wires, Comparator.comparing(c -> c.name));
 
                return modelParams;
        }
index 1913f72..ec15a5a 100644 (file)
@@ -56,6 +56,7 @@ mograsim version: 0.1.3
   "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",
+  "GUIClock": "class:net.mograsim.logic.model.model.components.atomic.GUIClock",
   "GUIxor": "file:components/GUIxor.json",
   "TextComponent": "class:net.mograsim.logic.model.model.components.atomic.TextComponent",
   "WireCrossPoint": "class:net.mograsim.logic.model.model.wires.WireCrossPoint"
index 0016cc7..26d5a0d 100644 (file)
@@ -16,9 +16,11 @@ public class CodeSnippetSupplier<C, S>
                this.defaultSnippetSupplier = defaultSnippetSupplier;
        }
 
-       public void addStandardSnippetID(String standardSnippetID, String associatedSnippetClassName)
+       public void addStandardSnippetID(String standardSnippetID, String associatedSnippetID)
        {
-               standardSnippetIDClassNames.put(standardSnippetID, associatedSnippetClassName);
+               if (!associatedSnippetID.startsWith("class:"))
+                       throw new IllegalArgumentException("Unrecognized snippet ID format: " + associatedSnippetID);
+               standardSnippetIDClassNames.put(standardSnippetID, associatedSnippetID);
        }
 
        public Map<String, String> getStandardSnippetIDs()
@@ -36,13 +38,10 @@ public class CodeSnippetSupplier<C, S>
        {
                if (id != null)
                {
-                       String snippetClassName;
-                       if (id.startsWith("class:"))
-                               snippetClassName = id.substring(6);
-                       else
-                               snippetClassName = standardSnippetIDClassNames.get(id);
-                       if (snippetClassName != null)
+                       String resolvedID = resolveID(id);
+                       if (resolvedID != null)
                        {
+                               String snippetClassName = resolvedID.substring(6);
                                tryLoadSnippetClass(snippetClassName);
                                SnippetDefinintion<C, ?, S> snippetSupplier = snippetSuppliersForClassNames.get(snippetClassName);
                                if (snippetSupplier != null)
@@ -55,6 +54,13 @@ public class CodeSnippetSupplier<C, S>
                return defaultSnippetSupplier;
        }
 
+       public String resolveID(String id)
+       {
+               if (id.startsWith("class:"))
+                       return id;
+               return standardSnippetIDClassNames.get(id);
+       }
+
        // static helpers
 
        private static void tryLoadSnippetClass(String snippetClassName)
index 627f5dc..ef9d686 100644 (file)
@@ -1,11 +1,11 @@
 mograsim version: 0.1.3
 {
   "standardSubcomponentHandlerSuppliers": {
-    "delegating": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler"
+    "delegating": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.subcomponent.DelegatingSubcomponentHighLevelStateHandler"
   },
   "standardAtomicHandlerSuppliers": {
-    "delegating": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
-    "wireForcing": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler",
-    "bitVectorSplitting": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler"
+    "delegating": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.DelegatingAtomicHighLevelStateHandler",
+    "wireForcing": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.WireForcingAtomicHighLevelStateHandler",
+    "bitVectorSplitting": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.atomic.BitVectorSplittingAtomicHighLevelStateHandler"
   }
 }
\ No newline at end of file
index 9f7856f..0500769 100644 (file)
@@ -1,16 +1,16 @@
 mograsim version: 0.1.3
 {
   "standardOutlineRendererSuppliers": {
-    "default": "net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
+    "default": "class:net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer"
   },
   "standardSymbolRendererSuppliers": {
-    "default": "net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer",
-    "centeredText": "net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer",
-    "simpleRectangularLike": "net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
-    "pinNames": "net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer"
+    "default": "class:net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer",
+    "centeredText": "class:net.mograsim.logic.model.snippets.symbolrenderers.CenteredTextSymbolRenderer",
+    "simpleRectangularLike": "class:net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer",
+    "pinNames": "class:net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer"
   },
   "standardHighLevelStateHandlerSuppliers": {
-    "default": "net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
-    "standard": "net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler"
+    "default": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler",
+    "standard": "class:net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandler"
   }
 }
\ No newline at end of file
index ac42e13..00aeed8 100644 (file)
@@ -10,7 +10,7 @@ import com.google.gson.stream.JsonWriter;
 import net.mograsim.logic.model.util.Version.VersionJSONAdapter;
 
 @JsonAdapter(VersionJSONAdapter.class)
-public final class Version
+public final class Version implements Comparable<Version>
 {
        public final int major, minor, patch;
 
@@ -88,6 +88,40 @@ public final class Version
                return is(major, minor) && this.patch == patch;
        }
 
+       /**
+        * Compares this {@link Version} with the specified version.<br>
+        * As required by {@link Comparable#compareTo(Object)}, returns a negative integer, zero, or a positive integer as this version is less
+        * (earlier) than, equal to, or greater (later) than the specified version.
+        * <p>
+        * If the versions are equal ({@link #major}, {@link #minor}, {@link #patch} are the same), returns 0. <br>
+        * If they differ in {@link #patch}, but neither {@link #major} or {@link #minor} , returns +-1. <br>
+        * If they differ in {@link #minor}, but not {@link #major}, returns +-2.<br>
+        * If they differ in {@link #major}, returns +-3.
+        */
+       @Override
+       public int compareTo(Version o)
+       {
+               if (major != o.major)
+               {
+                       if (major > o.major)
+                               return 3;
+                       return -3;
+               }
+               if (minor != o.minor)
+               {
+                       if (minor > o.minor)
+                               return 2;
+                       return -2;
+               }
+               if (patch != o.patch)
+               {
+                       if (patch > o.patch)
+                               return 1;
+                       return -1;
+               }
+               return 0;
+       }
+
        static class VersionJSONAdapter extends TypeAdapter<Version>
        {
                @Override
index 079c7e5..6dbff4c 100644 (file)
@@ -13,6 +13,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.model.components.atomic.GUIAndGate;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.serializing.IdentifierGetter;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
@@ -34,9 +35,10 @@ public class GUIMemoryWA extends GUIComponent
                super(model, name);
                this.definition = definition;
                setSize(width, height);
-               addPin(addrPin = new Pin(this, "A", definition.getMemoryAddressBits(), 0, 10));
-               addPin(dataPin = new Pin(this, "D", definition.getCellWidth(), 0, 30));
-               addPin(rWPin = new Pin(this, "RW", 1, 0, 50));
+               //TODO check the usages
+               addPin(addrPin = new Pin(this, "A", definition.getMemoryAddressBits(), PinUsage.INPUT, 0, 10));
+               addPin(dataPin = new Pin(this, "D", definition.getCellWidth(), PinUsage.TRISTATE, 0, 30));
+               addPin(rWPin = new Pin(this, "RW", 1, PinUsage.INPUT, 0, 50));
        }
 
        public Pin getAddressPin()
index 00b1956..81707be 100644 (file)
@@ -22,6 +22,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.wires.GUIWire;
 import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.model.wires.PinUsage;
 import net.mograsim.logic.model.modeladapter.LogicModelParameters;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
@@ -85,11 +86,10 @@ public class LogicUIPart extends ViewPart
        {
                GUIComponent comp = IndirectGUIComponentCreator.createComponent(model, "GUIAm2901");
 
-               // TODO this code exists four times... but it seems too "hacky" to put it in a helper class
                List<String> inputPinNames = new ArrayList<>();
                List<String> outputPinNames = new ArrayList<>();
                for (Pin p : comp.getPins().values())
-                       if (p.getRelX() == 0)
+                       if (p.usage == PinUsage.INPUT)
                                inputPinNames.add(p.name);
                        else
                                outputPinNames.add(p.name);